所以我正在使用cocos2d并尝试在屏幕上拖动一个精灵,它在此之前工作..但我似乎无法弄清楚我做了什么让它无法正常工作。我看到ccTouchBegan和ccTouchEnd方法被调用但不是ccTouchMoved。
我尝试转换为ccTouchesBegan,ccTouchesMoved和ccTouchesEnded,但我仍然只看到调用了Began和Ended方法。显然我已经注释掉或改变了某个地方的设置。我还评论了[[CCTouchDispatch sharedDisptacher] ...];因为它与ccTouches方法有误,因为它是我认为的本机接触。
任何人都知道发生了什么事?
答案 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);
}
}