2012-08-28 29 views
-1

我正在开发一个游戏,提高其水平的时间。同时也增加了敌人的数量,但是,我并不真正知道在哪里放置更新我的敌人的代码。Android Spawn敌人的时间

我在使用时间作为我的参考时遇到问题,我创建了一个Time类,它存储了beginTime(System.currenttimemillis)和timediff(System.currenttimemillis-beginTime),并且在我的线程中实例化它们类,所以它会得到游戏的当前时间状态,但是,当我在更新方法中特别是在我的gamepanel类中使用它时,比较其存储的值时,即使它具有值,也会忽略该条件。

if(time.getTimeDiff()==3000){ 
    enemy.update(); 
} 

游戏应该经过3秒启动,但如果我把情况下,没有敌人会来,即使我设置1个虚拟。

如果有人能够清楚地向我解释所有事情,我会真正了解它。

+1

你确定你的代码每毫秒通过一次比较吗?不应该是'if(time.getTimeDiff()> = 3000)'? – fgp

+0

好吧,我会尽力实现这一点,谢谢 –

+0

它根本不起作用。当time.getTimeDiff()达到或超过3000毫秒时,我的敌人应该从右向左移动 –

回答

0

也许你应该试试这个?

if (System.currentTimeMillis() - start > 3000) 
{ 
    updateEnemy(); 
    start = System.currentTimeMillis(); 
} 

编辑

如果你想增加难度,具有可变取代3000 ..喜欢: INT WAITTIME = 3000;

然后获取游戏的开始时间。

long gameStart = System.currentTimeMillis(); 

后来检查:

if (timeEllaspsedSinceStart > howManySecondsTilLevelUp) 
{ 
    waitTime -= howMuchLessYouWantToWait; 
} 
+0

您共享的代码不起作用,我的敌人没有移动,但是感谢.. –

+0

如果你的敌人没有移动,它可能在你的updateEnemy()方法中。这不会移动你的方法。它只是提供一个检查,看看是否已经超过3000毫秒。 –

+0

我的朋友告诉我,我的问题是我的线程,即使我为时间更新放置了不同的代码,它仍然忽略我放入if语句的条件,每次线程类更新gamepanel类时,与时间有关的条件是忽略,但与图像位置和碰撞条件相关的条件不被忽略。 –

0

这个工作对我来说:

这是一类我写的是用作定时器动作:

public class Timer { 

    Long startTime; 
    int delayTime; 

    public Timer() { 

    } 

    public Timer(int delayTime) { 
     this.delayTime = delayTime; 

    } 

    public void setDelayTime(int delayTime) { 
     this.delayTime = delayTime; 

    } 

    public boolean delay() { 
     if(this.startTime == null) { 
      this.startTime = System.currentTimeMillis(); 
     } 

     if(startTime + this.delayTime < System.currentTimeMillis()) { 
      this.startTime = null; 
      return true; 
     } 
     else { 
      return false; 
     } 

    } 

    public void reset() { 
     this.startTime = System.currentTimeMillis(); 

    } 


} 

现在,在您的更新方法,你可以检查是否应该像这样产生一个新的敌人:

Timer spawnEnemyTimer = new Timer(5000); // 5 seconds 

public void update() { 
if(spawnEnemyTimer.update() == true) { 
// spawn new enemy! 
// Timer will automatically reset! 
} 

} 

我希望这有助于!

+0

谢谢,我会尽力实现它。 –