나는 점프 시스템을 만드는 데 큰 어려움을 겪어왔다. 사용자는 작은 점프를 위해 점프 버튼을 탭하고 높은 점프를 위해 점프 버튼을 누를 수있다. 크게 나 다음 코드 개발을 도왔가변 점프 높이
https://gamedev.stackexchange.com/questions/13277/variable-height-jumping-in-side-scrollers
:
이PlayerMovementTimer = [NSTimer scheduledTimerWithTimeInterval:0.005 target:self selector:@selector(movePlayer) userInfo:nil repeats:YES];
[JumpButton addTarget:self action:@selector(jumpPlayer:) forControlEvents:UIControlEventTouchDown];
[JumpButton addTarget:self action:@selector(stopJump:) forControlEvents:UIControlEventTouchCancel | UIControlEventTouchUpInside | UIControlEventTouchDragExit];
- (void)movePlayer
{
CGFloat playerY = Player.center.y + PlayerYV;
if(playerY > 264) {
PlayerYV = 0;
playerY = 264;
}
if(playerY < 264) {
PlayerYV += 0.048f - PlayerYD;
}
if(HoldingJump && PlayerYV < 0 && PlayerYD + 0.0018f < 0.048f) {
PlayerYD += 0.0018f;
}
Player.center = CGPointMake(Player.center.x + PlayerXV, playerY);
}
- (IBAction)jumpPlayer:(id)sender
{
if(Player.center.y == 264) {
PlayerYD = 0;
PlayerYV = -2.25;
HoldingJump = true;
}
}
- (IBAction)stopJump:(id)sender
{
HoldingJump = false;
}
코드가 작동하는 것 같다가 (일부 값이 미세 조금 필요
나는이 주제에 발견 튜닝하지만 나는 아직 그것에 대해 얻지 못했다). 유일한 문제는 움직임이 약간 엉망이되는 것입니다 (실제 장치에서도). 그리고 플레이어가 점프의 최상위에있을 때 실제로는 천천히 가속을하고 값을 넣지 않으면 점프를 볼 수있는 것처럼 보입니다. 마리오 게임처럼 부드럽게.코드를 살펴보고 확실하지 않은 것이 있는지 또는 NSTimer가 void 함수를 호출하는 것보다 효율적인 이동 제어 방법이 있는지 확인하십시오. 또한 UIImageView의 위치를 부동 소수점 값으로 설정하는 중입니까?
감사합니다.
감사합니다!이 정보를 사용하여 UIImageView에 흐린 효과를 성공적으로 막을 수 있었고 타이머에 올바른 값을 사용하여 부드러운 움직임을 만들 수있었습니다! 또한, 물리 엔진 포인터를 사용하여 주셔서 감사하지만 그것은 필요하지 않습니다; 나는 내 문제를 고쳤고 지금은 내 게임을위한 완벽한 점프 시스템을 가지고있다 :) – CHRIS