Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/115.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 在SpriteKit/Swift中拖动以发射箭头?_Ios_Swift_Sprite Kit_Skspritenode - Fatal编程技术网

Ios 在SpriteKit/Swift中拖动以发射箭头?

Ios 在SpriteKit/Swift中拖动以发射箭头?,ios,swift,sprite-kit,skspritenode,Ios,Swift,Sprite Kit,Skspritenode,我正在使用SpriteKit创建一个iOS应用程序,其中两名弓箭手被随机放置在游戏场景中的x位置。加载场景后,摄影机将焦点对准场景左侧的弓箭手位置。从这里开始,我希望用户能够按下屏幕上的“向后拉”,然后松开手指,以相对于用户移动手指的角度和角度发射箭头(想想《愤怒的小鸟》中的射击动作,玩家将手指向后拉,然后松开,朝相反的方向射击)。我很好奇如何推导角度(与向后拉的方向相反)以及用户在我的应用程序中所做的触摸所产生的能量水平。我不需要完整的解释,但可能需要一些提示或资源,这些提示或资源可能会在Sp

我正在使用SpriteKit创建一个iOS应用程序,其中两名弓箭手被随机放置在游戏场景中的x位置。加载场景后,摄影机将焦点对准场景左侧的弓箭手位置。从这里开始,我希望用户能够按下屏幕上的“向后拉”,然后松开手指,以相对于用户移动手指的角度和角度发射箭头(想想《愤怒的小鸟》中的射击动作,玩家将手指向后拉,然后松开,朝相反的方向射击)。我很好奇如何推导角度(与向后拉的方向相反)以及用户在我的应用程序中所做的触摸所产生的能量水平。我不需要完整的解释,但可能需要一些提示或资源,这些提示或资源可能会在SpriteKit的类似功能中发挥作用,或者可能会向我指出一种处理此类用户交互的方法。我对SpriteKit的体验主要局限于简单的触摸,而不是简单的触摸任何与拖动创建所述发射数据一样先进的操作。任何提示/帮助都将不胜感激。谢谢


-David

使用
触摸开始
触摸结束
方法来确定玩家将手指拖过的“线”。使用这些起点和终点以及一些基本的三角测量来确定线的角度和长度


这些构成了您的射击角度和强度。然后,您可以添加一些简单的图形效果(例如,如果您在
触摸移动
中不断重新计算当前线条,您可以将弓的精灵旋转到当前角度等).

他还需要使用touchesMoved来跟踪玩家向后拉了多远,或者拉了多远。我不这么认为-
touchesend
也传递了触摸的位置,所以你只需要从
touchesMoved
开始的线的起点和touchesend`结束的线。反之亦然,因为向量是从touchesEnded位置到touchesEnded位置。向量的长度是张力。touchesMoved将用于动态绘制向量的图形表示。非常感谢各位的反馈。我想我应该使用touchesbeated/touchesend/touchesMoved,但不完全确定这是否是最好的方法。我会尝试想办法让你们知道。