【发布时间】:2009-03-23 09:29:14
【问题描述】:
我正在做一个项目,我需要通过触摸来旋转图像。
根据用户的触摸方式,它可以更快或更慢地旋转。
你能告诉我一些教程或如何做到这一点吗?
【问题讨论】:
标签: iphone cocos2d-iphone
我正在做一个项目,我需要通过触摸来旋转图像。
根据用户的触摸方式,它可以更快或更慢地旋转。
你能告诉我一些教程或如何做到这一点吗?
【问题讨论】:
标签: iphone cocos2d-iphone
将您的图像放在 UIImageView 中,然后将该视图子类化并替换 touchesBegan:withEvent: 或为其设置委托并实现与委托方法相同的方法。这将使您能够响应触摸事件(在这种情况下是触摸的开始,尽管您可以为结束触摸或移动手指做同样的事情)。
在这种触摸处理方法中,您可以实现类似于我所描述的here 的内容,以便以给定的速度对 UIImageView 执行启用 Core-Animation 的旋转。要更改速度,请更改我提供的动画的持续时间属性。正如我在那里建议的那样,您可能希望研究 CAKeyframeAnimation 以在开始和结束时使用加速和减速来制作更平滑的动画。
【讨论】:
更简单的方法是设置一个 NStimer 并在每次触发时旋转变换。
我这里有一些示例代码巧合地做了类似的事情:
【讨论】:
使用 Cocos2d,你不能有 'touch enabled' sprites,'isTouchEnabled' 是在 Layer 级别。您必须在层级接收触摸,然后检查触摸位置与可触摸精灵的位置。 CGRect* 函数包括一个“矩形包含点”,您可以将触摸位置传递给它,使用精灵的矩形来查看它是否被“触摸”,然后您可以说 [sprite runAction:[Rotate .... ]]
【讨论】: