ios - 为什么我的相机(跟随玩家)不工作(SpriteKit)?

标签 ios objective-c sprite-kit

所以,在这个游戏中,我让玩家可以使用加速计左右移动,并通过点击屏幕跳跃。现在,玩家必须躲避天空中的敌人,并通过跳跃倒下的敌人来爬上来。玩家应该能够无限上升直到死亡,因此需要一个摄像机来跟踪玩家的上升过程。我读过其他一些 Stack Overflow 帖子并查阅了 Apple 的编程指南,但我无法弄清楚。这是我添加的:

-(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)));
}

然后还有很多其他方法可以将其他东西添加到游戏中,包括敌人、碰撞处理等。

好的,所以当我这样做时,玩家的移动突然停止工作,玩家的生成位置发生了变化,其余的 Sprite (不是世界的子节点)继续前进。

为什么这不起作用,我该如何解决它,它是如何工作的?

最佳答案

为了让相机跟随你的玩家添加这些简单的代码行:

    int cameraEdge = 100;

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

    }
    self.world.position = worldPosition;

它的作用:只要你的玩家的 y 位置高于 100(或你设置的任何值),世界的位置就会开始跟随玩家。我已经测试过了,效果很好

关于ios - 为什么我的相机(跟随玩家)不工作(SpriteKit)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27332095/

相关文章:

ios - React native 全新安装 ReferenceError : Unknown plugin "transform-runtime" specified

ios - 如何在 iOS 推送通知后在除一个 View 之外的任何地方显示 UIAlertView

ios - 防止 SKLabelNode 接收 Touches

ios - Google Maps iOS 删除多段线

ios - NSData 到 NSArray;数组为空

ios - 为什么在 objective-c 中推送到另一个 View 时标签栏会隐藏

ios7 - SKLabelNode错误,仅iOS7崩溃

ios - 如何制作一个在 update() 中按下按钮时启动的 int 秒计数器?

ios - UIScrollView 的奇怪行为

ios - @protocol 之前的 static 关键字