画面#

導入#

スクリーンブロックは、VEX AIMコーディングロボットが画面上にテキスト、数字、グラフィックを表示する方法、および画面の押し込み操作にどのように反応するかを制御します。

以下はすべてのブロックのリストです。

カーソル印刷 — 行と列のカーソルシステムを使用してテキスト表示を管理します。

XYプリント — ピクセル座標に基づいてテキストを印刷します。

設定 — テキストの書式設定と画面表示をカスタマイズします。

描画 ― グラフィックや視覚要素を作成する。

タッチ — 画面操作を検出します。

  • 画面が押されました — 画面が現在押されているかどうかを報告します。

  • 画面位置 — 最後に画面を押した位置の選択された x または y 座標を報告します。

  • when screen event — 画面が押されたり離されたりしたときに、添付されているブロックを実行します。

カーソル印字#

画面上の行と列にカーソルを合わせる#

set cursor to row column on screen スタックブロックは、ロボットの画面上の特定の行と列にカーソルを移動します。次の print on screen ブロックは、その位置から印刷を開始します。快適に表示できる行数と列数は、選択したフォントによって異なります。デフォルトの等幅中フォントでは、最大 8 行、13 列までが鮮明に表示されます。この範囲を超えて配置されたテキストは、途中で切れたり、読みにくくなったりする可能性があります。

等幅フォントは文字の幅がすべて同じなので、テキストの配置が一定になります。一方、プロポーショナルフォントは文字の幅が異なるため、文字によって占めるスペースが異なります。ただし、どちらのタイプを使用する場合でも、set cursor to row column on screen スタックブロックは、フォントスタイルではなく、行と列のサイズに基づいてカーソルを配置します。フォントサイズは、set font on screen スタックブロックを使用して調整できます。

カーソルスタックブロックを設定する#
スクリーンのカーソルを行 [1] 列 [1] に設定

パラメータ

説明

行

カーソルを移動する行。

カラム

カーソルを移動させる列。

例

起動すると、カーソルを画面上の3行目、2列目に移動し、「3行目、2列目」と表示します。#
開始したとき
[Display text starting at Row 3 Column 2.]
スクリーンのカーソルを行 (3) 列 (2) に設定
[Row 3, Column 2] をスクリーンに表示 ▶

ロボットの画面のスクリーンショット。画面中央のすぐ上に、行3、列2から始まる行3、列2が白で印刷されています。

開始したとき
[Display cargo amounts in an organized list.]
フォントを [プロポーショナル v] [大 v] に設定(スクリーン)
[Sports Balls] をスクリーンに表示 ◀ カーソルを次の行へ移動する
[Orange Barrels] をスクリーンに表示 ◀ カーソルを次の行へ移動する
[Blue Barrels] をスクリーンに表示 ▶
スクリーンのカーソルを行 [1] 列 [11] に設定
[2] をスクリーンに表示 ▶
スクリーンのカーソルを行 [2] 列 [11] に設定
[3] をスクリーンに表示 ▶
スクリーンのカーソルを行 [3] 列 [11] に設定
[3] をスクリーンに表示 ▶

ロボットの画面のスクリーンショットには、白いテキストが3行表示され、「スポーツボール 2」、「オレンジの樽 3」、「青い樽 3」とリストされています。数字は各ラベルの右側に揃えられており、リストは画面上部から始まります。

開始したとき
[Display the ID of the detected AprilTag.]
フォントを [プロポーショナル v] [特大 v] に設定(スクリーン)
ずっと
スクリーンをクリア
[AprilTag] をスクリーンに表示 ▶
AI Vision から [全 AprilTag v] データを取得
もし <AI Vision オブジェクトあり?> なら
スクリーンのカーソルを行 [3] 列 [4] に設定
(AI Vision オブジェクト [tagID v]) をスクリーンに表示 ▶
終わり
[0.1] 秒待つ

ロボットの画面のスクリーンショット。中央付近に白い文字が印刷されており、1行目に「AprilTag」、2行目に「4」と表示されている。

画面上のカーソルを次の行に設定する#

set cursor to next row on screen スタックブロックは、ロボットの画面上の次の行の 1 列目にカーソルを移動します。

カーソルを次の行のスタックブロックに設定する#
スクリーンのカーソルを次の行へ移動

パラメータ

説明

このブロックにはパラメータがありません。

例

起動すると、画面に「Line 1」と表示し、カーソルを次の行に移動してから、「Line 2」と表示します。#
開始したとき
[Display two lines of text.]
[Line 1] をスクリーンに表示 ▶
スクリーンのカーソルを次の行へ移動
[Line 2] をスクリーンに表示 ▶

ロボットの画面のスクリーンショット。白い文字が表示されています。画面には、一番上の行に左揃えで「Line 1」と表示され、そのすぐ下に「Line 2」と表示されています。

画面上の行をクリアする#

画面上の行をクリアスタックブロックは、ロボットの画面上のテキストの1行をクリアします。

行スタックブロックをクリアする#
スクリーンの行 [1] をクリア

パラメータ

説明

行

クリアする行番号。

例

起動すると、2行にテキストが印刷されます。1行目は表示されたままですが、2行目は3秒後に消えます。#
開始したとき
[Display text on two rows.]
[This text stays] をスクリーンに表示 ▶
スクリーンのカーソルを次の行へ移動
[This text disappears] をスクリーンに表示 ▶
[3] 秒待つ
スクリーンの行 [2] をクリア

画面カーソル列#

スクリーンカーソル列レポーターブロックは、テキストが整数として印刷される列番号を報告します。

スクリーンカーソル列レポーターブロック#
(スクリーンカーソル列)

パラメータ

説明

このブロックにはパラメータがありません。

例

起動すると、カーソルを画面上の3行目、2列目に移動し、現在のカーソル位置の列番号を表示します。#
開始したとき
[Display the cursor's current column.]
スクリーンのカーソルを行 [3] 列 [2] に設定
(スクリーンカーソル列) をスクリーンに表示 ▶

ロボットの画面のスクリーンショット。左上象限の中央付近、3行目2列目に白い2が印刷されている。

画面カーソル行#

画面カーソル行レポーターブロックは、テキストが印刷される行番号を整数として報告します。

スクリーンカーソル行レポーターブロック#
(スクリーンカーソル行)

パラメータ

説明

このブロックにはパラメータがありません。

例

起動すると、カーソルを画面上の6行目、2列目に移動し、現在のカーソルの行番号を表示します。#
開始したとき
[Display the cursor's current row.]
スクリーンのカーソルを行 [3] 列 [2] に設定
(スクリーンカーソル行) をスクリーンに表示 ▶

ロボットの画面のスクリーンショット。左上象限の中央付近、3行目2列目に白い3が印刷されている。

XYプリント#

画面の原点を設定する#

set screen originスタックブロックは、ロボットの画面への描画または印刷に使用される原点(0, 0)を変更します。デフォルトでは、原点は画面の左上隅です。このブロックを使用すると、原点を別の(x、y)画面座標位置にリセットできます。

画面の起点スタックブロックを設定します#
スクリーン原点を x: [0] y: [0] に設定

パラメータ

説明

x

新しい原点として設定するx座標(ピクセル単位)。

y

新しい原点として設定するy座標(ピクセル単位)。

例

起動時に、画面の原点を(120, 120)に設定し、新しい原点に左上隅が(0,0)、幅80ピクセル、高さ40ピクセルの長方形を描画します。#
開始したとき
[Set the origin to the center of the screen.]
スクリーン原点を x: [120] y: [120] に設定
[Draw a rectangle at the new origin.]
スクリーンに矩形 [0] [0] [80] [40] を描画

ロボットの画面のスクリーンショット。左下象限に白い長方形が描かれている。長方形の左上隅が画面の中心である。

設定#

クリアスクリーン#

画面クリアスタックブロックは、ロボットの画面からすべての図面とテキストをクリアし、カーソル位置を1行目、1列目にリセットします。

画面のスタックブロックをクリアする#
スクリーンをクリア

パラメータ

説明

このブロックにはパラメータがありません。

例

起動すると、中心座標(120,120)、半径40ピクセルの円を描画します。2秒後に画面がクリアされます。#
開始したとき
[Draw a circle, and clear it after 2 seconds.]
スクリーンに円 [120] [120] [40] を描画
[2] 秒待つ
スクリーンをクリア

画面全体#

fill screenスタックブロックは、ロボットの画面からすべての描画とテキストを消去し、背景を指定された色に変更します。

画面全体スタックブロック#
スクリーンを [赤 v] で塗りつぶす

パラメータ

説明

色

使用する背景色:

  • 赤
  • 緑
  • 青
  • 黒
  • 白
  • 黄
  • オレンジ
  • 紫
  • シアン

例

開始したとき
[Say "Hello" then turn screen yellow.]
[Hello] をスクリーンに表示 ▶
[2] 秒待つ
スクリーンを [黄 v] で塗りつぶす

画面にフォントを設定する#

画面フォント設定スタックブロックは、ロボットの画面にテキストを表示する際のフォントとサイズを設定します。このフォントは、以降に印刷されるすべてのテキストに適用されます。

フォントスタックブロックを設定する#
フォントを [等幅 v] [極小 v] に設定(スクリーン)

パラメータ

説明

タイプ

フォントの種類:等幅フォントまたはプロポーショナルフォント

サイズ

フォントサイズ(下記参照):

  • 極小
  • 特小
  • 小
  • 中
  • 大
  • 特大
  • 超大

ロボットの画面のスクリーンショット。モノ12フォントで印刷された数字と文字のサンプルが表示されています。アルファベットは1行に収まっています。下部には横26文字、15行と表示されています。
等幅超小

前の画像と同じ画像ですが、フォントはMono 15です。文字ATは1行のテキストに相当します。下部は横20文字、12行です。
等幅フォント 極小

前の画像と同じ画像ですが、Mono 20フォントを使用しています。文字APは1行にまたがっています。下部は横16文字、9行です。
等幅小

前の画像と同じ画像ですが、Mono 24フォントを使用しています。文字AMは1行のテキストに相当します。下部は横13文字、8行です。
等幅中

前の画像と同じ画像ですが、Mono 30フォントを使用しています。AKという文字は1行にまたがっています。下部は横11文字、6行です。
等幅大

前の画像と同じ画像ですが、Mono 40フォントを使用しています。文字AHは1行のテキストにまたがっています。下部は横8文字、5行です。
等幅特大

前の画像と同じ画像ですが、Mono 60フォントを使用しています。数字の1~6は1行に収まります。下部は3行に分かれています。
等幅フォント 特大

前の画像と同じ画像ですが、Prop 20フォントを使用しています。文字「As」は1行にまたがっています。下部は横20文字、9行です。
比例小

前の画像と同じ画像ですが、Prop 30フォントを使用しています。文字AMは1行のテキストに相当します。下部は横15文字、6行です。
比例大

前の画像と同じ画像ですが、Prop 40フォントを使用しています。文字AJは1行のテキストにまたがっています。下部は横11文字、5行です。
比例特大

ロボットの画面のスクリーンショット。Prop 60フォントで印刷された数字のサンプルが表示されています。数字1~7は1行に収まっています。下部には7×3と表示されています。
比例超大型

例

起動すると、フォントを「等幅特大」に設定し、画面に「VEX」と表示します。#
開始したとき
[Display text using a larger font]
フォントを [等幅 v] [特大 v] に設定(スクリーン)
[VEX] をスクリーンに表示 ▶

ロボットの画面のスクリーンショットには、左上隅に白で印刷されたMono 40フォントの「VEX」という単語が表示されている。

画面上で印刷精度を設定する#

画面への印刷精度設定スタックブロックは、ロボットの画面に数値を印刷する際に表示する小数点以下の桁数を設定します。この印刷精度は、以降に印刷されるすべての数値に適用されます。

印刷精度スタックブロックを設定する#
スクリーンの表示精度を [0.1 v] に設定

パラメータ

説明

精度

使用する印刷精度:

  • 1
  • 0.1
  • 0.01
  • 0.001
  • 全桁

例

起動時に、印刷精度を小数点以下2桁に設定し、画面上に1/3を0.33と表示します。#
開始したとき
[Print 1/3 as 0.33.]
スクリーンの表示精度を [0.01 v] に設定
([1] [math_division v] [3]) をスクリーンに表示 ▶

ロボットの画面のスクリーンショットには、左上隅に白で0.33と表示されている。

画面上でペンの幅を設定する#

画面上のペン幅を設定するスタックブロックは、描画される線と図形の輪郭の太さを設定します。

ペン幅スタックブロックを設定する#
スクリーンのペン幅を [10] に設定

パラメータ

説明

幅

ペンの幅(ピクセル単位)。0~32の範囲で指定します。

例

起動時に、ペンの幅を10ピクセルに設定し、左上隅が(50,50)、幅130ピクセル、高さ60ピクセルの長方形を描画します。#
開始したとき
[Draw a rectangle with a pen width of 10.]
スクリーンのペン幅を [10] に設定
スクリーンに矩形 [50] [50] [130] [60] を描画

ロボットの画面のスクリーンショット。上半分に太い白い長方形が描かれている。

画面上のペン/フォントの色を設定する#

画面上のペン/フォントの色を設定するスタックブロックは、テキスト、ピクセル、線、および図形の輪郭の色を設定します。

ペン/フォントカラースタックブロックを設定#
スクリーンのペン/フォント色を [赤 v] に設定

パラメータ

説明

色

使用するペンとフォントの色:

  • 赤
  • 緑
  • 青
  • 黒
  • 白
  • 黄
  • オレンジ
  • 紫
  • シアン
  • 透明

例

起動時に、ペンの色を赤に設定し、左上隅が(50, 50)、幅130ピクセル、高さ60ピクセルの長方形を描画します。#
開始したとき
[Draw a rectangle with a red pen.]
スクリーンのペン/フォント色を [赤 v] に設定
スクリーンに矩形 [50] [50] [130] [60] を描画

ロボットの画面のスクリーンショット。上半分に細い枠線のある赤い長方形が描かれている。

画面の塗りつぶし色を設定する#

画面上の塗りつぶし色を設定するスタックブロックは、図形を描画する際に使用される塗りつぶし色を設定します。

塗りつぶしの色を設定するスタックブロック#
スクリーンの塗りつぶし色を [赤 v] に設定

パラメータ

説明

色

使用する塗りつぶしの色:

  • 赤
  • 緑
  • 青
  • 黒
  • 白
  • 黄
  • オレンジ
  • 紫
  • シアン
  • 透明

例

起動時に、塗りつぶしの色をオレンジ色に設定し、2つの長方形を描画します。1つ目は(50, 50)、2つ目は(50, 130)の位置にあり、どちらも幅100ピクセル、高さ60ピクセルです。#
開始したとき
[Draw two orange rectangles.]
スクリーンの塗りつぶし色を [オレンジ v] に設定
スクリーンに矩形 [50] [50] [100] [60] を描画
スクリーンに矩形 [50] [130] [100] [60] を描画

ロボットの画面のスクリーンショット。画面左中央に、細い白い輪郭線のある2つの平行なオレンジ色の長方形が配置されている。


起動すると、背景の塗りつぶし色を紫色に設定し、画面に「ハイライト」と表示します。#
開始したとき
[Display text with a purple background.]
スクリーンの塗りつぶし色を [紫 v] に設定
[Highlight] をスクリーンに表示 ▶

ロボットの画面のスクリーンショットには、左上隅から始まる紫色のハイライトで囲まれた白い文字で「ハイライト」と表示されています。

描く#

画面に画像ファイルを表示する#

画面に画像ファイルを表示するスタックブロックは、ユーザーがアップロードしたカスタム画像をロボットの画面に描画します。

ユーザーイメージスタックブロックを表示する#
画像ファイル [1 v] を表示

パラメータ

説明

画像スロット番号

使用するカスタムイメージ(1~10の番号)。イメージ番号は、AIMコントロールパネルに表示される番号と一致します。

例

開始したとき
[Draw uploaded Image 1.]
画像ファイル [1 v] を表示

画面上にピクセルを描画する#

画面上にピクセルを描画スタックブロックは、現在のペンカラーを使用して、選択されたx座標とy座標に1ピクセルを描画します。

デフォルトでは、原点は画面の左上隅 (0, 0) にあります。x軸では、0は画面の左端、240は右端です。y軸では、0は画面の上端、240は下端です。set screen originブロックを使用して、原点を別の場所に移動できます。原点を変更すると、x座標とy座標の範囲も変更されます。

例えば、原点が(120, 120)に設定されている場合、x座標とy座標の範囲は-120から120になります。

ピクセルスタックブロックを描画する#
スクリーンにピクセル [0] [0] を描画

パラメータ

説明

x

ピクセルを描画するx座標。デフォルトの原点を基準として、0から240までの範囲で指定します。

y

ピクセルを描画するy座標。デフォルトの原点を基準として、0から240までの範囲で指定します。

例

開始時に、画面中央の座標(120, 120)にピクセルを描画します。#
開始したとき
[Draw a pixel at the center of the screen.]
スクリーンにピクセル [120] [120] を描画

ロボットの画面のスクリーンショット。中央に白いピクセルが1つあります。

画面上に線を引く#

画面上に線を描画スタックブロックは、現在のペン幅とペン色を使用して、最初の画面座標(x1, y1)から2番目の画面座標(x2, y2)まで線を描画します。

デフォルトでは、原点は画面の左上隅 (0, 0) にあります。x軸では、0は画面の左端、240は右端です。y軸では、0は画面の上端、240は下端です。set screen originブロックを使用して、原点を別の場所に移動できます。原点を変更すると、x座標とy座標の範囲も変更されます。

例えば、原点が(120, 120)に設定されている場合、x座標とy座標の範囲は-120から120になります。

線を描画するスタックブロック#
スクリーンに直線 [0] [0] [10] [10] を描画

パラメータ

説明

x1

デフォルトの原点を基準とした、線の始点のx座標(ピクセル単位)。範囲は0~240。

y1

デフォルトの原点を基準とした、線の始点のy座標(ピクセル単位)。範囲は0~240。

x2

デフォルトの原点を基準とした、線の終点のx座標(ピクセル単位)。範囲は0~240。

y2

デフォルトの原点を基準とした、線の終点のy座標(ピクセル単位)。範囲は0~240。

例

起動すると、画面の左上隅(0,0)から右下隅(240,240)まで対角線を描画します。#
開始したとき
[Draw a line from the top left to bottom right of the screen.]
スクリーンに直線 [0] [0] [240] [240] を描画

ロボットの画面のスクリーンショット。左上隅から右下隅まで細い白い斜線が引かれている。

画面上に長方形を描く#

画面上に長方形を描画スタックブロックは、現在のペン幅、ペン色、塗りつぶし色を使用して長方形を描画します。

デフォルトでは、原点は画面の左上隅 (0, 0) にあります。x軸では、0は画面の左端、240は右端です。y軸では、0は画面の上端、240は下端です。set screen originブロックを使用して、原点を別の場所に移動できます。原点を変更すると、x座標とy座標の範囲も変更されます。

例えば、原点が(120, 120)に設定されている場合、x座標とy座標の範囲は-120から120になります。

長方形のスタックブロックを描画する#
スクリーンに矩形 [0] [0] [10] [10] を描画

パラメータ

説明

x

デフォルトの原点を基準として、長方形の左上隅のx座標(ピクセル単位)。範囲は0~240。

y

長方形の左上隅のy座標(ピクセル単位)。デフォルトの原点を基準として、0から240までの値をとります。

幅

長方形の幅(ピクセル単位)。

身長

長方形の高さ(ピクセル単位)。

例

起動時に、画面上に左上隅が(50,50)、幅130ピクセル、高さ60ピクセルの長方形を描画します。#
開始したとき
[Draw a rectangle on the screen.]
スクリーンに矩形 [50] [50] [130] [60] を描画

ロボットの画面のスクリーンショット。上半分に白い四角形が描かれている。

画面上に円を描く#

画面上に円を描画スタックブロックは、現在のペン幅、ペン色、塗りつぶし色を使用して円を描画します。

デフォルトでは、原点は画面の左上隅 (0, 0) にあります。x軸では、0は画面の左端、240は右端です。y軸では、0は画面の上端、240は下端です。set screen originブロックを使用して、原点を別の場所に移動できます。原点を変更すると、x座標とy座標の範囲も変更されます。

例えば、原点が(120, 120)に設定されている場合、x座標とy座標の範囲は-120から120になります。

円を描く スタックブロック#
スクリーンに円 [0] [0] [10] を描画

パラメータ

説明

x

デフォルトの原点を基準とした、円の中心のx座標(ピクセル単位)。範囲は0~240。

y

デフォルトの原点を基準とした、円の中心のy座標(ピクセル単位)。値は0から240まで。

半径

円の半径(ピクセル単位)。

例

起動すると、画面上に中心が(120,120)で半径が40ピクセルの円を描画します。#
開始したとき
[Draw a circle on the screen.]
スクリーンに円 [120] [120] [40] を描画

ロボットの画面のスクリーンショット。中央に白い円が描かれている。

触る#

画面が押されました#

screen pressed ブール値ブロックは、ロボットの画面が現在押されているかどうかを報告します。

  • 正解 — 画面が押されています。

  • 誤り — 画面が押されていません。

スクリーンが押されたブールブロック#
<スクリーン押された?>

パラメータ

説明

このブロックにはパラメータがありません。

例

起動時は、画面が押されているかどうかを継続的にチェックします。画面が押されると、すべてのLEDが白色に点灯します。押されていない場合は、消灯したままです。#
開始したとき
[Turn LEDs white only when the screen is pressed.]
ずっと
もし <スクリーン押された?> なら
[lightall v] の LED の色を [白 v] に設定
でなければ
[lightall v] の LED の色を [オフ v] に設定
終わり
終わり

画面位置#

画面位置レポーターブロックは、最後に画面が押された位置の座標を報告します。x座標は0(左)から240(右)まで、y座標は0(上)から240(下)までです。

画面位置レポーターブロック#
(スクリーンの [x v] 軸位置)

パラメータ

説明

座標

最後に画面が押された位置の座標を報告します。xは水平位置を、yは垂直位置を報告します。

例

起動すると、画面のタッチを継続的に監視します。タッチされた場合は、画面をクリアし、タッチ位置のx座標とy座標を表示します。#
開始したとき
[Display the x and y coordinate of where the screen is pressed.]
ずっと
もし <スクリーン押された?> なら
スクリーンをクリア
(スクリーンの [x v] 軸位置) をスクリーンに表示 ▶
スクリーンのカーソルを次の行へ移動
(スクリーンの [y v] 軸位置) をスクリーンに表示 ▶
終わり
終わり

画面イベント発生時#

when screen eventハットブロックは、ロボットの画面が押されたり離されたりしたときに、接続されているブロックのスタックを実行します。

スクリーンイベントハットブロック#
スクリーンが [押された v] されたとき

パラメータ

説明

アクション

添付のブロックスタックを実行するタイミング:pressedは画面が押されたときに実行され、releasedは画面が離されたときに実行されます。

例

画面を押すと、すべてのLEDが緑色に点灯します。#
スクリーンが [押された v] されたとき
[Set the LEDs to green when the screen is pressed.]
[lightall v] の LED の色を [緑 v] に設定