建议您先阅读我的代码:
//
// PlaysScene.swift
// Pocket Rocket3
//
// Created by Lucas Farleigh on 27/11/2014.
// Copyright (c) 2014 Lucas Farleigh. All rights reserved.
//
import spriteKit
class PlayScene:SKScene {
//declaring the node in this scene!
let background = SKSpriteNode(imageNamed: "background")
let bara = SKSpriteNode(imageNamed: "bar6")
let barb = SKSpriteNode(imageNamed: "bar6")
let barc = SKSpriteNode(imageNamed: "bar6")
let bard = SKSpriteNode(imageNamed: "bar6")
let bare = SKSpriteNode(imageNamed: "bar6")
let barf = SKSpriteNode(imageNamed: "bar6")
let barg = SKSpriteNode(imageNamed: "bar6")
let barh = SKSpriteNode(imageNamed: "bar6")
let bari = SKSpriteNode(imageNamed: "bar6")
let barj = SKSpriteNode(imageNamed: "bar6")
let bar1 = SKSpriteNode(imageNamed: "bar6")
let bar2 = SKSpriteNode(imageNamed: "bar6")
let bar3 = SKSpriteNode(imageNamed: "bar6")
let bar4 = SKSpriteNode(imageNamed: "bar6")
let bar5 = SKSpriteNode(imageNamed: "bar6")
let bar6 = SKSpriteNode(imageNamed: "bar6")
let bar7 = SKSpriteNode(imageNamed: "bar6")
let bar8 = SKSpriteNode(imageNamed: "bar6")
let bar9 = SKSpriteNode(imageNamed: "bar6")
let bar10 = SKSpriteNode(imageNamed: "bar6")
let missile1 = SKSpriteNode(imageNamed:"Missile")
let missile2 = SKSpriteNode(imageNamed:"Missile")
let missile3 = SKSpriteNode(imageNamed:"Missile")
let missile4 = SKSpriteNode(imageNamed:"Missile")
let missile5 = SKSpriteNode(imageNamed:"Missile")
let missile6 = SKSpriteNode(imageNamed:"Missile")
let missile7 = SKSpriteNode(imageNamed:"Missile")
let missile8 = SKSpriteNode(imageNamed:"Missile")
let missile9 = SKSpriteNode(imageNamed:"Missile")
let missile10 = SKSpriteNode(imageNamed:"Missile")
let missile11 = SKSpriteNode(imageNamed:"Missile")
let missile12 = SKSpriteNode(imageNamed:"Missile")
let missile13 = SKSpriteNode(imageNamed:"Missile")
let missile14 = SKSpriteNode(imageNamed:"Missile")
let missile15 = SKSpriteNode(imageNamed:"Missile")
let rocket = SKSpriteNode(imageNamed:"rocket")
let shape1 = SKSpriteNode(imageNamed:"rocket")
let shape2 = SKSpriteNode(imageNamed:"shape")
var isTouch1 = false
var isTouch2 = false
var actionmove = SKAction.moveToY(-150, duration: 15)
override func didMoveToView(view: SKView) {
shape1.position = CGPointMake(300,CGRectGetMidY(self.frame))
shape2.position = CGPointMake(800,CGRectGetMidY(self.frame))
addChild(shape1)
shape1.xScale = 8.5
shape1.yScale = 10.0
shape2.xScale = 8.5
shape2.yScale = 8.5
var delay = SKAction.waitForDuration(NSTimeInterval(1.5))
var delchild = SKAction.removeFromParent()
var rand = arc4random_uniform(10)
missile1.yScale = 0.5
missile2.yScale = 0.5
missile3.yScale = 0.5
missile4.yScale = 0.5
missile5.yScale = 0.5
missile6.yScale = 0.5
missile7.yScale = 0.5
missile8.yScale = 0.5
missile9.yScale = 0.5
missile10.yScale = 0.5
let delayA = SKAction.waitForDuration(NSTimeInterval(2.0))
let delayB = SKAction.waitForDuration(NSTimeInterval(4.0))
let delayC = SKAction.waitForDuration(NSTimeInterval(6.0))
let delayD = SKAction.waitForDuration(NSTimeInterval(8.0))
let delayE = SKAction.waitForDuration(NSTimeInterval(10.0))
let delayF = SKAction.waitForDuration(NSTimeInterval(12.0))
let delayG = SKAction.waitForDuration(NSTimeInterval(14.0))
let delayH = SKAction.waitForDuration(NSTimeInterval(16.0))
let delayI = SKAction.waitForDuration(NSTimeInterval(18.0))
let delayJ = SKAction.waitForDuration(NSTimeInterval(20.0))
var missile1Hide = SKAction.runBlock({
self.missile1.hidden = true
})
var missile2Hide = SKAction.runBlock({
self.missile2.hidden = true
})
var missile3Hide = SKAction.runBlock({
self.missile3.hidden = true
})
var missile4Hide = SKAction.runBlock({
self.missile4.hidden = true
})
var missile5Hide = SKAction.runBlock({
self.missile5.hidden = true
})
var missile6Hide = SKAction.runBlock({
self.missile6.hidden = true
})
var missile7Hide = SKAction.runBlock({
self.missile7.hidden = true
})
var missile8Hide = SKAction.runBlock({
self.missile8.hidden = true
})
var missile9Hide = SKAction.runBlock({
self.missile9.hidden = true
})
var missile10Hide = SKAction.runBlock({
self.missile10.hidden = true
})
var missile1show = SKAction.runBlock({
self.missile1.hidden = false
})
var missile2show = SKAction.runBlock({
self.missile2.hidden = false
})
var missile3show = SKAction.runBlock({
self.missile3.hidden = false
})
var missile4show = SKAction.runBlock({
self.missile4.hidden = false
})
var missile5show = SKAction.runBlock({
self.missile5.hidden = false
})
var missile6show = SKAction.runBlock({
self.missile6.hidden = false
})
var missile7show = SKAction.runBlock({
self.missile7.hidden = false
})
var missile8show = SKAction.runBlock({
self.missile8.hidden = false
})
var missile9show = SKAction.runBlock({
self.missile9.hidden = false
})
var missile10show = SKAction.runBlock({
self.missile10.hidden = false
})
var position1 = SKAction.runBlock({
self.missile1.position = CGPointMake(600,850)
})
var position2 = SKAction.runBlock({
self.missile2.position = CGPointMake(300,850)
})
var position3 = SKAction.runBlock({
self.missile3.position = CGPointMake(100,850)
})
var position4 = SKAction.runBlock({
self.missile4.position = CGPointMake(900,850)
})
var position5 = SKAction.runBlock({
self.missile5.position = CGPointMake(300,850)
})
var position6 = SKAction.runBlock({
self.missile6.position = CGPointMake(600,850)
})
var position7 = SKAction.runBlock({
self.missile7.position = CGPointMake(200,850)
})
var position8 = SKAction.runBlock({
self.missile8.position = CGPointMake(600,850)
})
var position9 = SKAction.runBlock({
self.missile9.position = CGPointMake(900,850)
})
var position10 = SKAction.runBlock({
self.missile10.position = CGPointMake(200,850)
})
let sequence1 = SKAction.sequence([missile1Hide,delayA,position1,missile1show,actionmove])
let sequence2 = SKAction.sequence([missile2Hide,delayB,position2,missile2show,actionmove])
let sequence3 = SKAction.sequence([missile3Hide,delayC,position3,missile3show,actionmove])
let sequence4 = SKAction.sequence([missile4Hide,delayD,position4,missile4show,actionmove])
let sequence5 = SKAction.sequence([missile5Hide,delayE,position5,missile5show,actionmove])
let sequence6 = SKAction.sequence([missile6Hide,delayF,position6,missile6show,actionmove])
let sequence7 = SKAction.sequence([missile7Hide,delayG,position7,missile7show,actionmove])
let sequence8 = SKAction.sequence([missile8Hide,delayH,position8,missile8show,actionmove])
let sequence9 = SKAction.sequence([missile9Hide,delayI,position9,missile9show,actionmove])
let sequence10 = SKAction.sequence([missile10Hide,delayJ,position10,missile10show,actionmove])
let s1 = SKAction.sequence([position1,actionmove])
let s2 = SKAction.sequence([position2,actionmove])
let s3 = SKAction.sequence([position3,actionmove])
let s4 = SKAction.sequence([position4,actionmove])
let s5 = SKAction.sequence([position5,actionmove])
let s6 = SKAction.sequence([position6,actionmove])
let s7 = SKAction.sequence([position7,actionmove])
let s8 = SKAction.sequence([position8,actionmove])
let s9 = SKAction.sequence([position9,actionmove])
let s10 = SKAction.sequence([position10,actionmove])
let r1 = SKAction.repeatActionForever(s1)
let r2 = SKAction.repeatActionForever(s2)
let r3 = SKAction.repeatActionForever(s3)
let r4 = SKAction.repeatActionForever(s4)
let r5 = SKAction.repeatActionForever(s5)
let r6 = SKAction.repeatActionForever(s6)
let r7 = SKAction.repeatActionForever(s7)
let r8 = SKAction.repeatActionForever(s8)
let r9 = SKAction.repeatActionForever(s9)
let r10 = SKAction.repeatActionForever(s10)
//actionmove: making it smooth
//doing stuff with the background
background.position = CGPointMake(CGRectGetMidX(self.frame), CGRectGetMidY(self.frame))
background.yScale = 10.0
background.xScale = 10.0
addChild(background)
addChild(rocket)
rocket.yScale = 0.3
rocket.xScale = 0.6
addChild(missile1)
addChild(missile2)
addChild(missile3)
addChild(missile4)
addChild(missile5)
addChild(missile6)
addChild(missile7)
addChild(missile8)
addChild(missile9)
addChild(missile10)
self.missile1.runAction(sequence1, completion:{
self.missile1.runAction(r1)
})
self.missile2.runAction(sequence2, completion:{
self.missile1.runAction(r2)
})
self.missile3.runAction(sequence3, completion:{
self.missile1.runAction(r3)
})
self.missile4.runAction(sequence4, completion:{
self.missile1.runAction(r4)
})
self.missile5.runAction(sequence5, completion:{
self.missile1.runAction(r5)
})
self.missile6.runAction(sequence6, completion:{
self.missile1.runAction(r6)
})
self.missile7.runAction(sequence7, completion:{
self.missile1.runAction(r7)
})
self.missile8.runAction(sequence8, completion:{
self.missile1.runAction(r8)
})
self.missile9.runAction(sequence9, completion:{
self.missile1.runAction(r9)
})
self.missile10.runAction(sequence10, completion:{
self.missile1.runAction(r10)
})
rocket.position = CGPointMake(100, 200)
}
override func touchesBegan(touches: NSSet, withEvent event: UIEvent) {
for touch: AnyObject in touches {
shape1.name = "shape1"
shape2.name = "shape2"
var moveright = SKAction.moveToX(rocket.position.x + 50, duration:10)
var moveleft = SKAction.moveToX(rocket.position.x - 50 , duration:10)
var location = touch.locationInNode(self)
let node = self.nodeAtPoint(location)
println("hello")
}
}
override func touchesEnded(touches: NSSet, withEvent event: UIEvent) {
for touch: AnyObject in touches {
var moveright = SKAction.moveToX(rocket.position.x + 5, duration:10)
var moveleft = SKAction.moveToX(rocket.position.x - 5, duration:10)
var location = touch.locationInNode(self)
let node = self.nodeAtPoint(location)
}
}
}
嗨,我一直试图做这个很长一段时间,我的问题是当我点击形状1(你会理解你是否读过代码)它什么都不做什么时它应该打印“Hello”和它不是。我已经尝试过更改图像,但这并没有改变任何东西。但是当我使用if语句并离开println时,当我点击它时会打印你好。 在此先感谢!
答案 0 :(得分:0)
如果您有多个重叠节点,可以通过搜索self.nodesAtPoint
函数内的节点来检测特定节点上的触摸。
override func touchesBegan(touches: NSSet, withEvent event: UIEvent) {
for touch in touches {
let location = touch.locationInNode(self)
for node in self.nodesAtPoint(location) as [SKNode]{
if node.name == "shape1" {
println("Shape1 touched")
}
}
}
}