3

最初のスーパーマリオ レベルのリメイクを作ろうとしています。タイリングを除いて、ほとんどすべてで成功しています。誰かが私のコードを簡単に見て、私が間違っていたことを説明してくれたら、それは素晴らしいことです! ここ数日、トラブルシューティングを行っています。ありがとう!また、評判が良くなるまで写真を投稿することは許可されていないので、ここにリンクを貼っておきます。

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

まず、これが私の画像アトラスです。「world.png」という名前です。

(リンク先サイトの最初の写真)

第二に、私が作成しようとしているものは次のとおりです。

(ウェブサイトの2番目の写真)

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>

これが私のマップパックファイルコードです。「マップパックファイル」という名前です:

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

もう一度、ありがとう!何か重要なことを忘れていたら、教えてください!:)

4

1 に答える 1

3

TexturePackerバグがあるようですが、正しく動作させてからLibGDXのファイルを使用することはできませんでした。別のツールを使用して.png file&を作成してみてください。ここで私の答えを参照してください。packfile

于 2012-11-12T14:04:40.937 に答える