游戏对象在给定时间内不可见

时间:2017-05-24 09:54:57

标签: c# game-engine 2d-games

大家好日子,目前我正在使用SWINGAME开发一款简单的2D游戏。我在2个对象之间设置了碰撞。所以当它们发生碰撞时,我想暂时让它们中的一个看不见一段时间。我对时间组件感到困惑,假设我希望对象在3秒内不可见,之后它将变回默认对象。下面是两个图像,如果碰撞为真,则它将显示图像2,否则显示图像1。顺便说一句,我使用不同的图像来表示隐形。这是我的代码。

玩家类:

 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 个答案:

答案 0 :(得分: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);
            }
        }