我目前正在使用精靈套件製作應用程序。我試圖在用戶向上滑動時更改對象的速度。但是,即使函數被調用,速度也不會改變。 這裏是我的代碼:iOS:設置速度不起作用精靈套件
- (void)swipedUp {
NSLog(@"swiped up!");
_player.physicsBody.velocity = CGVectorMake(_player.physicsBody.velocity.dx, 200.0f);
}
我能夠改變所謂的更新功能的其他功能的速度:
-(void)update:(CFTimeInterval)currentTime {
/* Called before each frame is rendered */
_player = [self updatePlayer];
[self moveBackgound];
}
- (SKNode *)updatePlayer {
/* Create the node */
SKNode *playerNode = [SKNode node];
SKSpriteNode *sprite = [SKSpriteNode spriteNodeWithImageNamed:@"Car_normal.png"];
// dx > 0 => right ; dy > 0 => up
_player.physicsBody.velocity = CGVectorMake(0.0f, 10.0f);
if (_player.physicsBody.velocity.dy < 0.0f) {
sprite = [SKSpriteNode spriteNodeWithImageNamed:@"Car_brake.png"];
}
[playerNode addChild:sprite];
return playerNode;
}
在當前版本中,我刪除的updatePlayer功能 _player.physicsBody.velocity = CGVectorMake(0.0f, 10.0f);
LIGNE ,但它仍然不會改變速度。
我也嘗試從swipedUp函數中使用布爾值來調用updatePlayer函數,以確保我應該改變速度。再次,ligne被讀取,但速度變化不被應用。 我以前在另一個應用程序中有類似的問題來更改UILabel的文本。我用[_player performSelector:<#(SEL)#> onThread:<#(NSThread *)#> withObject:<#(id)#> waitUntilDone:<#(BOOL)#>]
。但是,我需要傳遞一個不是'id'類型的CGVector,所以我不能使用這個代碼。
爲什麼要創建每一幀上一個新的球員?每次更新:被稱爲你正在創建_player並將其放置在場景中。這將永遠不會工作 –
我這樣做是爲了改變_player的圖像。 – user3079660
身體應該是動態的,那麼只有物理學會應用速度。 – balagurubaran