我的点击不起作用

卢卡斯·法利(Lucas Farleigh)

建议您先阅读我的代码:

//
//  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(您会理解是否阅读了代码)时,它应该执行println“ Hello”时没有任何作用,并且没有。我已经尝试过更改图像,但这并没有任何改变。但是当我使用if的if语句并离开了println时,当我单击它时,它会打印出你好。提前致谢!

rakeshbs

如果您有多个重叠的节点,则可以通过在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")
            }
        }

    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章