P5.エアホッケー.13「Retry ? (Y/N)」
10点取って勝ったらゲームが固まる。今のところ、このゲームはそんなゲームだ。さっさとリトライ出来るようにするぜ。まー、やり方はクソ簡単だ。点数を0点に戻して試合中のフラグを立てなおしてやればイイだけ。まじ、クソ簡単。あとおまけでMerge
ノードも覚えよう。
得点獲得部分の修正とおまけ
前回、「Retry ? (y/n)」って表示させる部分を追加しておくのを忘れたわ。あはは。ここに、追加しておこう。Canvas Set Text
[Element:"Text8" Text:"Retry ? (y/n)"]
で、これでいいんんだが、おまけとして、ちょっと便利なフロー制御ノードを使ってみる。
上図のお尻の部分は全く同じノードのカタマリとなっているよね。だから、まー、コピペ(Shift+D)して2個描けば簡単で問題ないんだけど、下図のように流れを合流させて1個しか描かなくていい様にも出来るんだ。
で、Merge
ノードの使い方は、
こういうことだ。必要なだけ Inピンを出して合流させればいい。
リトライヵ
さて、前回作った空のイベント "RETRYka" には、"gameSet" が True の時ずっと飛んでくるようになっている。ここを下図のように作成だ。
❶ 毎フレーム来る、そんな時のキー入力のチェックの仕方は、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
で合流。
〇 次回、パックが出現する時にランダムにー。