iOS拖动CCSprite不起作用?

时间:2012-06-22 20:13:30

标签: ios xcode cocos2d-iphone

所以我正在使用cocos2d并尝试在屏幕上拖动一个精灵,它在此之前工作..但我似乎无法弄清楚我做了什么让它无法正常工作。我看到ccTouchBegan和ccTouchEnd方法被调用但不是ccTouchMoved。

我尝试转换为ccTouchesBegan,ccTouchesMoved和ccTouchesEnded,但我仍然只看到调用了Began和Ended方法。显然我已经注释掉或改变了某个地方的设置。我还评论了[[CCTouchDispatch sharedDisptacher] ...];因为它与ccTouches方法有误,因为它是我认为的本机接触。

任何人都知道发生了什么事?

2 个答案:

答案 0 :(得分:0)

您是否将自己添加为代表?

[[CCTouchDispatcher sharedDispatcher]addTargetedDelegate:self priority:0 swallowsTouches:NO];

然后试试这个:

- (void)ccTouchMoved:(UITouch *)touch withEvent:(UIEvent *)event
{

    CGPoint location = [touch locationInView: [touch view]];
    mySprite.position = location;
}

答案 1 :(得分:0)

您可以使用ccTouchMoved轻松移动精灵。

请尝试以下代码。我做了一个简短的演示,让我理解你的同一个概念。这个对我有用。

- (void)ccTouchMoved:(UITouch *)touch withEvent:(UIEvent *)event
{
    NSSet *touches = [event allTouches];
    for (int i = 0; i < touches.count; i++) {

        UITouch *touch = [[touches allObjects] objectAtIndex:i];
        CGPoint touchLocation = [touch locationInView: [touch view]];
        CGPoint location = [[CCDirector sharedDirector]
                            convertToGL:touchLocation];
        if(CGRectContainsPoint([sprite boundingBox], location))
             sprite.position = ccp(location.x,location.y);
    }
}