1
私はキャラクターを衝突のあるタイルマップの周りで動かそうとしています。 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);
}