gpt4 book ai didi

java - 我在使用 LibGDX TileMaps 时遇到了困难

转载 作者:数据小太阳 更新时间:2023-10-29 02:31:17 25 4
gpt4 key购买 nike

我正在尝试重制第一个 super 马里奥关卡。除了平铺,我几乎在所有方面都取得了成功。如果有人可以快速查看我的代码并解释我做错了什么,那就太好了!我这几天一直在排除故障。谢谢!另外,在我的声望更高之前,我不允许发布图片,所以这里是它们的链接。

http://dl.dropbox.com/u/88813088/upload.html

首先,这是我的图片集。它被命名为“world.png”:

(链接网站上的第一张图片)

其次,这是我要制作的东西:

(网站上的第二张图片)

保存 tmx 文件并使用 TexturePacker 后,我得到了这个结果:

(网站最后一张图片)

似乎瓷砖图集没有被分割成 32x32 位。相反,每 32 个像素,整个图像一次又一次地显示在彼此之上。这是我的其余代码。我希望你们中的一个能帮我解决这个问题。那将是壮观的。

这是我的主要 Java 代码。它被命名为“MainGame.java”:

package com.chanceleachman.marioExample.Screens;

import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.Screen;
import com.badlogic.gdx.graphics.GL10;
import com.badlogic.gdx.graphics.OrthographicCamera;
import com.badlogic.gdx.graphics.g2d.tiled.TileAtlas;
import com.badlogic.gdx.graphics.g2d.tiled.TileMapRenderer;
import com.badlogic.gdx.graphics.g2d.tiled.TiledLoader;
import com.badlogic.gdx.graphics.g2d.tiled.TiledMap;
import com.chanceleachman.marioExample.MarioExample;

public class MainGame implements Screen {

OrthographicCamera camera;
TileMapRenderer tileMapRenderer;
TiledMap map;
TileAtlas atlas;

private MarioExample game;

public MainGame(MarioExample game) {
this.game = game;
}

@Override
public void render(float delta) {
Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT); // #14
Gdx.gl.glClearColor(0, 0, 1, 1);
tileMapRenderer.render(0, 0, 800, 480);
camera.zoom = 10;
}

@Override
public void resize(int width, int height) {
}

@Override
public void show() {
camera = new OrthographicCamera(Gdx.graphics.getWidth(),
Gdx.graphics.getHeight());

map = TiledLoader.createMap(Gdx.files.internal("map/map.tmx"));

atlas = new TileAtlas(map, Gdx.files.internal("map/"));

tileMapRenderer = new TileMapRenderer(map, atlas, 32, 32);

}
}

这是来自 Tiled 程序的我的 Tmx 文件。它被命名为“map.tmx”:

<?xml version="1.0" encoding="UTF-8"?>
<map version="1.0" orientation="orthogonal" width="25" height="15" tilewidth="32" tileheight="32">
<tileset firstgid="1" name="world" tilewidth="32" tileheight="32">
<image source="level.png" width="512" height="32"/>
</tileset>
<layer name="Tile Layer 1" width="25" height="15">
<data encoding="base64" compression="zlib">
eJxjZGBgYBzFo3gUj+JRPKwwAFOoAXg=
</data>
</layer>
</map>

这是我的 map 包文件代码。它被命名为“ map 包文件”:

level.png
format: RGBA8888
filter: Nearest,Nearest
repeat: none
level
rotate: false
xy: 0, 0
size: 480, 32
orig: 480, 32
offset: 0, 0
index: 0

我认为这就是总结。对于任何对此做出回应的人,非常感谢!哦,还有,这是我遵循的原始教程:

  1. http://code.google.com/p/libgdx/wiki/GraphicsTileMaps

再次感谢!如果我遗漏了什么重要的事情,请告诉我! :)

最佳答案

TexturePacker 似乎有问题,我一直无法使其正常工作然后使用 LibGDX 中的文件。尝试使用其他工具创建 .png 文件 & packfile,请参阅我的回答 here .

关于java - 我在使用 LibGDX TileMaps 时遇到了困难,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13339006/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com