0
我寫了一些代碼行,我可以選擇精靈,我可以拖動它,但只要我拖動它,它會離開鼠標光標一些像素,然後我可以控制它,但它是從我的鼠標cursos一些像素遠..好像跟我CGPoint
轉換做錯了事,或者我不知道,這是我的代碼用鼠標和Cocos2d拖動精靈
- (void)selectSpriteForTouch:(CGPoint)touchLocation {
CCSprite * newSprite = nil;
for (CCSprite *sprite in movableSprites) {
if (CGRectContainsPoint(sprite.boundingBox, touchLocation)) {
newSprite = sprite;
NSLog(@"palieciau");
break;
}
}
if (newSprite != selSprite) {
[selSprite stopAllActions];
[selSprite runAction:[CCRotateTo actionWithDuration:0.1 angle:0]];
CCRotateTo * rotLeft = [CCRotateBy actionWithDuration:0.1 angle:-4.0];
CCRotateTo * rotCenter = [CCRotateBy actionWithDuration:0.1 angle:0.0];
CCRotateTo * rotRight = [CCRotateBy actionWithDuration:0.1 angle:4.0];
CCSequence * rotSeq = [CCSequence actions:rotLeft, rotCenter, rotRight, rotCenter, nil];
[newSprite runAction:[CCRepeatForever actionWithAction:rotSeq]];
selSprite = newSprite;
}
}
- (BOOL)ccMouseDown:(NSEvent*)event {
CCSprite * newSprite = nil;
CGPoint clickLocation = [[CCDirector sharedDirector] convertEventToGL:event];
for (CCSprite *sprite in movableSprites) {
if (CGRectContainsPoint(sprite.boundingBox, clickLocation)) {
newSprite = sprite;
break;
}
}
if (newSprite != selSprite) {
[selSprite stopAllActions];
[selSprite runAction:[CCRotateTo actionWithDuration:0.1 angle:0]];
CCRotateTo * rotLeft = [CCRotateBy actionWithDuration:0.1 angle:-4.0];
CCRotateTo * rotCenter = [CCRotateBy actionWithDuration:0.1 angle:0.0];
CCRotateTo * rotRight = [CCRotateBy actionWithDuration:0.1 angle:4.0];
CCSequence * rotSeq = [CCSequence actions:rotLeft, rotCenter, rotRight, rotCenter, nil];
[newSprite runAction:[CCRepeatForever actionWithAction:rotSeq]];
selSprite = newSprite;
}
}
- (void)panForTranslation:(CGPoint)translation {
if (selSprite) {
CGPoint newPos = ccpAdd(selSprite.position, translation);
selSprite.position = newPos;
} else {
}
}
-(BOOL)ccMouseDragged:(NSEvent *)event {
CGPoint point = [[CCDirector sharedDirector] convertEventToGL:event];
CGPoint mouseLocation = [self convertToNodeSpace:point];
CGPoint translation = ccpSub(point, oldMouseLocation_);
[self panForTranslation:translation];
oldMouseLocation_ = point;
}
當'ccMouseDown:'第一次調用'ccMouseDragged:'時,'oldMouseLocation_'的值是什麼? – Kreiri