이 사이트는 이미 내 게임을 만드는 과정에서 많은 도움을 주었지만 지금은 좀 고생했습니다. 그래서 누군가가 나를 도울 수 있기를 바랍니다.libgdx 게임은 디버깅 중에는 작동하지만 에뮬레이터에서는 작동하지 않습니다.
저는 현재 libgdx로 안드로이드 스튜디오에서 게임을 만들려고합니다. 구덩이와 장애물이있는 아주 간단한 도약과 달리기 게임입니다. 사용자는 3 가지 생명체를 가지며 3 가지 심장 모양의 질감으로 표시됩니다. 플레이어가 장애물 중 하나와 충돌하면 하트 중 하나가 채워진 상태에서 비어있는 상태가됩니다. 문제는 : 디버깅하는 동안 완벽하게 작동하지만 안드로이드 타블렛에서 실행할 때 문제가되지 않습니다. 그것은 하나의 마음 만 비우지 만, 내 GameOverState가 나타날 때까지 모든 마음을 공란으로 바꿔 놓습니다.
좀 더 이해하기 쉽게 (잘하면) 여기에 내 코드 중 일부가 있습니다. 그 중복 코드와 매우 우아하지를 많이 알고,하지만 난에 대해 나중에 걱정할 것 :
을 내 Playstate에서 업데이트 방법 :
private void updateObstacles(float dt) {
//nerd == player
if (obstacle.collides(nerd.getBounds())) {
switch (obstacle.getType()) {
...
case ConstantsGame.WOMAN_TYPE:
alreadChanged = false;
Score.updateHeart(gameManager);
default:
...
}
}
}
그리고 내 점수 클래스 :
을public static void updateHeart(GameStateManager manager) {
state = getStateOfHearts();
if (state == 4) {
changeHeart(true, 0);
} else if (state == 3) {
manager.set(new GameOverState(manager));
} else if (state == 2) {
changeHeart(true, 2);
} else if (state == 1) {
changeHeart(true, 1);
} else {
}
}
public static int getStateOfHearts() {
if ((!PlayState.alreadChanged && hearts.get(0) == heartEmpty) && (hearts.get(1) == heartFilled) && hearts.get(2) == heartFilled) {
state = 1;
PlayState.alreadChanged = true;
return state;
} else if (!PlayState.alreadChanged && hearts.get(1) == heartEmpty && hearts.get(2) == heartFilled && hearts.get(0) == heartEmpty) {
state = 2;
PlayState.alreadChanged = true;
return state;
} else if (!PlayState.alreadChanged &&hearts.get(2) == heartEmpty && hearts.get(0) == heartEmpty && hearts.get(1) == heartEmpty) {
state = 3;
PlayState.alreadChanged = true;
return state;
} else {
PlayState.alreadChanged = true;
return state;
}
}
changeHeart 메서드는 하트를 빈 모양으로 변경하는 것 이상을 수행하지 않습니다. 난 그냥 이해가 안돼, 왜 완벽하게 디버깅하는 동안 잘 작동하지만 "실제".
는 장애물이 계산되었는지를 표시하는 부울이 당신 장애물 클래스에서 사전에 당신에게Maximiliane
장애물과 충돌 :
간단하게 당신이 충돌을 검사 할 때 다음 또한 장애물이 계산되어 있는지 확인
로 . 즉 모든 프레임 괴상한 사람이 충돌하면 그는 마음을 잃을 것입니다. 그래서 그가 4 개의 프레임에 대해 같은 장애물과 충돌한다면 그는 마음이 부족할 것입니다. – IronMonkey
예, 상당히 합리적인 것 같습니다. 그 문제를 어떻게 극복 할 생각이 있습니까? 프레임에 관계없이 한 번만 변경된다는 것을 어떻게 확인할 수 있습니까? 나는 카운터와 함께 이미 아주 똑같은 문제를 가지고 있었다. – Maxikilliane