簡體   English   中英

Slick2D:getTileProperty不應返回true

[英]Slick2D: getTileProperty returns true when it shouldn't

我正在嘗試對我一直在做的測試游戲實施一些碰撞檢測。 我使用TiledMap創建地圖,並將其中一個圖塊的屬性設置為blocked = true,然后在第0層上繪制了該圖塊。

然后,我使用以下代碼檢查圖塊是否存在於玩家移動的方向上

if (input.isKeyDown(Input.KEY_DOWN)) {
    sprite = down;
    sprite.update(delta);
    int tileID = map.map.getTileId((int) x / map.map.getTileWidth(), (int) y / map.map.getTileHeight() + 1, 0);
    String value = map.map.getTileProperty(tileID, "blocked", "false");
    if (value.equals("true")) {
        y += delta * 0.1f;
        System.out.println("Tile ID: " + (int) (x / map.map.getTileWidth()) + ", " + (int) (y / map.map.getTileHeight() + 1) + " Try to walk down. Tile value below the player is:" + value);
    }

}

對於每個方向都重復此步驟。

我遇到的問題是它正在拾取被遮擋的屬性以獲取不正確的圖塊。通過此視頻可以更好地理解。 黃色圖塊是碰撞/阻塞圖塊。

我認為您遇到了這個問題,因為您在if語句之外更新了圖形

嘗試將以下內容移至if

sprite = down; 
sprite.update(delta);

但是我想其中之一放下了精靈的面,因此不應該放在里面。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM