第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

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

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

qq_遁去的一_1 2023-10-13 16:25:49
我目前正在嘗試學(xué)習(xí) java 的 LibGDX 游戲引擎。我使用的是平鋪地圖,每個(gè)平鋪為 32*32 像素。我還有一個(gè)尺寸為 48*64 的角色精靈。在我的游戲中,我將一個(gè)單位定義為地圖上的一個(gè)圖塊。由于某種原因,我的地圖渲染正確,但玩家精靈渲染得異常大,而不是大約 2 平方單位的預(yù)期大小。我嘗試過(guò)在線搜索類似的問(wèn)題,但找不到與我的問(wèn)題類似的內(nèi)容。我知道這與我正在使用的縮放有關(guān),但我不知道解決它的好方法。當(dāng)然,一種方法是在使用batch.draw()函數(shù)繪制時(shí)簡(jiǎn)單地縮小玩家精靈,但我覺(jué)得這不是必要的。@Override 公共無(wú)效創(chuàng)建(){    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();}我希望精靈的大小與玩家碰撞盒(圓形)的大小大致相同,其半徑為一個(gè)單位。相反,它變得非常大:https://i.gyazo.com/6d814d10cd5f9bec322b601d538cb9ee.png完整的精靈看起來(lái)像這樣:https://i.gyazo.com/03178769d4a3b4beaba1612c76d37386.png提前致謝:)
查看完整描述

1 回答

?
回首憶惘然

TA貢獻(xiàn)1847條經(jīng)驗(yàn) 獲得超11個(gè)贊

我會(huì)完全避免使用 Sprite 類。在 LibGDX 中,它被創(chuàng)建為高度優(yōu)化的東西,但它將資產(chǎn)(TextureRegion)與游戲模型對(duì)象(位置和大小等)混為一談,并且違反了組合繼承準(zhǔn)則。它還在 StackOverflow 上引起了許多問(wèn)題,因?yàn)槿藗儧](méi)有意識(shí)到它繼承自 TextureRegion,但并不意味著通過(guò)將其傳遞給 SpriteBatch 來(lái)繪制(它并不意味著被當(dāng)作一個(gè) TextureRegion)。要正確繪制它,您應(yīng)該調(diào)用sprite.draw(batch),而不是batch.draw(sprite, ...)。

您已經(jīng)有一個(gè) Player 類。它應(yīng)該只引用TextureRegion而不是Sprite。您可以為您的 Player 類指定大小和位置(您實(shí)際想要的大?。?/p>


查看完整回答
反對(duì) 回復(fù) 2023-10-13
  • 1 回答
  • 0 關(guān)注
  • 100 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)