【问题标题】:How can i rotate an arrow image by touch on that image?如何通过触摸该图像来旋转箭头图像?
【发布时间】:2009-03-23 09:29:14
【问题描述】:

我正在做一个项目,我需要通过触摸来旋转图像。

根据用户的触摸方式,它可以更快或更慢地旋转。

你能告诉我一些教程或如何做到这一点吗?

【问题讨论】:

    标签: iphone cocos2d-iphone


    【解决方案1】:

    将您的图像放在 UIImageView 中,然后将该视图子类化并替换 touchesBegan:withEvent: 或为其设置委托并实现与委托方法相同的方法。这将使您能够响应触摸事件(在这种情况下是触摸的开始,尽管您可以为结束触摸或移动手指做同样的事情)。

    在这种触摸处理方法中,您可以实现类似于我所描述的here 的内容,以便以给定的速度对 UIImageView 执行启用 Core-Animation 的旋转。要更改速度,请更改我提供的动画的持续时间属性。正如我在那里建议的那样,您可能希望研究 CAKeyframeAnimation 以在开始和结束时使用加速和减速来制作更平滑的动画。

    【讨论】:

      【解决方案2】:

      更简单的方法是设置一个 NStimer 并在每次触发时旋转变换。

      我这里有一些示例代码巧合地做了类似的事情:

      http://github.com/kailoa/touchsamplecode/tree/master

      【讨论】:

        【解决方案3】:

        使用 Cocos2d,你不能有 'touch enabled' sprites,'isTouchEnabled' 是在 Layer 级别。您必须在层级接收触摸,然后检查触摸位置与可触摸精灵的位置。 CGRect* 函数包括一个“矩形包含点”,您可以将触摸位置传递给它,使用精灵的矩形来查看它是否被“触摸”,然后您可以说 [sprite runAction:[Rotate .... ]]

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2023-04-03
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多