こんにちは私はlibgdxとjavaを初めて使っていて、screen上に複数のオブジェクトを作成する際に問題があります。スペースをクリックすると、Pociskクラスの画面矩形上に新しいオブジェクトを作成したいのですが、ただ下に行く。複数の四角形を作成するjava libgdx
ゲームクラス
public class Gra extends ApplicationAdapter {
SpriteBatch batch;
private Texture Statektekstura,Pocisktekstura;
private Statek statek;
private Pocisk pocisk;
@Override
public void create() {
zaladujdane();
init();
}
private void init() {
batch=new SpriteBatch();
statek=new Statek(Statektekstura);
pocisk=new Pocisk(Pocisktekstura);
}
private void zaladujdane() {
//tekstura statku pomniejszana
Pixmap pixmap2 = new Pixmap(Gdx.files.internal("statek.jpg"));
Pixmap pixmap1 = new Pixmap(100, 100, pixmap2.getFormat());
pixmap1.drawPixmap(pixmap2,
0, 0, pixmap2.getWidth(), pixmap2.getHeight(),
0, 0, pixmap1.getWidth(), pixmap1.getHeight()
);
Statektekstura=new Texture(pixmap1);
//tekstura pocisk pomniejszona
Pixmap pixmap20 = new Pixmap(Gdx.files.internal("pocisk.jpg"));
Pixmap pixmap10 = new Pixmap(35, 35, pixmap20.getFormat());
pixmap10.drawPixmap(pixmap20,
0, 0, pixmap20.getWidth(), pixmap20.getHeight(),
0, 0, pixmap10.getWidth(), pixmap10.getHeight()
);
Pocisktekstura=new Texture(pixmap10);
}
@Override
public void render() {
udpdate();
Gdx.gl.glClearColor(1, 1, 1, 1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
batch.begin();
statek.draw(batch);
pocisk.draw(batch);
batch.end();
}
private void udpdate() {
przesuwanie();
pocisk.y=pocisk.y+pocisk.pociskpredkosc*Gdx.graphics.getDeltaTime();
}
private void przesuwanie() {
if(Gdx.input.isKeyPressed(Keys.A))
{
statek.x=statek.x-250*Gdx.graphics.getDeltaTime();
}
if(Gdx.input.isKeyPressed(Keys.D))
{
statek.x=statek.x+250*Gdx.graphics.getDeltaTime();
}
if(Gdx.input.isKeyPressed(Keys.SPACE))
{
pocisk=new Pocisk(Pocisktekstura);
pocisk.strzal();
}
}
@Override
public void dispose() {
//batch.dispose();
}
}
クラスPociskコード:
public class Pocisk extends Rectangle {
private Texture texture;
public float pociskpredkosc=0;
Pocisk(Texture texture)
{
this.texture=texture;
this.height=texture.getHeight();
this.width=texture.getWidth();
}
public void draw(SpriteBatch batch)
{
batch.draw(texture, x, y);
}
public void strzal()
{
pociskpredkosc=pociskpredkosc+80;
}
}
私は私は私がスペースをクリックしたときに、常に新しいRectangleを作るために変更すべきかクラスGRAにないクラスPociskに失敗したと思いますか?
複数の矩形を一度に1つずつ表示するか、一度に画面上に矩形の数を表示できますか? Rectangleの開始位置/初期位置とサイズはどこですか? – Aryan
'strzal()'メソッドや 'pociskpredkosc'変数で何をしたいですか? – Aryan
あなたが見ているエラーを投稿できますか? – John