我尝试创建位掩码类别,将所有恢复值设置为1,以及其他所有设置,包括运行应用程序和设备,但它仍然无法工作。在设置一个退役为1的SKSpriteNode命中另一个恢复为1的skspritenode后,dx: 100仍然不弹!下面是我的GameScene.swift代码:
import SpriteKit
import GameplayKit
class GameScene: SKScene {
override func didMove(to view: SKView) {
let Ball = SKSpriteNode()
Ball.self.childNode(withName: "Ball")
let playerPaddle = SKSpriteNode()
playerPaddle.self.childNode(withName: "playerPaddle")
let computerPaddle = SKSpriteNode()
computerPaddle.self.childNode(withName: "computerPaddle")
let ballCategory: UInt32 = 0x1 << 1
let paddleCategory: UInt32 = 0x1 << 2
let borderCategory: UInt32 = 0x1 << 3
Ball.physicsBody?.categoryBitMask = ballCategory
playerPaddle.physicsBody?.categoryBitMask = paddleCategory
computerPaddle.physicsBody?.categoryBitMask = paddleCategory
self.physicsBody?.categoryBitMask = borderCategory
let playerScore = SKLabelNode()
playerScore.fontName = "Pong Score"
playerScore.text = "0"
playerScore.fontSize = 100
playerScore.color = SKColor.white
playerScore.position = CGPoint(x: -200, y: 220)
playerScore.zPosition = 3
addChild(playerScore)
let comScore = SKLabelNode()
comScore.fontName = "Pong Score"
comScore.text = "0"
comScore.fontSize = 100
comScore.color = SKColor.white
comScore.position = CGPoint(x: 200, y: 220)
comScore.zPosition = 3
addChild(comScore)
var comScoreInt: Int = Int(comScore.text!)!
comScoreInt += 1
comScore.text = String(comScoreInt)
var playerScoreInt: Int = Int(playerScore.text!)!
playerScoreInt += 1
playerScore.text = String(playerScoreInt)
let bodyBorder = SKPhysicsBody(edgeLoopFrom: self.frame)
bodyBorder.friction = 0
bodyBorder.restitution = 1
self.physicsBody = bodyBorder
}
}PS大多数物理原理都在GameScene.sks中,而不是GameScene.swift中,然而这是位掩码所在的地方。
编辑:
Ball Config;
位置x:0,y:0,z:0,
旋转: 0,
尺寸:宽:25,高:25
锚点: x:0.5,y:0.5,
颜色:白色,
混合因子: 0,
混合模式: alpha,
Alpha: 1,
Ik约束:最小值:0,最大值:360,
比例: x:1,y:1,
物理学
实体类型:边界矩形,
只有动态检查,
摩擦力: 0,
恢复: 1,
Linuar阻尼:0,
角度阻尼: 0,
类别、冲突和字段掩码: 4294967295,
联系方式:0
初始速度: dx:100 dy:0
划板是一样的物理智慧,请帮帮忙!
发布于 2017-08-08 15:37:51
为了在GameScene.sks中应用初始速度,我在GameScene.swift中应用了一个力,如下所示:Ball.physicsBody?.applyImpulse(CGVector(dx:50, dy:0))恢复开始工作
https://stackoverflow.com/questions/45546372
复制相似问题