【发布时间】:2011-07-10 23:21:12
【问题描述】:
好的,我想做的是复制 Space Invaders Evolution 的控件。
在任意位置开始触摸,然后四处拖动,精灵会用手指 1:1 移动。 精灵不能移出屏幕。
我一直在使用 UIGestureRecognizer 来处理在屏幕上拖动精灵,但我对此还是很陌生,我还不能让它工作。
【问题讨论】:
标签: iphone cocos2d-iphone drag uigesturerecognizer
好的,我想做的是复制 Space Invaders Evolution 的控件。
在任意位置开始触摸,然后四处拖动,精灵会用手指 1:1 移动。 精灵不能移出屏幕。
我一直在使用 UIGestureRecognizer 来处理在屏幕上拖动精灵,但我对此还是很陌生,我还不能让它工作。
【问题讨论】:
标签: iphone cocos2d-iphone drag uigesturerecognizer
我不知道您是否不愿意尝试这个,但在我看来,使用 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);
【讨论】:
您使用的是 Cocos2D 还是 Apple 框架?
在 cocos2d 中,您可以使用图层(例如您的场景)来检测触摸,然后移动精灵。应用移动时,检查精灵是否仍在屏幕边界内,如果不是,则将其移回屏幕边界内。
cocos2d 发行版中有示例触摸代码。不是针对您的具体情况,而是通用代码,带有文本和解释。
【讨论】: