SpriteKitで動いている画像にタッチ判定をつけて,タッチされると表示されている文字が変化するようにしたいのですが,タッチ判定が出ません.touchesBeganに問題があるとは思うのですが,初心者ということもあり,どこが問題なのかすら分からない状況です.
いくつか調べてみたのですが,解決しなかったので投稿させていただきました.
以下にソースコードを貼ります.
よろしくお願い致します.
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
import SpriteKit
import GameplayKit
class GameScene: SKScene {
let msgLabel = SKLabelNode(fontNamed: "Chalkduster") var msg:String = "テスト" let myimage = SKSpriteNode(imageNamed: "22.JPG") let randomSource = GKARC4RandomSource() override func didMove(to view: SKView) { self.backgroundColor = UIColor.black msgLabel.text = msg msgLabel.fontSize = 36 msgLabel.position = CGPoint(x: 320, y: 1000) self.addChild(msgLabel) self.physicsBody = SKPhysicsBody(edgeLoopFrom: self.frame) newmove() } func newmove() { let myimage = SKSpriteNode(imageNamed: "22.JPG") myimage.size = CGSize(width:200, height:200) let wx = randomSource.nextInt(upperBound: 440) + 100 let wy = randomSource.nextInt(upperBound: 200) + 800 myimage.position = CGPoint(x: wx, y: wy) myimage.physicsBody = SKPhysicsBody(circleOfRadius: 45) myimage.physicsBody?.velocity = CGVector(dx:20,dy:50) // 重力を無視する myimage.physicsBody?.affectedByGravity = false // 空気抵抗を無視する myimage.physicsBody?.linearDamping = 0 myimage.physicsBody?.restitution = 0.85 myimage.physicsBody?.friction = 0.2 self.addChild(myimage) } func touchDown(atPoint pos : CGPoint) { } func touchMoved(toPoint pos : CGPoint) { } func touchUp(atPoint pos : CGPoint) { } override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) { for touch in touches{ let location = touch.location(in: self) let touchNodes = self.nodes(at: location) for tnodes in touchNodes{ if tnodes == myimage{ msg = "狙い通り" msgLabel.text = msg } } } } override func update(_ currentTime: TimeInterval) { // Called before each frame is rendered }
}
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。