- ゲームプログラムなら俺に聞け30
800 :デフォルトの名無しさん[sage]:2015/01/07(水) 00:25:42.55 ID:VUZocriK - フレーム管理だろうが、可変フレームレートだろうが
drawは完全に内部の処理をいきなり描画できるものがいいよ >>789 そもそも実行順番って init();//初期化 初期値・初期位置 draw();//0フレーム目描画 run();//1フレーム目処理 draw();//1フレーム目描画 run();//2フレーム目処理 draw();//2フレーム目描画 ・ ・ ・ じゃねぇのけ? init();をやっての直後にdraw();を呼べば すべてが初期位置に配置されてるはずなんだよね? でもたった1フレーム面倒だからinit();直後のdraw();は 呼んでない的な
|
- ゲームプログラムなら俺に聞け30
801 :デフォルトの名無しさん[sage]:2015/01/07(水) 00:41:53.95 ID:VUZocriK - そんなの気になるなら
STGで 弾を発生したフレームが0フレーム目なのか? 弾を発生した次のフレームが0フレーム目なのか? のほうが気になるじゃないか とくにシーン側で ケース1 jiki.run();//内部で弾A発生 for(int i=0;i<tamanum;i++)tama.run();//弾処理(弾Aの処理が入る) for(int i=0;i<tekinum;i++)teki.run();//内部で弾B発生 ケース2 for(int i=0;i<tamanum;i++)tama.run();//弾処理(当然弾Aの処理はない) jiki.run();//内部で弾A発生 for(int i=0;i<tekinum;i++)teki.run();//内部で弾B発生 でケース1のように記述した場合、 弾Aの0フレーム目が描画されなくてダサい しかも、弾Bの0フレーム目は描画されてさらにダサい 厳密にテストされると指定した位置に弾が発生しないとかいう バグ票切られる
|
- ゲームプログラムなら俺に聞け30
803 :デフォルトの名無しさん[sage]:2015/01/07(水) 01:29:54.77 ID:VUZocriK - >>802
>ここでframeが0〜119なら大丈夫だが、1〜120だとヤヴァイのは言わなくても分かるよな? なにかまずいっけ?
|
- ゲームプログラムなら俺に聞け30
813 :デフォルトの名無しさん[sage]:2015/01/07(水) 21:53:22.08 ID:VUZocriK - >>810
>キャラが移動計算中の場合、変な状態で描画されないように配慮が必要ってことですか? そういう心配はないよ フレーム管理で処理した場合 PCの性能や体調(?)によって次の内部の処理が実行されるまでに 実時間と処理フレームにやたらと乖離が発生してしまう場合がある 完全にオフラインのゲームであれば内部処理を複数回実行して 処理を進めることは必須ではないんだけど ネットワーク対応が必要なリアルタイムなゲームだと処理の遅いPCのプレイヤーの キャラは足も動作も遅い(笑)ってなっちゃうでしょ? だから実時間に合わせてなるべく進めてやるような処理をするわけ STGはネットワーク対応なんてないから処理オチすると スローモーションになったほうが好きってのもあるかもね 上記のようなことをするときに内部処理複数回実行してから描画とか やる必要があるわけ
|