SpriteKit游戏开发中的运用PhysicsBody移动SKNode,同时增加背景边界限制。

SpriteKit中的SKAction异常强大,可以通过sequence,group等方式进行多个动作。但是在本次开发游戏中希望通过虚拟手柄操作SKNode的移动方向,此外放开操作杆任然按照之前的方向继续运动,移动到边界后朝边界方向不再移动,但是沿着边界方向继续移动到顶点。初期移动无大碍,可以实时按照操作杆的方向移动SKNode,同时对应的移动背景实现视角永远保持在移动的SKNode正上方。但是移动到边界时,出现灵异的节点位移,并没有沿着边界运动。最后发现,如果单击方向杆,可以正常移动,如果连续移动,会导致到达边界后放生异常移动和跳动。考虑可能是我的ActionRun方法有错误。

我的ActionRun方法如下:

            if xSpeed != 0 {
                let xDestination = -background.frame.width/2 + currentPlayer.frame.width/2
                let xDuration = (xDestination - currentPlayer.position.x)/xSpeed
                let playerXMoveAction = SKAction.moveToX(xDestination, duration: Double(xDuration))
                let backgroundXMoveAction = SKAction.moveToX(-xDestination+SCREEN_WIDTH/2, duration: Double(xDuration))
                self.currentPlayer.runAction(playerXMoveAction)
                self
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值