Mik*_*ike 2 animation ios xamarin sprite-kit
我正在制作一个简单的游戏,用户向上滑动一个物体(SKSpriteNode)以拱形运动上下发送它(使用我假设的SKAction).这是我希望完成的视觉效果(请原谅我的基本Pixelmator技能):
我已经创建了一个SKAction,它向上发送对象并根据速度等计算滑动的最终点.但是,我无法弄清楚如何在达到最终点时发生拱形运动,也不会回落到底部.屏幕.我希望我可以为对象添加重力,Sprite Kit将处理对象的移动,但从我最初的发现来看似乎并非如此.
我在这里发布了我当前的代码:
https://github.com/mikeberlin/Swipe-Arch-PoC
该应用程序基于本教程:
http://www.raywenderlich.com/44270/sprite-kit-tutorial-how-to-drag-and-drop-sprites
代码用Xamarin/C#编写,但几乎与Objective-C等价.如果您需要/希望我将其转换为Objective-C,我当然可以.
谢谢大家的帮助,如果我能提供更多信息,请告诉我.
听起来就像现在一样,你可能会陷入僵局,你可以在游戏中使用物理引擎.如果您使用物理引擎,游戏中的移动看起来会更加自然.使用它的缺点是需要更多的工作来实现,Sprite Kit物理引擎有时可能是粗略的.以下是两个选项的大致轮廓:
如果你想坚持使用SKAction而不使用物理引擎,你可以创建一个UIBezierPath
并使用[SKAction followPath:[curveName CGPath]
移动你的精灵.Bezier曲线看起来令人生畏,但是一旦你掌握了它,它们就会非常简单易用.如果你要走这条路,我建议先看一下维基百科文章中的图片.
但是,如果你选择使用它,你将无法为对象添加重力(尽管如果你操纵动作的timingMode
属性,你可能会笨拙地模拟它.)为此,你必须使用物理引擎(为了避免重新发明轮子.)如果您之前没有使用过Sprite Kit的物理引擎,Apple的Sprite Kit编程指南就有一个简单的例子.
要使用物理引擎完成您想要的任务,您需要知道一点触发并至少完成以下步骤:
UISwipeGestureRecognizer
可以抓住滑动.touchesBegan
,, touchesMoved
和touchesEnded
函数来计算必须应用的推力方向touchesMoved
和之间使用计时器touchesEnded
来计算滑动的速度.applyForce
并可能applyTorque
移动你的物理身体.祝你开发游戏好运!
归档时间: |
|
查看次数: |
4542 次 |
最近记录: |