Привет, наконец-то я сделал работающий джойстик в cocos2d. Я могу повернуть спрайт точно под таким углом, на который «указывает» большой палец или колпачок джойстика. Однако я не могу переместить спрайт в том же направлении. Есть ли простой способ переместить спрайт так, как у меня настроен вращающийся код? Также есть ли способ заставить его двигаться, если ваш большой палец все еще нажат, но не двигает джойстик? PS весь этот код находится в методе TouchesMoved. ППС. колпачок — это большой палец, подушечка — это фон джойстика, а Sprite2 — это спрайт, который я хочу переместить. (95, 95) — это центр спрайта пэда.
if(capSprite.position.x>=padSprite.position.x){
id a3 = [CCFlipX actionWithFlipX:NO];
[sprite2 runAction:a3];
}
if(capSprite.position.x<=padSprite.position.x){
id a4 = [CCFlipX actionWithFlipX:YES];
[sprite2 runAction:a4];
}
CGPoint pos1 = ccp(95, 95);
CGPoint pos2 = ccp(capSprite.position.x, capSprite.position.y);
int offX = pos2.x-pos1.x;
int offY = pos2.y-pos1.y;
float angleRadians = atanf((float)offY/(float)offX);
float angleDegrees = CC_RADIANS_TO_DEGREES(angleRadians);
float theAngle = -1 * angleDegrees;
sprite2.rotation = theAngle;