08/08/07 18:45:06 6PyoA3BU
C++でゲームを作っています。
爆弾をセット、一定時間後に爆発 という動作をさせたいんですがどのように表現すればいいのでしょうか?
一定時間後に、という部分がいまいちうまくいかなくて・・・よろしくお願いします
857:名前は開発中のものです。
08/08/07 19:20:43 jIGgrvQE
メインループの中で一定時間をカウントして、イベントを起こす。
858:名前は開発中のものです。
08/08/07 21:31:09 afI3YDNl
GetTickCount( )というPC起動から何ミリ秒経過したかを返すAPIがある。
爆弾をセットした時に時間を取得し、爆発時間を加える。
GetTickCount( )で取得した時間が爆破時間を過ぎたら爆発。
859:856
08/08/08 15:38:46 czGsvGYo
お早いアドバイス、ありがとうございます。
やはりタイマー関数のようなものを使わないといけませんか・・・
いまいち使い方がわからないのでifやforを駆使していました。
タイマー関数のようなものを使わないというのはやはり勧められないものでしょうか。
860:名前は開発中のものです。
08/08/08 16:32:11 w2HHE1WB
俺ならキャラごとにカウンターもたせて、1フレームごとにカウントさせるなぁ。
タイマー使ったら、例えば処理落ちしたときとかに爆発タイミング変わったりして困るんじゃない?
861:名前は開発中のものです。
08/08/08 17:31:57 79kn61a7
作るゲームにもよる
例えば等速処理したいときとかどうする
862:名前は開発中のものです。
08/08/08 21:56:47 w2HHE1WB
ああなるほど。
処理落ちしても、ゲーム速度は変わらない設計なら当然タイマー使用のほうになるのか。
863:名前は開発中のものです。
08/08/10 14:19:34 u1XmHl+X
俺もやりたいんだけど1フレームごとにカウントってどうやるの?
864:名前は開発中のものです。
08/08/10 18:37:29 EcZynTEp
while (1) {
ゲームループ実行();
VSYNCを待つ();
カウント変数++;
}
基本的にはこれだけ
865:名前は開発中のものです。
08/08/10 23:22:09 u1XmHl+X
>VSYNCを待つ();
ってなんですか?
866:名前は開発中のものです。
08/08/11 18:10:04 g7MMOmCL
もうwindowsプログラミング以前の低次元のことだから他のスレいきなよ