[1.1] 自分が今行いたい事は何か
ブロック崩しにおいて、アイテムをとったとき、特殊効果(バーの長さが長くなる等)が発動し、ある一定時間が
経ったら、その効果を消す処理をしたいですがなかなかうまくいきません。
[1.2] どのように取り組んだか(プログラムコードがある場合記載)
アイテム取得のコードの概要は以下の通りです。
codeタグをお使い下さい。 by softya(ソフト屋)
~省略~
if(ItemType[i] == 2){ //アイテムを取ったら
BarGHandle = LoadGraph( "bar2.png" ); //バーを長くする
OldTime = GetNowCount() ;//取得した時点の時間を記録
while(1){
TimeFunc() ;//時間経過関数
}
}
~省略~
int WaitCounter ; //経過時間計測用
int NowTime ; // 現在のフレームで経過した時間
int OldTime ; // 前のフレームのときにGetNowCount関数で得たタイム
int TimeFunc( void )
{
int Time ;
// 現在の時間を得る
Time = GetNowCount() ;
// 今フレームで経過した時間を得る
NowTime = Time - OldTime ;
// 現在の時間を保存
OldTime = Time ;
// ウエイトカウンタに経過時間を加算する
WaitCounter += NowTime ;
// 一定時間が経過したら、効果を消す関数へ
if( WaitCounter > WAIT )
{
TurnBar();
// カウンターを0に戻す
WaitCounter = 0 ;
}
// 終了
return 0 ;
}
int TurnBar(void)
{
BarGHandle = LoadGraph( "標準バー.png" );//長くなったバーをもとに戻す
return 0;
}アイテムを取ったときに全体がフリーズしてしまって、ゲームが続かなくなります。
[1.4] 今何がわからないのか、知りたいのか
全体が止まらずに、一定時間が経過したら、特殊効果がなくなるようにしたいです。
[2] 環境
[2.1] OS : Windows7
[2.2] コンパイラ名 : VC++ 2008EE
[3] その他
・ライブラリを使っている場合は何を使っているか
DXライブラリ