【问题标题】:Cocos2d-iPhone Drag anywhere to move spriteCocos2d-iPhone 任意拖动移动精灵
【发布时间】:2011-07-10 23:21:12
【问题描述】:

好的,我想做的是复制 Space Invaders Evolution 的控件。

在任意位置开始触摸,然后四处拖动,精灵会用手指 1:1 移动。 精灵不能移出屏幕。

我一直在使用 UIGestureRecognizer 来处理在屏幕上拖动精灵,但我对此还是很陌生,我还不能让它工作。

【问题讨论】:

    标签: iphone cocos2d-iphone drag uigesturerecognizer


    【解决方案1】:

    我不知道您是否不愿意尝试这个,但在我看来,使用 ccTouchesBegan 和 ccTouchesMoved 可以轻松完成这类事情。我会通过在我的 ccTouchesBegan 和 ccTouchesMoved 方法中添加以下内容来实现它(其中 sprite 是您要移动的 sprite 的名称):

    UITouch *touch = [touches anyObject];
    CGPoint location = [touch locationInView:[touch view]];    
    location = [[CCDirector sharedDirector] convertToGL:location];
    sprite.position = ccp(location.x, location.y);
    

    【讨论】:

      【解决方案2】:

      您使用的是 Cocos2D 还是 Apple 框架?

      在 cocos2d 中,您可以使用图层(例如您的场景)来检测触摸,然后移动精灵。应用移动时,检查精灵是否仍在屏幕边界内,如果不是,则将其移回屏幕边界内。

      cocos2d 发行版中有示例触摸代码。不是针对您的具体情况,而是通用代码,带有文本和解释。

      【讨论】:

      • 我正在使用 cocos2d,但正在使用基于 UIGestureRecognizer 构建的自定义 CCGesturRecognizer。我应该看的示例的名称是什么?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多