我现在有什么,我的游戏在Xcode上的模拟器上加载,因为它应该,但当我点击屏幕时,"基本顶部 "不旋转。基本顶部是四个三角形中的一个,组成了一个正方形。
我想要的是 为了让那个正方形旋转,我必须让四个三角形都旋转。现在,即使我点击屏幕,基本的顶部也不会旋转。一旦我让basic top旋转,我就可以复制其他三角形的代码来制作一个旋转的正方形。我需要这四个三角形都围绕某一点旋转。
代码如下
class GameScene: SKScene {
var brickSwitch: SKSpriteNode!
var basicTop = SKSpriteNode(imageNamed: "Top Side");
var basicBottom: SKSpriteNode!
var basicLeft: SKSpriteNode!
var basicRight: SKSpriteNode!
override func didMove(to view: SKView) {
layoutScene()
}
func turnBasicTop() {
basicTop.isUserInteractionEnabled = true
basicTop.run(SKAction.rotate(byAngle: .pi/2, duration: 0.25))
}
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
turnBasicTop()
}
func spawnBasicTop() {
let basicTop = SKSpriteNode(imageNamed: "basic top")
basicTop.size = CGSize(width: 400, height: 400)
basicTop.position = CGPoint(x: 230, y: 200)
basicTop.zPosition = 1
basicTop.physicsBody = SKPhysicsBody(rectangleOf: basicTop.size)
basicTop.physicsBody?.categoryBitMask = PhysicsCategories.basicTopCategory
basicTop.physicsBody?.isDynamic = false
basicTop.physicsBody?.allowsRotation = true
addChild(basicTop)
}
的 basicTop
定义于 spawnBasicTop()
指的是方法内定义的局部变量,作为同名的局部变量,另一个范围更大的变量优先引用。因此,当你试图在方法中运行一个动画时,你可以在 basicTop
在 turnBasicTop()
方法,动作在一个完全独立的 SKSpriteNode
实例。我想你没有看到任何事情发生,是因为场景的 basicTop
财产不在视野之内;有其 isHidden
属性为真;或者不能被分配给图像的 "Top Side"
因为它不存在,所以大小为零。添加
self.basicTop = basicTop
至 spawnBasicTop()
方法就可以了,不过我建议你多了解一下Swift,以及变量是如何声明、捕获等。