【发布时间】:2020-09-19 05:45:54
【问题描述】:
我已经改变了这个问题不止一点,所以我把它移到了一个新的线程: How can I set a physicsbody to be properly centered?
我刚开始使用 SKPhysicsBody,我确实有 view.showsPhysics = true
下面是我创建一个简单的红色边框的代码,效果很好,正是我想要的位置。
但是,当我取消注释将physicsBody 应用于边界的两条线时,它会意外移动,甚至来自view.showsPhysics = true 的物理调试线也与边界线不同步。
下面是代码,左边提供的截图就是我想要的。右侧的屏幕截图显示了当我将physicsBody 应用于SKSpriteNode 时发生的情况。
显然我应用了一些不正确的东西,但我无法弄清楚。
func createBorder () -> SKSpriteNode
{
let mBorder = MyBorder(color: .red, size: CGSize(
width: myGlobalVars.widthPoints,
height: myGlobalVars.heightPoints * 0.01 ))
mBorder.isHidden = true
mBorder.anchorPoint = CGPoint(x: 0, y: 0)
mBorder.position = CGPoint(x: 0, y: myGlobalVars.heightPoints * 0.2)
// mBorder.physicsBody = SKPhysicsBody(rectangleOf: CGSize(width: myGlobalVars.widthPoints, height: myGlobalVars.heightPoints * 0.01))
// mBorder.physicsBody!.affectedByGravity = false
mBorder.zPosition = theZ.theBoarder
mBorder.isHidden = false
myGlobalVars.gameScene!.addChild(mBorder)
return mBorder
}
附言请忽略第一个显示灰色条的屏幕。我刚刚改变了颜色。
【问题讨论】:
标签: sprite-kit swift5 skphysicsbody