本記事は『ナビつき!つくってわかる はじめてゲームプログラミング』ノードンガイド「数つきモノノードンでデバッグ!?」の内容まとめです。
ゲームを作っていると思った通りにプログラムが動かない問題にぶち当たることがあります。そんな時に、調べたい出力をゲーム画面に表示して原因を突き止めるデバッグのやり方を解説しています。
数つきモノを使ったデバッグ手法
追加条件:レッスン6のステップ5をクリアする
登場する主なノードン |
---|
数つきモノ |
画面の左には1台のクルマが置かれ、右には赤い線があります。Yボタンでクルマを前進させ、赤い線を超えるとクラッカーが鳴るようにプログラムされているはずが、クルマが線を越えても何も起こりません。
プログラムに問題があるようです。
今回のノードンガイドでは、このような問題の原因を探して修正するデバッグの方法を解説しています。
問題のプログラム画面です。修正するには、まず赤い線を超えるとクラッカーが鳴る正しい仕組みを理解している必要があります。ノードンの働きを1つずつ確認してみましょう。
- クルマノードン:ゲーム画面のクルマ
- ボタンノードン:Yボタンでクルマを前進させる
- 位置センサー:クルマの位置を出力
- 定数ノードン:4.00を出力
- くらべるノードン:クルマの位置と定数の4.00を比べて、クルマの位置が4.00より大きくなった時にシグナルを出力
- エフェクト:くらべるノードンからシグナルを受け取るとクラッカーを鳴らす
- モノノードン:赤い線。X軸の4.00の位置に置かれている
モノノードンはX軸の4.00m右の位置にいて、この数と同じ数を定数ノードンが出力しています。
クルマの位置はクルマノードンに連結した位置センサーノードンが出力していて、クルマの位置が4.00を超えると、くらべるノードンがエフェクトノードンにシグナルを送り、クラッカーが鳴る仕組みとなっています。
一見すると何の問題もないようですが、クラッカーが鳴らないということは、やはりプログラムにミスがあります。
こういう時は、ノードンが出力している数をゲーム画面に表示すると原因を突き止めやすくなります。数を表示すると言えば、数つきモノノードンの出番です。
問題として分かっているのは「クラッカーが思い通りに鳴らない」ということです。この問題に近いノードンから、どんな数が出力されているかを調べていきます。
くらべるノードンを数つきモノと繋ぎます。これでゲーム画面にはくらべるノードンの出力が表示されるようになります。
ゲーム画面の数つきモノは0.00の数字を表示しています。クルマが線を越えても0.00のまま変わりません。ということはくらべるノードンは数を出力していないということになります。
原因は別のノードンにあるようです。くらべるノードンに入力されている数を調べてみましょう。
- 上ポート:位置センサーによるクルマの位置
- 下ポート:定数の4.00
以上がくらべるノードンに入力されている数。定数ノードンが出力する4.00はどんなことがあっても変わらないので、原因は定数ではありません。
位置センサーノードンを数つきモノに繋いでみました。位置センサーが出力する数はクルマの動きに合わせて変わっていきます。
ゲーム画面の数つきモノは「0.77」を表示していますね。
くらべるノードンはこの「0.77」と定数の「4.00」を比べて、位置センサーの数が4.00を超えた時にエフェクトノードンにシグナルを送るのですが、クルマを動かしても数は「0.77」のまま動きません。
これではどこを走っても4.00を超えることはありません。つまりこのプログラムの問題は位置センサーノードンが出力する数にあるということです。
プログラム画面に戻って原因を突き止めましょう。クルマを走らせても数が変化しないということは、位置センサーはクルマのX軸を出力していないということになります。
くらべるノードンは位置センサーのYポートと繋がっていました。Yはクルマの上下の位置を出力するポートです。
くらべるノードンはクルマの上下位置と4.00を比べていたから、左右に動かしても数が変わらず、エフェクトノードンにシグナルが送られることもなかったというわけです。原因はワイヤーを繋ぐポートを間違っていたことでした。
間違ったワイヤーを解除して、位置センサーのXポートをくらべるノードンに繋ぎ直せば修正は完了です。これでクルマを赤い線まで走らせるとクラッカーがなるプログラムになりました。
分かってしまえば単純なことでも、なかなか原因に気付きにくい時もあります。そんな時は数つきモノノードンを使ったデバッグを試してみてください。
調べたい出力を数つきモノに繋げば、ゲーム画面にその数を表示することができます。思い通りの結果にならない箇所から順番に確認していけば、どこがおかしくなっているか突き止められるはずです。
以上、ノードンガイド「数つきモノノードンでデバッグ!?」の内容と解説でした。
ノードンガイドの一覧はこちら。
本記事に使用しているゲーム画像や著作権および商標権、その他知的財産権は、当該コンテンツの提供元に帰属します。© Nintendo
コメント