2014-12-06 43 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(或任何你设置于)世界的位置开始追随玩家。我已经测试它,它的作品完美

相关问题