Cocos2d-iPhone拖动任何地方移动精灵

时间:2011-07-10 23:21:13

标签: iphone cocos2d-iphone drag uigesturerecognizer

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

在任何地方开始触摸然后拖动,精灵用手指1:1移动。 精灵无法移动屏幕。

我一直在使用UIGestureRecognizer来处理在屏幕上拖动精灵的问题,但我仍然很新,我还没有能够让它工作。

2 个答案:

答案 0 :(得分:1)

我不知道你是否不愿意尝试这一点,但在我看来,使用ccTouchesBegan和ccTouchesMoved可以很容易地做到这一点。我通过在ccTouchesBegan和ccTouchesMoved方法中添加以下内容来实现它(其中sprite是您要移动的精灵的名称):

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

答案 1 :(得分:0)

您使用的是Cocos2D还是Apple Frame-work?

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

cocos2d发行版中有示例触摸代码。不是针对您的具体情况,而是一般代码,包含文字和说明。