亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

(libgdx) 為什么我的精靈渲染得這么大?

(libgdx) 為什么我的精靈渲染得這么大?

qq_遁去的一_1 2023-10-13 16:25:49
我目前正在嘗試學習 java 的 LibGDX 游戲引擎。我使用的是平鋪地圖,每個平鋪為 32*32 像素。我還有一個尺寸為 48*64 的角色精靈。在我的游戲中,我將一個單位定義為地圖上的一個圖塊。由于某種原因,我的地圖渲染正確,但玩家精靈渲染得異常大,而不是大約 2 平方單位的預期大小。我嘗試過在線搜索類似的問題,但找不到與我的問題類似的內容。我知道這與我正在使用的縮放有關,但我不知道解決它的好方法。當然,一種方法是在使用batch.draw()函數繪制時簡單地縮小玩家精靈,但我覺得這不是必要的。@Override 公共無效創建(){    world = new World(new Vector2(0, -20), true); //Create Box2d world    debugRenderer = new Box2DDebugRenderer();    player1 = new Player();    camera = new OrthographicCamera(WORLD_WIDTH, WORLD_HEIGHT); //Create the camera I'm using, with width = height = 20    map = new TmxMapLoader().load("maps/Maptest.tmx"); //Load a map created in Tiled    this.mapObjects = map.getLayers().get(0).getObjects();    ObjectMapper.createShapes(this.mapObjects, this.world); //Load shapes from map for collision management    ObjectMapper.setSpawn(player1, mapObjects, world); //Set spawnpoint from object in the Tiled map    batch = new SpriteBatch();    renderer = new OrthogonalTiledMapRenderer(map, 1/PPT); //Create a tiled map renderer with unit scale 1/32    camera.update();}@Overridepublic void render () {    player1.update(); //Update player position    camera.position.set(player1.getX(), player1.getY(), 0); //Set position to players position    camera.update();}我希望精靈的大小與玩家碰撞盒(圓形)的大小大致相同,其半徑為一個單位。相反,它變得非常大:https://i.gyazo.com/6d814d10cd5f9bec322b601d538cb9ee.png完整的精靈看起來像這樣:https://i.gyazo.com/03178769d4a3b4beaba1612c76d37386.png提前致謝:)
查看完整描述

1 回答

?
回首憶惘然

TA貢獻1847條經驗 獲得超11個贊

我會完全避免使用 Sprite 類。在 LibGDX 中,它被創建為高度優化的東西,但它將資產(TextureRegion)與游戲模型對象(位置和大小等)混為一談,并且違反了組合繼承準則。它還在 StackOverflow 上引起了許多問題,因為人們沒有意識到它繼承自 TextureRegion,但并不意味著通過將其傳遞給 SpriteBatch 來繪制(它并不意味著被當作一個 TextureRegion)。要正確繪制它,您應該調用sprite.draw(batch),而不是batch.draw(sprite, ...)。

您已經有一個 Player 類。它應該只引用TextureRegion而不是Sprite。您可以為您的 Player 類指定大小和位置(您實際想要的大?。?。


查看完整回答
反對 回復 2023-10-13
  • 1 回答
  • 0 關注
  • 101 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號