1
私は大学のクラスのプロジェクトとしてゲームを作っています。私のメインキャラクター(木)が地面に当たったとき、それは地面LibGdx Box2dコリソンがスプライトと一致しない
との短い停止したときのギャップも大きい少しプラットフォーム上のプレイヤーの土地
キャラクターと地面のボディを作成するための私のコードはこれです。
地面がそれ自身のクラスである
public class Material {
private Texture image;
private Body body;
private Sprite sprite;
public Material(Texture t, int x, int y, int w, int h){
image = t;
sprite = new Sprite(t);
body = BoxBuilder.createBody(x, y, w, h, true);
body.setUserData("Ground");
}
public void draw(){
// returns a SpriteBatch
SpriteBatch batch = GlobalBatch.getInstance();
sprite.setPosition(body.getPosition().x * PPM, body.getPosition().y * PPM);
batch.begin();
sprite.draw(batch);
batch.end();
}
public void dispose(){
image.dispose();
}
}
地面
public void draw(){
for(Material m : worldObjects){
m.draw();
}
}
を描画するためのコードが は
public void create(){
// do stuff
// global vars
body = createBody(0, 480, 313, 260, false);
texture = new Texture("tree.PNG");
sprite = new Sprite(texture);
// do stuff
}
public void render(){
// do stuff
sprite.setPosition(body.getPosition().x*PPM, body.getPosition().y*PPM);
batch.begin()
sprite.draw(batch)
batch.end()
// do stuff
}
とPPM(メーターあたりのピクセル)が
文字を描画するための私のコードです
public static final float PPM = 32;
私は知らないwここでの問題は何か、私はそのキャラクターを地面に着地させ、その上に着地させたくない。だから誰かが私にこれを引き起こしていることを教えてくれたり、box2dについてもっと学ぶための良いチュートリアルを教えてくれたら、それを感謝します。
ために多分キャンバスサイズは、画像よりも大きいです。キャンバスと画像の高さが等しいことを確認してください。 –
地面は個々のタイルでできていて、libgdxはキャンバスを世話しませんか? – Das
'Box2DDebugRenderer'を使ってあなたの体の境界をチェックしてください。 – Aryan