用点击在彼此之上创建多个节点

Posted

技术标签:

【中文标题】用点击在彼此之上创建多个节点【英文标题】:creating multiple nodes on top of each other with tap 【发布时间】:2017-02-01 01:30:30 【问题描述】:

我想要做的是当用户点击屏幕时,我希望它在同一位置创建多个精灵,中间有延迟,下一个节点添加到前一个节点之上。

创建节点时,它的大小会增加然后淡出,每个节点也是不同的颜色,所以我应该能够在最后一个节点上看到每个节点。

我已经尝试了多次不同的迭代来尝试让它发挥作用。以下是最新的。

func createShape(location: CGPoint)
    var positionz:CGFloat = 1

    for i in 1...6
    let square = SKSpriteNode(color: randomColor(), size: CGSize(width: 40, height: 40))
    square.position = location
    square.zPosition = positionz
    addChild(square)

  let  shapeIncrease = SKAction.resize(toWidth: square.size.width + 50, height: square.size.height + 50, duration: 0.7)
  let fadeOut = SKAction.fadeOut(withDuration:0.5)
    //let remove = SKAction(square.removeFromParent())
    let shapeSequence = SKAction.sequence([shapeIncrease, fadeOut, SKAction.removeFromParent()])
square.run(shapeSequence)
        positionz += 1
        print("\(square.color)")
    


我遇到的问题是我只能看到一个节点。节点计数器增加,我已经确认每个节点都有不同的颜色,但我不知道如何让它们正确显示。

【问题讨论】:

【参考方案1】:

设法解决了这个问题。对于任何试图做类似事情的人,我最终将节点创建放在运行块中,作为下面开始的触摸的一部分。

我确信有一种更好、更清洁的方法可以做到这一点,但这对我有用,所以我会坚持下去。

   override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) 

    for touch in touches 
        let location = touch.location(in: self)
          let wait = SKAction.wait(forDuration: 0.15)
        let s1 = SKAction.run 
            self.createShape(location: location, zposition: 1)
        
        let s2 = SKAction.run 
            self.createShape(location: location, zposition: 2)
        
        let s3 = SKAction.run 
            self.createShape(location: location, zposition: 3)
        
        let s4 = SKAction.run 
            self.createShape(location: location, zposition: 4)
        
        let s5 = SKAction.run 
            self.createShape(location: location, zposition: 5)
        
        let s6 = SKAction.run 
            self.createShape(location: location, zposition: 6)
        

          let sequence1 = SKAction.sequence([s1, wait, s2, wait, s3, wait, s4, wait, s5, wait, s6])
       run(sequence1)

【讨论】:

以上是关于用点击在彼此之上创建多个节点的主要内容,如果未能解决你的问题,请参考以下文章

停止 seaborn 在彼此之上绘制多个图形

MatLab,我如何在彼此之上绘制多个波?

iOS Stackview Tap Buttons在彼此之上

请问如何用TreeView控件导航无法让选中的节点高亮

Gephi 0.9 有分割功能吗,我没找到

怎么使用jmeter测试多个http请求