Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
XCODE-如何更新阵列?_Xcode_Arrays_Xcode4_Nsmutablearray_Logic - Fatal编程技术网

XCODE-如何更新阵列?

XCODE-如何更新阵列?,xcode,arrays,xcode4,nsmutablearray,logic,Xcode,Arrays,Xcode4,Nsmutablearray,Logic,我对Xcode/编程非常陌生,并尝试修改现有代码 我遇到了一个小问题,在某个特定时间屏幕上有大量的对象(敌人),无法重新定义它们的值。我将我的敌人设置为从屏幕上的3开始 我的目标是根据当前的分数改变敌人的数量 我在下面附上了代码片段 int numberOfEnemies; if (self.score>=0) { numberOfEnemies = 3 } else if (self.score>=100) { numberOfEnemies = 4 } // Setup

我对Xcode/编程非常陌生,并尝试修改现有代码

我遇到了一个小问题,在某个特定时间屏幕上有大量的对象(敌人),无法重新定义它们的值。我将我的敌人设置为从屏幕上的3开始

我的目标是根据当前的分数改变敌人的数量

我在下面附上了代码片段

int numberOfEnemies;

if (self.score>=0) {
numberOfEnemies = 3
}

else if (self.score>=100) {
numberOfEnemies = 4
}


// Setup array 

enemyArray = [[NSMutableArray alloc] init];

for(int i = 0; i < numberOfEnemies; i++) {
    [enemyArray addObject:[SpriteHelpers setupAnimatedSprite:self.view numFrames:3
    withFilePrefix:@"enemyicon" withDuration:((CGFloat)(arc4random()%2)/3 + 0.5)
    ofType:@"png" withValue:0]];
}

enemyView = [enemyArray objectAtIndex:0];
int数;
如果(自我评分>=0){
数量=3
}
否则如果(自我评分>=100){
数量=4
}
//设置阵列
enemyArray=[[NSMutableArray alloc]init];
for(int i=0;i

当我的分数更新时,我需要做什么才能将新的
numberOfOfOfOfOfOfOfOfOfOfOfOfOfOfOfOfOfOfOfOfOfOfOfOfOfOfOfOfOfOfOfOfOfOfOfOfOfOfOfOfOfOfOfOfOfOfOfOfOfOfOfOf

到目前为止,我们已经确定出现问题的原因是在viewDidLoad函数中执行上述代码,该函数将在应用程序首次启动时至少运行一次。问题是,你已经发现,你没有机会看到一个新的分数,然后更新敌人的数量

我知道iOS的游戏更新循环通常是在以下结构中完成的,但我建议在网上找到一个教程,以获得更有效/正确的方法

根据您当前的结构,我将使用上面的代码,并从中创建一个新函数:

-(void) updateDifficulty:(NSTimer *)gameTimer
{
    //This can be the code you have above for now
}
之后,在viewDidLoad中,我将输入以下代码:

-(void) viewDidLoad:
{
    gameTimer = [NSTimer timerWithTimeInterval:1.0 target:self selector:@selector(updateDifficulty:) userInfo:nil repeats:YES];
    [[NSRunLoop mainRunLoop] addTimer:gameTimer forMode:NSDefaultRunLoopMode];
}
它所做的是声明一个计时器,该计时器将跟踪游戏时间,以及它是如何声明的,每1秒它将调用UpdateDifficity方法。这是您想要的一般结构,但我再次强烈建议您查看Ray Wenderlich的游戏教程


希望有帮助

哪个阵列?我认为您需要显示更多的代码。您现在显示的代码是某种更新函数中的代码吗?你的敌人所在的阵阵有多大?我猜你是在重复使用它们,还是它们目前只是静态/非交互式的?@pb2q请参阅更新阵列组件。希望这有助于以上代码中的函数是什么?这就是我要问的。它不止运行一次吗?如果是这样的话,您的代码应该基于您提供的内容工作。如果没有,您看到的错误/不良行为是什么?@KarolyS Hi Karoly您是否建议我创建并更新函数?如果这有帮助的话,我已经添加了更多的代码