2014-12-06 82 views
0

所以,在這個遊戲中,我讓玩家可以使用加速度計左右移動,並通過點擊屏幕來跳轉。現在,玩家必須躲過天空的敵人,爬上墜落的敵人爬上去。玩家應該能夠無限上升,直到他死亡,因此需要攝像頭跟隨玩家的旅程。我已經閱讀了一些其他堆棧溢出帖子,並諮詢了Apple的編程指南,但我無法弄清楚。這是我補充說:爲什麼我的相機(跟隨播放器)不工作(SpriteKit)?

-(void) createSceneContents 
{ 
    self.world = [SKNode node]; 
    self.playerSize = self.frame.size.width/7; 
    self.player = [self.playerData newPlayer:self.playerSize]; 
    self.player.name = @"player"; 
    self.player.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:CGSizeMake(self.playerSize-5,self.playerSize-5)]; 
    self.player.physicsBody.allowsRotation = NO; 
    self.player.physicsBody.categoryBitMask = self.playerCategory; 
    self.player.physicsBody.contactTestBitMask = self.enemyCategory | self.edgeCategory; 
    self.isTouchingGround = NO; 
    self.player.position = CGPointMake(CGRectGetMidX(self.frame), 100); 
    [self.playerData movementSetup]; 
    [self addChild:self.world]; 
    [self.world addChild:self.player]; 
} 

這個方法還有更多的東西,但這些對這個問題並不重要。

-(void) didSimulatePhysics 
{ 
     self.world.position = CGPointMake(-(self.player.position.x-(self.size.width/2)), -(self.player.position.y-(self.size.height/2))); 
} 

然後還有很多其他的方法添加其他東西的遊戲,包括敵人,碰撞HANDELING等

好了,當我做這個球員的運動突然停止工作,球員產卵位置被改變了,其餘的精靈,不是世界的小孩節點,只是繼續前進。

爲什麼不能正常工作,我該如何解決這個問題,它是如何工作的?

+0

看看這個答案http://stackoverflow.com/questions/23851265/moving-a-camera-in-spritekit/23856474#23856474 – sangony 2014-12-06 14:00:39

+0

我不認爲你可能會發現更多錯誤的措詞和誤導性的標題,因爲你已經設置了你的問題... – AMI289 2014-12-06 14:34:08

+0

什麼是這樣的誤導標題 – SemAllush 2014-12-06 14:35:18

回答

1

爲了使相機跟隨您的播放器添加的代碼,這些簡單的線條:

int cameraEdge = 100; 

    if (self.player.position.y > cameraEdge) { 
    worldPosition.y = cameraEdge - self.player.position.y; 

    } 
    self.world.position = worldPosition; 

這裏做的事情:每當你的球員的y位置高於100(或任何你設置於)世界的位置開始追隨玩家。我已經測試它,它的作品完美

相關問題