gpt4 book ai didi

swift - Sprite-Kit 开始出现触摸错误

转载 作者:行者123 更新时间:2023-11-30 13:58:16 25 4
gpt4 key购买 nike

我正在尝试创建一种方法,当我通过 Touchsbegan 函数触摸名为 StartSprite 的 Sprite 时,它会在控制台中打印出一些内容。但由于某种原因,当我点击 Sprite 时什么也没有发生。这是我的代码。

import SpriteKit

class GameScene: SKScene {

let StartSprite = SKSpriteNode(imageNamed: "startLabel")



override func didMoveToView(view: SKView) {

let borderRect = CGRect(x: 0 , y: 0 , width: 400, height: 725)


let welcomeLabel = SKLabelNode(fontNamed: "welcome");
welcomeLabel.text = "Welcome";
welcomeLabel.fontColor = UIColor.whiteColor()
welcomeLabel.fontSize = 65
welcomeLabel.position = CGPoint(x: self.frame.width / 2, y: self.frame.height / 2 + 150)
self.addChild(welcomeLabel)

//StartLabel


let rectangleBorder = SKShapeNode(rect: borderRect)
rectangleBorder.position = CGPoint(x: 315, y: 25)
rectangleBorder.strokeColor = UIColor.whiteColor()
self.addChild(rectangleBorder)

self.backgroundColor = UIColor.grayColor()



StartSprite.position = CGPoint(x: self.frame.width / 2, y: self.frame.height / 2)
self.addChild(StartSprite)


println("Hello")

}

override func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent) {
let touch = touches.first as! UITouch
let touchLocation = touch.locationInNode(self)
if touchLocation == StartSprite.position{

println("Touches")

}
}
}

最佳答案

您的代码要求您准确触摸 StartSprite.position 处的一个像素。

试试这个:

let p = StartSprite.convertPoint(touchLocation, fromNode: self)
if StartSprite.containsPoint(p) {
print("touched StartSprite")
}

如果您要添加更多按钮,您可能需要这样做:

let target = nodeAtPoint(touchLocation)
if target == StartSprite {
print("touched StartSprite"
}
// check other buttons here

关于swift - Sprite-Kit 开始出现触摸错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33325165/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com