private TextureRegion mJumpTextureRegion;
public HUD mHUD;
private boolean isLanded = false;
public static float mImpulseY = 7f;
private String fix1_name = "", fix2_name = "";
boolean jumping = false; // 점프하게 되면 true
Sprite jump = new Sprite(CAMERA_WIDTH - 120, CAMERA_HEIGHT - 175,
mJumpTextureRegion, this.getVertexBufferObjectManager()) {
@Override
public boolean onAreaTouched(TouchEvent pEvent, float pX, float pY) {
// 점프 버튼이 클릭되고, 플레이어 캐릭이 땅에 도착했을 때 점프한다.
if (pEvent.isActionDown() && isLanded) {
jumpPlayer(player_body);
isLanded = false;
}
if (pEvent.isActionUp()) {
isLanded = false;
}
return false;
}
};
jump.setScale(0.70f);
mHUD.registerTouchArea(jump);
mHUD.attachChild(jump);
public void jumpPlayer(Body _playerBody) {
_playerBody.applyLinearImpulse(0, -mImpulseY, 0,
_playerBody.getPosition().y);
}
Debug.d("fix1_name : " + fix1_name);
Debug.d("fix2_name : " + fix2_name);
if ((fix1_name.contains("player") && fix2_name.contains("wall"))
|| (fix2_name.contains("player") && fix1_name
.contains("wall"))) {
isLanded = true;
Debug.d("player hits wall");
}
점프하는곳의 소스만 따왔는데 제대로 따왔는지 모르겠네요..
제가 생각하기로는
//점프 버튼이 클릭되고, 플레이어 캐릭이 땅에 도착했을 때 점프한다.
if (pEvent.isActionDown() && isLanded) {
jumpPlayer(player_body);
isLanded = false;
}
if (pEvent.isActionUp()) {
isLanded = false;
}
return false;
}
};
여기부분을 바꾸어 주면 어떻게 되지 않을까 싶은데 잘 안되네요..
도와주세요!!////