Skip to content

Japanese Mapping between the basic blocks and Ruby

Kouji Takao edited this page Dec 31, 2022 · 4 revisions

スモウルビーの基本的なブロックとRubyの命令との対応

ここではスモウルビーのブロックのうち、拡張機能以外のブロックに対応するRubyの命令やリテラルを説明します。 例えば、スモウルビーの (10) 歩動かす ブロックは、Rubyの move(10) という命令に対応します。

拡張機能のブロックとRubyの命令との対応は こちらのページ をご覧ください。

また、ブロックとRubyの相互変換は開発中であるため、 いくつかまだ対応していないものがあります 。ブロックからRubyの命令に変換できるものは「ブ→R」を○に、また、Rubyの命令からブロックに変換できるものは「R→ブ」を○としていますので、参考にしてください。

なお、 スモウルビーで扱えるRubyの命令には制限があり、このページに挙げたスモウルビーのブロックに対応するものしか使うことができません 。例えば、 class を使ってでクラスを定義することはできません。

動き

このカテゴリのブロックは Scratch 3.0 と同じものです。

ブロックとRubyの命令やリテラルとの対応は以下です。

ID ブロック Ruby ブ→R R→ブ
MOTION_MOVESTEPS (10) 歩動かす move(10)
MOTION_TURNLEFT 時計回りに (15) 度回す turn_right(15)
MOTION_TURNRIGHT 反時計回りに (15) 度回す turn_left(15)
MOTION_GOTO (どこかの場所▼) へ行く go_to("_random_")
MOTION_GOTOXY x座標を (0) 、y座標を (0) にする go_to([0, 0])
MOTION_GLIDETO (1) 秒で (どこかの場所▼) へ行く glide("_random_", secs: 1)
MOTION_GLIDESECSTOXY (1) 秒でx座標を (0) に、y座標を (0) に変える glide([0, 0], secs: 1)
MOTION_POINTINDIRECTION (90) 度に向ける self.direction = 90
MOTION_POINTTOWARDS (マウスのポインター▼) へ向ける point_towards("_mouse_")
MOTION_CHANGEXBY x座標を (10) ずつ変える self.x += 10
MOTION_SETX x座標を (0) にする self.x = 0
MOTION_CHANGEYBY y座標を (10) ずつ変える self.y += 10
MOTION_SETY y座標を (0) にする self.y = 0
MOTION_IFONEDGEBOUNCE もし端に着いたら、跳ね返る bounce_if_on_edge
MOTION_SETROTATIONSTYLE 回転方法を [左右のみ▼] にする self.rotation_style = "left-right"
MOTION_XPOSITION x座標 x
MOTION_YPOSITION y座標 y
MOTION_DIRECTION 向き direction

選択肢とRubyの命令やリテラルとの対応は以下です。なお、 "%スプライト名%" というのは、例えばスプライトの名前が Abby だとするとRubyのリテラルが "Abby" に対応することを表しています。

ID ブロックの選択肢 Ruby ブ→R R→ブ
MOTION_GOTO_RANDOM どこかの場所 "_random_"
MOTION_GOTO_POINTER マウスのポインター "_mounse_"
(なし) %スプライト名% "%スプライト名%"
MOTION_SETROTATIONSTYLE_LEFTRIGHT 左右のみ "left-right"
OTION_SETROTATIONSTYLE_DONTROTATE 回転しない "don't rotate"
MOTION_SETROTATIONSTYLE_ALLAROUND 自由に回転 "all around"

見た目

このカテゴリのブロックは Scratch 3.0 と同じものです。

ブロックとRubyの命令やリテラルとの対応は以下です。

ID ブロック Ruby ブ→R R→ブ
LOOKS_SAYFORSECS (こんにちは!) と (2) 秒言う say("こんにちは!", 2)
LOOKS_SAY (こんにちは!) と言う say("こんにちは!")
LOOKS_THINKFORSECS (うーん...) と (2) 秒考える think("うーん...", 2)
LOOKS_THINK (うーん...) と考える think("うーん...")
LOOKS_SWITCHCOSTUMETO コスチュームを (コスチューム1▼) にする switch_costume("コスチューム1")
LOOKS_NEXTCOSTUME 次のコスチュームにする next_costume
LOOKS_SWITCHBACKDROPTO 背景を (背景1▼) にする switch_backdrop("背景1")
LOOKS_SWITCHBACKDROPTOANDWAIT 背景を (背景1▼) にして待つ switch_backdrop_and_wait("背景1")
LOOKS_NEXTBACKDROP_BLOCK 次の背景にする next_backdrop
LOOKS_CHANGESIZEBY 大きさを (10) ずつ変える self.size += 10
LOOKS_SETSIZETO 大きさを (100) %にする self.size = 100
LOOKS_CHANGEEFFECTBY [色▼] の効果を (25) ずつ変える change_effect_by("color", 25)
LOOKS_SETEFFECTTO [色▼] の効果を (0) にする set_effect("color", 0)
LOOKS_CLEARGRAPHICEFFECTS 画像効果をなくす clear_graphic_effects
LOOKS_SHOW 表示する show
LOOKS_HIDE 隠す hide
LOOKS_GOTOFRONTBACK [最前面▼] へ移動する go_to_layer("front")
LOOKS_GOFORWARDBACKWARDLAYERS (1) 層 [手前に出す▼] go_layers(1, "forward")
LOOKS_COSTUMENUMBERNAME コスチュームの [番号▼] costume_number
LOOKS_COSTUMENUMBERNAME コスチュームの [名前▼] costume_name
LOOKS_BACKDROPNUMBERNAME 背景の [番号▼] backdrop_number
LOOKS_BACKDROPNUMBERNAME 背景の [名前▼] backdrop_name
LOOKS_SIZE 大きさ size

選択肢とRubyの命令やリテラルとの対応は以下です。なお、 "%コスチューム名%" というのは、例えばコスチュームの名前が コスチューム1 だとするとRubyのリテラルが "コスチューム1" に対応することを表しています。

ID ブロックの選択肢 Ruby ブ→R R→ブ
(なし) %コスチューム名% "%コスチューム名%"
(なし) %背景名% "%背景名%"
LOOKS_NEXTBACKDROP 次の背景 "next backdrop"
LOOKS_PREVIOUSBACKDROP 前の背景 "previous backdrop"
LOOKS_RANDOMBACKDROP どれかの背景 "random backdrop"
LOOKS_EFFECT_COLOR "color"
LOOKS_EFFECT_FISHEYE 魚眼レンズ "fisheye"
LOOKS_EFFECT_WHIRL 渦巻き "whirl"
LOOKS_EFFECT_PIXELATE ピクセル化 "pixelate"
LOOKS_EFFECT_MOSAIC モザイク "mosaic"
LOOKS_EFFECT_BRIGHTNESS 明るさ "brightness"
LOOKS_EFFECT_GHOST 幽霊 "ghost"
LOOKS_GOTOFRONTBACK_FRONT 最前面 "front"
LOOKS_GOTOFRONTBACK_BACK 最背面 "back"
LOOKS_GOFORWARDBACKWARDLAYERS_FORWARD 手前に出す "forward"
LOOKS_GOFORWARDBACKWARDLAYERS_BACKWARD 奥に下げる "backward"

このカテゴリのブロックは Scratch 3.0 と同じものです。

ブロックとRubyの命令やリテラルとの対応は以下です。

ID ブロック Ruby ブ→R R→ブ
SOUND_PLAYUNTILDONE 終わるまで (Meow▼) の音を鳴らす play_until_done("Meow")
SOUND_PLAY (Meow▼) の音を鳴らす play("Meow")
SOUND_STOPALLSOUNDS すべての音を止める stop_all_sounds
SOUND_CHANGEEFFECTBY [ピッチ▼] の効果を (10) ずつ変える change_sound_effect_by("PITCH", 10)
SOUND_SETEFFECTO [ピッチ▼] の効果を (100) にする set_sound_effect("PITCH", 100)
SOUND_CLEAREFFECTS 音の効果をなくす clear_sound_effects
SOUND_CHANGEVOLUMEBY 音量を (-10) ずつ変える self.volume += -10
SOUND_SETVOLUMETO 音量を (100) %にする self.volume = 100
SOUND_VOLUME 音量 volume

選択肢とRubyの命令やリテラルとの対応は以下です。

ID ブロックの選択肢 Ruby ブ→R R→ブ
SOUND_EFFECTS_PITCH ピッチ "PITCH"
SOUND_EFFECTS_PAN 左右にパン "PAN"

イベント

このカテゴリのブロックは Scratch 3.0 と同じものです。

ブロックとRubyの命令やリテラルとの対応は以下です。

ID ブロック Ruby ブ→R R→ブ
EVENT_WHENFLAGCLICKED フラグが押されたとき self.when(:flag_clicked) do
end
EVENT_WHENKEYPRESSED [スペース▼] キーが押されたとき self.when(:key_pressed, "space") do
end
EVENT_WHENTHISSPRITECLICKED このスプライトが押されたとき self.when(:clicked) do
end
EVENT_WHENSTAGECLICKED ステージが押されたとき Stage.when(:clicked) do
end
EVENT_WHENBACKDROPSWITCHESTO 背景が [backdrop1▼] になったとき self.when(:backdrop_switches, "backdrop1") do
end
EVENT_WHENGREATERTHAN [音量▼] > (10) のとき self.when(:greater_than, "loudness", 10) do
end
EVENT_WHENBROADCASTRECEIVED [message1▼] を受け取ったとき self.when(:receive, "message1") do
end
EVENT_BROADCAST (message1▼) を送る broadcast("message1")
EVENT_BROADCASTANDWAIT (message1▼) を送って待つ broadcast_and_wait("message1")

選択肢とRubyの命令やリテラルとの対応は以下です。

ID ブロックの選択肢 Ruby ブ→R R→ブ
EVENT_WHENKEYPRESSED_SPACE スペース "space"
EVENT_WHENKEYPRESSED_LEFT 左向き矢印 "left arrow"
EVENT_WHENKEYPRESSED_RIGHT 右向き矢印 "right arrow"
EVENT_WHENKEYPRESSED_DOWN 下向き矢印 "down arrow"
EVENT_WHENKEYPRESSED_UP 上向き矢印 "up arrow"
EVENT_WHENKEYPRESSED_ANY どれかの "any"
EVENT_WHENGREATERTHAN_LOUDNESS 音量 "loudness"
EVENT_WHENGREATERTHAN_TIMER タイマー "timer"

制御

このカテゴリのブロックは Scratch 3.0 と同じものです。

ブロックとRubyの命令やリテラルとの対応は以下です。

ID ブロック Ruby ブ→R R→ブ
CONTROL_WAIT (1) 秒待つ sleep(1)
CONTROL_REPEAT (10) 回繰り返す 10.times do
end
CONTROL_FOREVER ずっと loop do
end
CONTROL_IF もし < > なら if false
end
CONTROL_ELSE もし < > なら
でなければ
if false
else
end
CONTROL_WAITUNTIL < > まで待つ wait until false
CONTROL_REPEATUNTIL < > まで繰り返す until false
end
CONTROL_STOP [すべてを止める▼] stop("all")
CONTROL_STARTASCLONE クローンされたとき self.when(:start_as_a_clone) do
end
CONTROL_CREATECLONEOF (自分自身▼) のクローンを作る create_clone("_myself_")
CONTROL_DELETETHISCLONE このクローンを削除する delete_this_clone

選択肢とRubyの命令やリテラルとの対応は以下です。なお、 "%スプライト名%" というのは、例えばスプライトの名前が スプライト1 だとするとRubyのリテラルが "スプライト1" に対応することを表しています。

ID ブロックの選択肢 Ruby ブ→R R→ブ
CONTROL_STOP_ALL すべてを止める "all"
CONTROL_STOP_THIS このスクリプトを止める "this script"
CONTROL_STOP_OTHER スプライトの他のスクリプトを止める "other scripts in sprite"
CONTROL_CREATECLONEOF_MYSELF 自分自身 "_myself_"
(なし) %スプライト名% "%スプライト名%"

調べる

このカテゴリのブロックは Scratch 3.0 と同じものです。

ブロックとRubyの命令やリテラルとの対応は以下です。 #f0765e はカラーコード #f0765e を表しています。

ID ブロック Ruby ブ→R R→ブ
SENSING_TOUCHINGOBJECT (マウスポインター▼) に触れた touching?("_mouse_")
SENSING_TOUCHINGCOLOR (#f0765e) 色に触れた touching_color?("#f0765e")
SENSING_COLORISTOUCHINGCOLOR (#da343f) 色が (#3dd46a) 色に触れた color_is_touching_color?("#da343f", "#3dd46a")
SENSING_DISTANCETO (マウスポインター▼) までの距離 distance("_mouse_")
SENSING_ASKANDWAIT (あなたの名前は何ですか?) と聞いて待つ ask("あなたの名前は何ですか?")
SENSING_ANSWER 答え answer
SENSING_KEYPRESSED (スペース▼) キーが押された Keyboard.pressed?("space")
SENSING_MOUSEDOWN マウスが押された Mouse.down?
SENSING_MOUSEX マウスのx座標 Mouse.x
SENSING_MOUSEY マウスのy座標 Mouse.y
SENSING_SETDRAGMODE ドラッグ [できる▼] ようにする self.drag_mode = "draggable"
SENSING_LOUDNESS 音量 loudness
SENSING_TIMER タイマー Timer.value
SENSING_RESETTIMER タイマーをリセット Timer.reset
SENSING_OF (ステージ▼) の [背景 #▼] stage.backdrop_number
SENSING_OF (ステージ▼) の [背景の名前▼] stage.backdrop_name
SENSING_OF (ステージ▼) の [音量▼] stage.volume
SENSING_OF (ステージ▼) の [%変数名%▼] stage.variable("%変数名%")
SENSING_OF (%スプライト名%▼) の [x座標▼] sprite("%スプライト名%").x
SENSING_OF (%スプライト名%▼) の [y座標▼] sprite("%スプライト名%").y
SENSING_OF (%スプライト名%▼) の [向き▼] sprite("%スプライト名%").direction
SENSING_OF (%スプライト名%▼) の [コスチューム #▼] sprite("%スプライト名%").costume_number
SENSING_OF (%スプライト名%▼) の [コスチューム名▼] sprite("%スプライト名%").constume_name
SENSING_OF (%スプライト名%▼) の [大きさ▼] sprite("%スプライト名%").size
SENSING_OF (%スプライト名%▼) の [音量▼] sprite("%スプライト名%").volume
SENSING_OF (%スプライト名%▼) の [%変数名%▼] sprite("%スプライト名%").variable("%変数名%")
SENSING_CURRENT 現在の [年▼] Time.now.year
SENSING_CURRENT 現在の [月▼] Time.now.month
SENSING_CURRENT 現在の [日▼] Time.now.day
SENSING_CURRENT 現在の [曜日▼] Time.now.wday + 1
SENSING_CURRENT 現在の [時▼] Time.now.hour
SENSING_CURRENT 現在の [分▼] Time.now.min
SENSING_CURRENT 現在の [秒▼] Time.now.sec
SENSING_DAYSSINCE2000 2000年からの日数 days_since_2000
SENSING_USERNAME ユーザー名 user_name

選択肢とRubyの命令やリテラルとの対応は以下です。なお、 "%スプライト名%" というのは、例えばスプライトの名前が スプライト1 だとするとRubyのリテラルが "スプライト1" に対応することを表しています。

ID ブロックの選択肢 Ruby ブ→R R→ブ
SENSING_TOUCHINGOBJECT_POINTER マウスのポインター "_mouse_"
SENSING_TOUCHINGOBJECT_EDGE "_edge_"
(なし) %スプライト名% "%スプライト名%"
SENSING_DISTANCETO_POINTER マウスのポインター "_mouse_"
SENSING_SETDRAGMODE_DRAGGABLE できる "draggable"
SENSING_SETDRAGMODE_NOTDRAGGABLE できない "not draggable"

演算

このカテゴリのブロックは Scratch 3.0 と同じものです。

ブロックとRubyの命令やリテラルとの対応は以下です。

ID ブロック Ruby ブ→R R→ブ
OPERATORS_ADD ( ) + ( ) 0 + 0
OPERATORS_SUBTRACT ( ) - ( ) 0 - 0
OPERATORS_MULTIPLY ( ) * ( ) 0 * 0
OPERATORS_DIVIDE ( ) / ( ) 0 / 0.0
OPERATORS_RANDOM (1) から (10) までの乱数 rand(1..10)
OPERATORS_GT ( ) > (50) "" > 50
OPERATORS_LT ( ) < (50) "" < 50
OPERATORS_EQUALS ( ) = (50) "" == 50
OPERATORS_AND < > かつ < > false && false
OPERATORS_OR < > または < > false || false
OPERATORS_NOT < > ではない !false
OPERATORS_JOIN (りんご) と (バナナ) "りんご" + "バナナ"
OPERATORS_LETTEROF (りんご) の (1) 番目の文字 "りんご"[0]
OPERATORS_LENGTH (りんご) の長さ "りんご".length
OPERATORS_CONTAINS (りんご) に (り) が含まれる "りんご".include?("り")
OPERATORS_MOD ( ) を ( ) で割った余り 0 % 0
OPERATORS_ROUND ( ) を四捨五入 0.round
OPERATORS_MATHOP ( ) の [絶対値▼] 0.abs
OPERATORS_MATHOP ( ) の [切り下げ▼] 0.floor
OPERATORS_MATHOP ( ) の [切り上げ▼] 0.ceil
OPERATORS_MATHOP ( ) の [平方根▼] Math.sqrt(0)
OPERATORS_MATHOP ( ) の [sin▼] Math.sin(0)
OPERATORS_MATHOP ( ) の [cos▼] Math.cos(0)
OPERATORS_MATHOP ( ) の [tan▼] Math.tan(0)
OPERATORS_MATHOP ( ) の [asin▼] Math.asin(0)
OPERATORS_MATHOP ( ) の [acos▼] Math.acos(0)
OPERATORS_MATHOP ( ) の [atan▼] Math.atan(0)
OPERATORS_MATHOP ( ) の [ln▼] Math.log(0)
OPERATORS_MATHOP ( ) の [log▼] Math.log10(0)
OPERATORS_MATHOP ( ) の [e ^▼] Math::E ** 0
OPERATORS_MATHOP ( ) の [10 ^▼] 10 ** 0

変数

このカテゴリのブロックは Scratch 3.0 と同じものです。

ブロックとRubyの命令やリテラルとの対応は以下です。「%変数%」はすべてのスプライト用の変数を表し、「%スプライト変数%」はこのスプライトのみの変数を表します。リストも同様に、「%リスト%」はすべてのスプライト用のリストを表し、「%スプライトリスト%」はこのスプライトのみのリストを表します。

ID ブロック Ruby ブ→R R→ブ
(なし) %変数% $%変数%
(なし) %スプライト変数% @%スプライト変数%
DATA_SETVARIABLETO [%変数%▼] を (0) にする $%変数% = 0
DATA_SETVARIABLETO [スプライト%変数%▼] を (0) にする @スプライト = 0
DATA_CHANGEVARIABLEBY [%変数%▼] を (1) ずつ変える $%変数% += 1
DATA_CHANGEVARIABLEBY [%スプライト変数%▼] を (1) ずつ変える @%スプライト変数% += 1
DATA_SHOWVARIABLE 変数 [%変数%▼] を表示する show_variable("$%変数%")
DATA_SHOWVARIABLE 変数 [%スプライト変数%▼] を表示する show_variable("@%スプライト変数%")
DATA_HIDEVARIABLE 変数 [%変数%▼] を隠す hide_variable("$%変数%")
DATA_HIDEVARIABLE 変数 [%スプライト変数%▼] を隠す hide_variable("@%スプライト変数%")
(なし) %リスト% list("$%リスト%")
(なし) %スプライトリスト% list("@%スプライトリスト%")
DATA_ADDTOLIST (なにか) を [%リスト%▼] に追加する list("$%リスト%").push("なにか")
DATA_ADDTOLIST (なにか) を [%スプライトリスト%▼] に追加する list("@%スプライトリスト%").push("なにか")
DATA_DELETEOFLIST [%リスト%▼] の (1) 番目を削除する list("$%リスト%").delete_at(1)
DATA_DELETEOFLIST [%スプライトリスト%▼] の (1) 番目を削除する list("@%スプライトリスト%").delete_at(1)
DATA_DELETEALLOFLIST [%リスト%▼] のすべてを削除する list("$%リスト%").clear
DATA_DELETEALLOFLIST [%スプライトリスト%▼] のすべてを削除する list("@%スプライトリスト%").clear
DATA_INSERTATLIST [%リスト%▼] の (1) 番目に (なにか) を挿入する list("$%リスト%").insert(1, "なにか")
DATA_INSERTATLIST [%スプライトリスト%▼] の (1) 番目に (なにか) を挿入する list("@%スプライトリスト%").insert(1, "なにか")
DATA_REPLACEITEMOFLIST [%リスト%▼] の (1) 番目を (なにか) で置き換える list("$%リスト%")[1] = "なにか"
DATA_REPLACEITEMOFLIST [%スプライトリスト%▼] の (1) 番目を (なにか) で置き換える list("@%スプライトリスト%")[1] = "なにか"
DATA_ITEMOFLIST [%リスト%▼] の (1) 番目 list("$%リスト%")[1]
DATA_ITEMOFLIST [%スプライトリスト%▼] の (1) 番目 list("@%スプライトリスト%")[1]
DATA_ITEMNUMOFLIST [%リスト%▼] 中の (1) の場所 list("$%リスト%").index("なにか")
DATA_ITEMNUMOFLIST [%スプライトリスト%▼] 中の (1) の場所 list("@%スプライトリスト%").index("なにか")
DATA_LENGTHOFLIST [%リスト%▼] の長さ list("$%リスト%").length
DATA_LENGTHOFLIST [%スプライトリスト%▼] の長さ list("@%スプライトリスト%").length
DATA_LISTCONTAINSITEM [%リスト%▼] に (なにか) が含まれる list("$%リスト%").include?("なにか")
DATA_LISTCONTAINSITEM [%スプライトリスト%▼] に (なにか) が含まれる list("@%スプライトリスト%").include?("なにか")
DATA_SHOWLIST リスト [%リスト%▼] を表示する show_list("$%リスト%")
DATA_SHOWLIST リスト [%スプライトリスト%▼] を表示する show_list("@%スプライトリスト%")
DATA_HIDELIST リスト [%リスト%▼] を隠す hide_list("$%リスト%")
DATA_HIDELIST リスト [%スプライトリスト%▼] を隠す hide_list("@%スプライトリスト%")

ブロック定義

このカテゴリのブロックは Scratch 3.0 と同じものです。

ブロックとRubyの命令やリテラルとの対応は以下です。

ID ブロック Ruby ブ→R R→ブ
PROCEDURES_DEFINITION 定義 %ブロック名% %引数...% def self.%ブロック名%(%引数...%)
end
(なし) %ブロック名% %引数...% %ブロック名%(%引数...%)

%ブロック名% は作ったブロックのラベルをすべてくっつけたもので、例えば「(引数1) と (引数2) を表示する」というブロックを定義した場合は「と_を表示する」がブロック名になります。%引数...% は定義したブロックに指定した引数をカンマで区切ったもので、先の例だと 引数1, 引数2 になります。

それらを組み合わせると、以下のようになります。

# 定義
def self.と_表示する(引数1, 引数2)
end

# 呼び出す
と_表示する("", "")