我正在玩游戏,玩家只能向左和向右移动,但在地图上的某些位置,他们可以向上或向下推动以转到这些方向的新场景(例如通过后面的门)壁)。
如何设置我的SneakyJoystick以在用户按下时触发某些代码?目前正在执行以下操作以向左/向右移动我的播放器,我希望这可以继续,但是(现在),当玩家完全向上或向下推动摇杆时执行CCLOG。有什么想法吗?
- (void) applyJoystick:(SneakyJoystick *)aJoystick forTimeDelta:(float)deltaTime {
CGPoint scaledVelocity = ccpMult(aJoystick.velocity, 325.0f);
CGPoint oldPosition = [self position];
CGPoint newPosition = ccp(oldPosition.x + scaledVelocity.x * deltaTime, oldPosition.y);
[self setPosition:newPosition];
if (oldPosition.x > newPosition.x) {
self.flipX = YES;
} else if (oldPosition.x == newPosition.x) {
// Intentionally do nothing to preserve orientation at start of scene!
} else {
self.flipX = NO;
}
}
答案 0 :(得分:0)
int extra = 20;
if ((int) aJoystick.degrees > 270 - extra && aJoystick.degrees < 270 + extra) {
// Joystick button seems to be pointing down
}
我认为这很有效。我不记得了。我认为270度是完全失望的。我正在检查方向度是否在一定范围内(270 - 20和270 + 20)。