2017-05-24 4 views
0

皆さん、こんにちは皆、SWINGAMEを使って簡単な2Dゲームを開発しています。私は2つのオブジェクトの間に衝突を設定しました。彼らが衝突したとき、私は一時的にそれらのうちの1つを見えないようにしたい。私は時間コンポーネントについて固執しています。オブジェクトをデフォルトのオブジェクトに戻してから3秒間目に見えないようにしたいとしましょう。以下は2つの画像です。衝突が真であればimage2、そうでなければimage1を表示します。私は、不可視を示すために別のイメージを使用します。ここに私のコードです。与えられた時間にゲームオブジェクトが見えない

プレーヤークラス:

public void Draw() 
     { 
      if (invisible == true) { 
       if(elapsedTime <= 3.0){ 

       elapsedTime += elapsedTime; 
       SwinGame.DrawBitmap ("image2.png", (float)X, (float)Y); 

        } 
      }else { 
       elapsedTime = 0; 
       SwinGame.DrawBitmap ("image1.png", (float)X, (float)Y); 
      } 
     } 

    public bool Invisible { 
     get { return invisible; } 
     set { invisible = value; } 
     } 

オブジェクトの衝突のクラス:

{... //Some codes 

    for(int i = 0; i < _obstacles.Count; i++) 
    { 
     if (_obstacles [i] is Invisible) { 
     p.Invisible = true; 
     p.Draw(); 
      } 
    } 
//Some codes ...} 

答えて

1

これはStopWatchクラスを使用して、正確に時間を計算するためのお手伝いをする必要があります

//somewhere in your code 
Stopwatch sw = new Stopwatch(); 
      sw.Start(); 

public void Draw() 
     { 
      if (invisible == true) { 
       if(sw.ElapsedMilliseconds <= 3000){ 

       SwinGame.DrawBitmap ("image2.png", (float)X, (float)Y); 

        } 
      }else { 
       sw.Restart(); 
       SwinGame.DrawBitmap ("image1.png", (float)X, (float)Y); 
      } 
     } 
+0

これはイメージになります3秒間表示され、その後は消えます。何か案は? –

+0

私はちょうどタイマーを追加し、あなたのコードをコピー貼り付けました。私は助けようとするより多くのコードを見る必要があります。とにかく、Visibilityプロパティをコードのどこかでfalseに設定しているかどうか確認することをお勧めします。 – Elis

+0

私は上記のコードを更新しました。見てください:) –

関連する問題