準備をしよう
下のURLをクリックして、mBlockを開いてください。
https://ide.mblock.cc/
学習内容
書き方
「イベントモジュールのインポート」、「イベントの宣言」、「発火時の処理定義」の3つを書きます。
イベントモジュールのインポート
イベントを使用する場合に、文頭に書く必要があります。1度書けば、以降の行でイベントが使えるようになります。
以下のコードです。
イベントの宣言
イベントを宣言します。イベントごとに、いつ発火するか(発火=イベントが起こる)が、異なりますので、イベントの種類に応じて記述します。
書き方は、「@event.~」と書きます。「~」はイベントの種類ごとに異なります。
以下は、「緑の旗が押されたとき」を例にあげます。
- 「@event」でイベントを使うことを宣言しています
- 「greenflag」はイベントの種類です。種類ごとに記述内容が異なります。
発火時の処理定義
イベントが発生したときの処理を定義します。
書き方は、「def」(定義する)に続いて、「on_~():」と書きます。「~」は、イベントの宣言に合わせて書きます。
以下は、「緑の旗が押されたとき」を例にあげます。
- 「def」と先頭に必ず書きます
- 今回は「緑の旗が押されたとき」なので「on_greenflag():」となります。イベントの宣言と同じイベントになります。
- インデントで先頭を下げて、発火時の処理を書きます。
次に、具体的な書き方を見ていきましょう。
緑の旗が押されたとき
@event.greenflag
意味
緑の旗が押されたら、指定の処理を実行する
ブロック
以下のブロックと同じ動きです。
練習
ここでは、実行結果が確認できるように、音「meow」を鳴らします。
mBlockに以下のコードを入れて、実行してみましょう。
from mblock import event
@event.greenflag
def on_greenflag():
sprite.play_until_done('meow')
実行結果
緑の旗を押したときに、音「meow」が鳴りました。
スペースキーが押されたとき
@event.keypressed(‘space’)
意味
スペースキーが押されたら、指定の処理を実行する
ブロック
以下のブロックと同じ動きです。
練習
mBlockに以下のコードを入れて、実行してみましょう。
from mblock import event
@event.keypressed('space')
def on_keypressed():
sprite.play_until_done('meow')
実行結果
スペースキーを押したときに、音「meow」が鳴りました。
イベントの種類
上記では、「緑の旗が押されたとき」「スペースキーが押されたとき」を紹介しましたが、他にもいろんなイベントがあります。他のパターンを紹介します。
コード | |
「上」キーが押されたとき | @event.keypressed(‘up arrow’) def on_keypressed(): |
「下」キーが押されたとき | @event.keypressed(‘down arrow’) def on_keypressed(): |
「右」キーが押されたとき | @event.keypressed(‘right arrow’) def on_keypressed(): |
「左」キーが押されたとき | @event.keypressed(‘left arrow’) def on_keypressed(): |
「A」キーが押されたとき | @event.keypressed(‘a’) def on_keypressed(): |
「S」キーが押されたとき | @event.keypressed(‘s’) def on_keypressed(): |
このスプライトが押されたとき | @event.clicked def on_clicked(): |
まとめ
以上になります。今回は、イベントについて扱いました。
実際にコードを打ち込んで試していくと、コーディングを自然に覚えられます。