当前位置: 首页 > 面试题库 >

如何检测是否已触摸SKSpriteNode

怀飞扬
2023-03-14
问题内容

我试图检测我的sprite节点是否已被触摸并且我不知道从哪里开始。

let Pineapple = SKSpriteNode(imageNamed: "Pineappleimg")
Pineapple.userInteractionEnabled = true
Pineapple.position = CGPoint(x: CGRectGetMidX(self.frame) - 200, y: CGRectGetMidY(self.frame));
self.addChild(Pineapple)

问题答案:

首先将的name属性设置SKSpriteNode为字符串。

pineapple.name = "pineapple"
pineapple.userInteractionEnabled = false

然后在touchesBegan功能上Scene

override func touchesBegan(touches: NSSet, withEvent event: UIEvent) {
    let touch:UITouch = touches.anyObject()! as UITouch
    let positionInScene = touch.locationInNode(self)
    let touchedNode = self.nodeAtPoint(positionInScene)

    if let name = touchedNode.name
    {
        if name == "pineapple"
        {
            print("Touched")
        }
    }

}

这是一种方法
您也可以继承SKSpriteNode并覆盖其中的touchesBegan内部。

class TouchableSpriteNode : SKSpriteNode
{
    override func touchesBegan(touches: NSSet, withEvent event: UIEvent) {
        print("touched")
    }
}

然后做

let pineapple = TouchableSpriteNode(imageNamed: "Pineappleimg")
pineapple.userInteractionEnabled = true
pineapple.position = CGPoint(x: CGRectGetMidX(self.frame) - 200, y: CGRectGetMidY(self.frame));
self.addChild(pineapple)


 类似资料:
  • 问题内容: 我发现了一个类似的问题,但是我试图检测并识别用户触摸哪个Sprite,但我不知道该怎么做。这是我的变量: 这个想法是先确定spriteNode,然后将其替换为其他sprite或更改颜色,但是我不知道如何使用此spriteNodes矩阵来实现它,我想第一步是确定sprite。 问题答案: 您正在尝试执行的操作(即使我没有看到这样做的原因)也可以使用委派模式来完成。基本上,您将告诉您的代表

  • 在过去的几天里,我一直在将我的游戏(Apopalypse)移植到Android Mobile平台。我在Google上快速搜索了精灵触摸检测,但没有找到任何有用的东西。每个气球触摸一次就会弹出,我只需要检测它是否被触摸。这是我的气球生成代码: 渲染(x、y、宽度和高度随机): 在主游戏类中产卵:

  • 本文向大家介绍sprite-kit 检测触摸,包括了sprite-kit 检测触摸的使用技巧和注意事项,需要的朋友参考一下 示例 您可以覆盖4种SKScene检测用户触摸的方法 请注意,每种方法都接收一个touches参数(在特定情况下),该参数可以包含一个以上的单个触摸事件。

  • 问题内容: 我有一个使用方法实现自定义的库,该方法将在调用时触发事件。我想测试该行为的方法。 我的自定义控件: 和测试: 问题在于该方法永远不会被调用,因此无法实现。 问题是:在这种情况下,我们如何进行测试?也许我们需要以某种方式强制运行循环? 编辑1:请注意,由于我正在测试库,因此我的测试目标没有任何主机应用程序。当测试目标具有主机应用程序时,以上测试通过。 问题答案: Apple的UICont

  • 问题内容: 我正在尝试检查用户单击按钮后是否已加载iframe。 我有 的HTML 有什么建议么? 顺便说一下,我的iframe是动态创建的。它不会随初始页面加载一起加载。 问题答案: 您可以尝试使用() 更新: 使用普通格式 更新: 您也可以尝试一下(动态iframe)

  • 问题内容: 在不使用触摸屏设备的情况下,使用媒体查询最安全的方法是什么?如果无法解决,您是否建议使用JavaScript解决方案,例如Modernizr或Modernizr? 问题答案: 我建议使用modernizr并使用其媒体查询功能。 但是,使用CSS时,存在伪类,例如Firefox。您可以使用:-moz-system-metric(touch- enabled)。但是,并非所有浏览器都提供这