【发布时间】:2013-01-08 13:40:56
【问题描述】:
我有一个 for 循环,我在其中声明精灵的位置。但它们通常会在彼此附近产卵,看起来很可怕。使用dbWait(1000); 之类的函数会冻结所有的精灵,所以这不是一个解决方案。
有没有办法在产卵之间留出空隙?
for(int i=20;i<=25;i++){
dbSprite(i,dbRnd(500),dbRnd(90)+400,20);
dbHideSprite(i);
}
【问题讨论】:
我有一个 for 循环,我在其中声明精灵的位置。但它们通常会在彼此附近产卵,看起来很可怕。使用dbWait(1000); 之类的函数会冻结所有的精灵,所以这不是一个解决方案。
有没有办法在产卵之间留出空隙?
for(int i=20;i<=25;i++){
dbSprite(i,dbRnd(500),dbRnd(90)+400,20);
dbHideSprite(i);
}
【问题讨论】:
int spritesToSpawn = 25;
while (LoopGDK ())
{
if (spritesToSpawn)
if (waitToSpawn <= 0)
{
dbSprite (i, dbRnd (500), dbRnd(90)_400, 20);
waitToSpawn = SPAWNING_DELAY;
--spritesToSpawn;
}
else
--waitToSpawn;
...
dbSync();
}
也就是说,诀窍是利用那个主循环。让它继续它的工作,当你准备好另一个时,利用它来产卵。
【讨论】: