我想運行一個操作並同時繼續處理遊戲邏輯,但是當進程正在進行時,操作會中斷。我試圖使用線程,但我無法使它工作。當不需要處理遊戲邏輯時,精靈將按照我的預期移動,但是當需要在動作期間進行一些操作時,動作會在操作期間中斷。操作結束後,操作正在進行。 我在做什麼錯?cocos2d-iphone操作被正在進行的操作中斷
我按如下方式調用選擇器 - 選擇器啓動該操作。
[NSThread detachNewThreadSelector:@selector(moveSprite:)
toTarget:self
withObject:[NSDictionary dictionaryWithObjectsAndKeys:
sprite, @"sprite",
[NSValue valueWithCGPoint:pos], @"pos",
nil]];
-(void) moveSprite: (NSDictionary*) parameters {
CCSprite *sprite = [parameters objectForKey:@"sprite"];
CGPoint pos = [[parameters objectForKey:@"pos"] CGPointValue];
id actionMove = [CCMoveTo actionWithDuration:0.4f position:pos];
id actionMoveDone = [CCCallFuncND actionWithTarget:self selector:@selector(removeSprite:data:) data:(__bridge void*)sprite];
[sprite runAction:[CCSequence actions:actionMove, actionMoveDone, nil]];
}
行動結束後,我通過以下方法刪除精靈。
-(void) removeSprite: (id)sender data:(void*)data {
CCSprite *sprite = (__bridge CCSprite*)data;
[self removeChild:sprite cleanup:YES];
}
此外,您還需要顯示導致該塊的遊戲邏輯部分。停止渲染遊戲必須非常緊張。 –
我不知道接受的理由。感謝您的警告。 – beyax