トップページ > ゲ製作技術 > 2011年09月12日 > I4CSS3jX

書き込み順位&時間帯一覧

20 位/138 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000000000000000112



使用した名前一覧書き込んだスレッド一覧
SGGK ◆6pZCoAtaxk
1人でゲームが作れるように修行します。2

書き込みレス一覧

1人でゲームが作れるように修行します。2
311 :SGGK ◆6pZCoAtaxk [sage]:2011/09/12(月) 22:48:41.39 ID:I4CSS3jX
直観的に勢いでなんとか運よく直せた感じ。

1.ボールが一度しか蹴れない。
ボールと選手が当たってPRE_KEEP→KEEPの間は、その選手とボールのあたり判定をキャンセルするフラグを立てていたが、
 ボールを蹴った後、そのフラグを戻していなかったので、当たり判定が無効になり、ボールに触れても
 状態を変更する命令を実行しなかったから。
2.蹴ったボールを拾いにいってもボールが付いてこなくなった。
 1.の理由と同じ。
3.ボールがラインをはみ出したら試合経過時間が停止し、ボールをフィールドに投げ込むまでの経過時間表示はされるが、ボールが復帰位置に表示されない。
 ラインのはみ出し判定処理の内部でボールの復帰位置をセットしていたが、
 セットするだけではその位置に表示されるわけではない。
 enum MOVE_STATE{STOP=1,FREE,PRE_KEEP,KEEP};という4つの状態をボールに設定していたけど、
 これらは同時には存在しない状態なのでswitch〜case文にしておいて、
 それぞれのcaseの最後でその時点のボール位置を確定して、switch文を抜けてから
 描画関数にボール位置を渡していた。ちなみに変数はstaticにしたらswitchを抜けても保持されているみたいな感じ。(自信なし)
 ところが何故かcase STOPのところだけ、位置を確定する命令を書き忘れていたので、
 case FREEの時の確定位置が変数に残っていて、こちらの位置で表示されてしまったのが理由。
1人でゲームが作れるように修行します。2
313 :SGGK ◆6pZCoAtaxk [sage]:2011/09/12(月) 23:12:56.43 ID:I4CSS3jX
>>310,312
アドバイス、ありがとうございます。
書き込む前にリロードし忘れてしまい、すれ違ってしまいました。(汗;

自分のソースも似た感じの処理になってるようなのですが、
何故か原因不明でどんどん複雑化しているようです。
例えば、切り替えた状態が、知らない間に別のところで切り替えられてしまう…というような感じ。
ここから崩して作り直すのは厳しいので逆にこのまま>>252の

6.CPU選手をまずは1人登場させ、動くようにする。
7.ポジション別にCPU選手のAIを調整する。
8.タイム、スコア、勝敗、タイトル画面などの装飾要素を実装する。

を目指してソースをupできるようにして、そこからソースの見直しをしてみたいと思います。


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。