俺に解るように説明する "Armory Engine" 入門+

ゲームエンジン Armory Engine (Armory3D) の使い方を手探りで学んで入門しようって感じかな。

P5.エアホッケー.13「Retry ? (Y/N)」

f:id:ore2wakaru:20190522211534p:plain

10点取って勝ったらゲームが固まる。今のところ、このゲームはそんなゲームだ。さっさとリトライ出来るようにするぜ。まー、やり方はクソ簡単だ。点数を0点に戻して試合中のフラグを立てなおしてやればイイだけ。まじ、クソ簡単。あとおまけでMergeノードも覚えよう。

得点獲得部分の修正とおまけ

前回、「Retry ? (y/n)」って表示させる部分を追加しておくのを忘れたわ。あはは。ここに、追加しておこう。Canvas Set Text[Element:"Text8" Text:"Retry ? (y/n)"]

f:id:ore2wakaru:20190522195606p:plain

で、これでいいんんだが、おまけとして、ちょっと便利なフロー制御ノードを使ってみる。

上図のお尻の部分は全く同じノードのカタマリとなっているよね。だから、まー、コピペ(Shift+D)して2個描けば簡単で問題ないんだけど、下図のように流れを合流させて1個しか描かなくていい様にも出来るんだ。

f:id:ore2wakaru:20190522201826p:plain

で、Mergeノードの使い方は、

f:id:ore2wakaru:20190522204309p:plain

こういうことだ。必要なだけ Inピンを出して合流させればいい。

リトライヵ

さて、前回作った空のイベント "RETRYka" には、"gameSet" が True の時ずっと飛んでくるようになっている。ここを下図のように作成だ。

f:id:ore2wakaru:20190522205354p:plain

 毎フレーム来る、そんな時のキー入力のチェックの仕方は、Keyboard Stateを使うんだったよね。これで Y キーのチェックをすればいい。で、もし押されたら True を出す(ピンの色がBoolean型の色なので分かるよね)。それをIs Trueで判断だ。

 Element:"Text8"(「Retry ? (y/n)」ってヤツ)クリア。

 Element:"Text9"(「YOU WIN」ってヤツ)クリア。

 Element:"Text10"(「YOU LOSE」ってヤツ)クリア。

 敵の点("comTen")を0点に。

 自分の点("playerTen")を0点に。

 敵の点数表示(Element:"Text5")を「0」に。

 自分の点数表示(Element:"Text6")を「0」に。

 「"gameSet" = False」にして、ゲームの状態を試合中に戻す。

「"gameSet" = False」になれば、もうこのイベントには来ない。0対0で再試合だ! よかったな。

ただ、N キーを押した時の処理は無し。なんでかっていうと、なんかゲームを終了させる(ゲームウィンドウを落とす)ノードがないっぽいんだ。まー、Shutdownっていうノードがそれっぽいんだが、ウィンドウ消えねーんだよー。だから今まで同様、ウィンドウ右上の [×] で終わらせてくれな。

テストプレイ

しといてね。

これで、ゴール処理、リトライ処理は出来た。次はパックだな。

本日のポイント
  • Mergeで合流。

 次回、パックが出現する時にランダムにー。