ゲームブロックを使ってみよう


マイクロビットのゲームブロックで、ディスプレイの中心に点を描写して、ボタンAを押した時に点を左に動かし、ボタンBを押した時に点を右に動かすようにしてみよう。


始めにマイクロビットのディクプレイの中心に点を描写してみます。

プレイヤーという変数を用意して。



変数の値にスプライトを作成 X: 2 Y: 2の値ブロックを挿入します。

このコードのみでディスプレイの中心に点が描写されました。


X: 2 Y: 2の意味になりますが、



のようにXが 0 〜 4、Yが 0 〜 4の座標指定になっていまして、Xが 2 、Yが 2 のディスプレイの中心を指定しますと、



のようにディスプレイの中心に点が描写されます。

Xを 1 にし、Yを 3 にすると、



に点が描写されます。




続いて、ディスプレイで描写しましたプレイヤーを動かせるようにします。



スプライトを代入した変数のXの値から 1 を引くと点は左に動き、 1 を足すと点は右に動くようになります。




今回のコードをMicroPythonで書き換えてみます。


ディスプレイの中心にプレイヤーの点を描写するコード

ディスプレイでアイコンの描写に関して:MicroPythonで潜水艦が潜るアニメーションのコードを書いてみよう

from microbit import *

# プレイヤーの座標
player = [2, 2]

def render(vec):
	coord = ""
	for y in range(0, 5):
		for x in range(0, 5):
			if vec[0] == x and vec[1] == y:
				coord += "9"
			else:
				coord += "0"
		coord += ":"
	img = Image(coord)
	display.show(img)

render(player)

ボタンを押すイベントを追加したコード

from microbit import *

# プレイヤーの座標
player = [2, 2]

def render(vec):
	coord = ""
	for y in range(0, 5):
		for x in range(0, 5):
			if vec[0] == x and vec[1] == y:
				coord += "9"
			else:
				coord += "0"
		coord += ":"
	img = Image(coord)
	display.show(img)

render(player)

while True:
	if button_a.was_pressed():
		if player[0] > 0:
			player[0] -= 1
			render(player)
	if button_b.was_pressed():
		if player[0] < 4:
			player[0] += 1
			render(player)

※was_pressed()で連打防止

京都の東本願寺で開催されているプログラミング教室で講師をしています。
詳しくはTera schoolを御覧ください。
同じカテゴリーの記事
マインクラフト用ビジュアルエディタを開発しています。

詳しくはinunosinsi/mcws_blockly - githubをご覧ください。