75才からのモバイルアプリ作成

MIT App Inventor 2 を使ったアプリ作成

MIT App Inventor 2であのアプリを作ってみる (Pacman 2)

2024-06-30 08:15:16 | 日記

画面をもう少しPacmanらしく。Pacmanの移動を制御するために動けるルートをあらかじめ設定。

設定方法は以下の通り。

1. matrixList:Macのスプレッドシートで以下のようなルートを作成(左図)。0は侵入不可地域、1は移動可能地域。

赤線枠内がスクリーン(Canvasの領域)。Canvasの領域を出ることはできないが、一応0で囲むことにした。1の青色部分がpacmanが動ける範囲。スクリーン初期化の際にこのマトリックスをリストとして生成。

2. 侵入不可地域を画面上で認識するために右図のpacmanPositionリストを作成。例えば、pacmanが「23」の位置にいる場合、23の直下は、現在のposition 番号+12 の 35となる。もし、下に進もうとしたら(下矢印ボタンをタップ)、matrixListのindex35をチェックして0なので進めないようにする。

以下の画面スクリーンショットは、画面上部にチェックのためにmatrixListを表示したもの。

                                                             

アプリ実行のビデオ:

スクリーンのデザイン:

Text for Label4は、テスト用データのチェックを行うもの。

                                      

ブロック・コード:

追加部分のみ。

1. スクリーンの初期化時に関数makeMatrixを実行してmatrixListを生成する。

関数makeMatrixListは、0, 1 で上記スプレッドシートで作成した経路通りにリストを生成。1行目は、0が12個、2行目は、0が1個+1が10個+0が1個...という具合に。

                              ********** 以下続くが省略。 **********

2. Pacmanの初期の位置をmatrixList上のindex 23に設定し、変数pacmanPositionに格納。

upButtonをタップした時、例えば上記pacmanPositionマトリックスで、45の位置にいると、すぐ上は12を引いた33となる。もし、position33が「1」であれば、進むことができるので、pacmanのY座標の値から30(pixels)引いて、pacmanを一つ上に移動させる。downButtonの場合は、12加算してチェックする。rightButtonは、1加算してチェック、leftButtonは1引いてチェック。これを繰り返して、チェックkの結果「1」であればpacmanを移動させていく。

3. pacmanPositionを新たに設定したのに伴い、pacmanがghostを衝突して元の位置に戻された場合、pacmanPositionも初期値の23に設定し直す。(赤点線部分)

                                      ********************************************************

前回までのブログ:

MIT App Inventorであのアプリを作ってみる (Pacman 1)



コメントを投稿