1
나는 충돌로 타일 맵을 움직이게하려고합니다. 한 가지는 제외하고 모든 것이 잘 작동합니다. 문제가있는 사진을 보여 드리겠습니다.타일 기반지도 및 충돌; 붙어 다니기
즉, 위의 타일에 도달하면 아무데도 이동할 수 없습니다. 왼쪽에서 오는 경우 위아래로 움직일 수 없습니다. 바닥에 도달하면 왼쪽으로 움직일 수 있지만 오른쪽으로는 움직일 수 없습니다. 그리고 당신이 오른쪽에 도달하면 어떤 방향 으로든 이동할 수 있습니다.
솔직히 나는 무엇이 실패할지 모릅니다.
boolean collision = false;
if(Keyboard.isKeyDown(Keyboard.KEY_UP)) {
for(int i = 0; i < map.GetNumLayers(); i++) {
if(UpTile(map, i) > 128) {
collision = true;
}
}
if(!collision) AddPos(0.0f, -vel);
}
if(Keyboard.isKeyDown(Keyboard.KEY_LEFT)) {
for(int i = 0; i < map.GetNumLayers(); i++) {
if(LeftTile(map, i) > 128) {
collision = true;
}
}
if(!collision) AddPos(-vel, 0.0f);
}
if(Keyboard.isKeyDown(Keyboard.KEY_DOWN)) {
for(int i = 0; i < map.GetNumLayers(); i++) {
if(DownTile(map, i) > 128) {
collision = true;
}
}
if(!collision) AddPos(0.0f, vel);
}
if(Keyboard.isKeyDown(Keyboard.KEY_RIGHT)) {
for(int i = 0; i < map.GetNumLayers(); i++) {
if(RightTile(map, i) > 128) {
collision = true;
}
}
if(!collision) AddPos(vel, 0.0f);
}