Con*_*sed 5 touch touchesbegan ios sprite-kit swift
在SpriteKit的SKSpriteNodes和其他可见节点中,响应这些节点中的触摸通常以某种方式完成,如下所示:
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
if let touch = touches.first {...
// do something with the touch location that's now in touch
// etc
Run Code Online (Sandbox Code Playgroud)
这一切都很棒,但如果我想确保获得其中任何和所有触摸的触摸信息(让我们想象一下......)SKSpriteNode怎么办?
= touches.first将条件限制为仅响应此SKSpriteNode内的第一次触摸.如何在这个SKSpriteNode中完成所有触摸,这样每个触摸都可以使用它的位置,或者其他任何东西都可以携带和携带.
我知道.愚蠢的问题.我就是那个人.我根本看不出这是怎么做到的.
com*_*eck 10
通常,除非将multipleTouchEnabled属性设置为,否则视图不会响应多次触摸true.
mySprite.multipleTouchEnabled = true
Run Code Online (Sandbox Code Playgroud)
您会注意到该方法touchesBegan:event:不返回单个UITouch对象,而是返回UITouch对象的Set(也称为无序集合).
在这个方法中,你可以(例如)迭代集合,以便在每次触摸时检查条件,而不是仅仅从集合中获得第一次触摸.
for touch in touches {
// do something with the touch object
print(touch.location(mySKNodeObject))
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1939 次 |
| 最近记录: |