我正在尝试在一种方法中创建一个 for 循环,该方法将在轮到敌人时为计算机控制的敌方玩家设置 6 次预定距离的动画。目前使用下面的代码,敌人会向玩家角色移动,但循环运行得太快了,所以每次移动时敌人都没有动画,它只动画最后的动作。
本质上,我试图做的是在循环结束时导致短暂的(0.75 秒)延迟,以将循环减慢到可接受的量。我在互联网上到处搜索这些信息,但我很惊讶我找不到答案。看起来它会非常简单。任何帮助将不胜感激!
for (int i=0; i<6; i++) {
// Enemy NE
if (enemyZombie.center.x < orcIdle.center.x && enemyZombie.center.y > orcIdle.center.y){
[UIView animateWithDuration:.75 animations:^{ enemyZombie.center = CGPointMake(enemyZombie.center.x + 42.5, enemyZombie.center.y - 30); }];
}
// Enemy NW
if (enemyZombie.center.x > orcIdle.center.x && enemyZombie.center.y > orcIdle.center.y){
[UIView animateWithDuration:.75 animations:^{ enemyZombie.center = CGPointMake(enemyZombie.center.x - 42.5, enemyZombie.center.y - 30); }];
}
// Enemy SE
if (enemyZombie.center.x < orcIdle.center.x && enemyZombie.center.y < orcIdle.center.y){
[UIView animateWithDuration:.75 animations:^{ enemyZombie.center = CGPointMake(enemyZombie.center.x + 42.5, enemyZombie.center.y + 30); }];
}
// Enemy SW
if (enemyZombie.center.x > orcIdle.center.x && enemyZombie.center.y < orcIdle.center.y){
[UIView animateWithDuration:.75 animations:^{ enemyZombie.center = CGPointMake(enemyZombie.center.x - 42.5, enemyZombie.center.y + 30); }];
}
}