相关疑难解决方法(0)

Swift中的SpriteKit物理 - Ball滑向墙壁而不是反射

我一直在创建我自己非常简单的基于Breakout的测试游戏,同时学习SpriteKit(使用Ray Wenderlich等教授的iOS游戏)来看看我是否可以应用我学到的概念.我决定通过使用.sks文件来创建精灵节点并用物理主体替换我的手动边界检查和碰撞来简化我的代码.

然而,只要它以陡峭的角度与它们碰撞,我的球就会保持平行于墙壁/其他矩形(例如,只是向上和向下滑动).这是相关的代码 - 我已将物理主体属性移动到代码中以使它们更加可见:

import SpriteKit

struct PhysicsCategory {
  static let None:        UInt32 = 0      //  0
  static let Edge:        UInt32 = 0b1    //  1
  static let Paddle:      UInt32 = 0b10   //  2
  static let Ball:        UInt32 = 0b100  //  4
}

var paddle: SKSpriteNode!
var ball: SKSpriteNode!

class GameScene: SKScene, SKPhysicsContactDelegate {

  override func didMoveToView(view: SKView) {

    physicsWorld.gravity = CGVector.zeroVector

    let edge = SKNode()
    edge.physicsBody = SKPhysicsBody(edgeLoopFromRect: frame)
    edge.physicsBody!.usesPreciseCollisionDetection = true
    edge.physicsBody!.categoryBitMask = PhysicsCategory.Edge
    edge.physicsBody!.friction = 0
    edge.physicsBody!.restitution …
Run Code Online (Sandbox Code Playgroud)

box2d game-physics sprite-kit swift

15
推荐指数
2
解决办法
6351
查看次数

标签 统计

box2d ×1

game-physics ×1

sprite-kit ×1

swift ×1