0
我想在jetActor被觸摸時顯示併發射子彈,它可以是無限的子彈。我認爲它可以以某種方式用數組完成,但是我嘗試越多,我就越不理解。此外,當演員被觸碰倍增時間,子彈走得更快。LibGdx如何創建多個子彈?
這是代碼,它現在所做的全部工作就是它顯示一架噴氣式飛機和一顆子彈,並且當噴氣式飛機被觸碰時,它會「發射」子彈。
public class MyGdxGame implements ApplicationListener{
private Texture bulletTexture;
private Texture jetTexture;
private Stage stage;
private BulletActor[] bulletActor;
private JetActor jetActor;
float bulletX = 650, bulletY = 200;
float jetX = 700,jetY = 150;
boolean started;
public class JetActor extends Actor{
public JetActor() {
setBounds(jetX,jetY,jetTexture.getWidth(),jetTexture.getHeight());
this.addListener(new InputListener(){
public boolean touchDown(InputEvent event, float x, float y, int pointer, int buttons){
started = true;
bulletActor[2] = new BulletActor();
System.out.println("Touched");
return true;
}
});
}
@Override
public void draw(Batch batch, float parentAlpha) {
batch.draw(jetTexture, jetX, jetY, jetTexture.getWidth(), jetTexture.getHeight());
}
}
public class BulletActor extends Actor{
@Override
public void act(float delta) {
if(started){
bulletX -=3;
}
}
@Override
public void draw(Batch batch, float parentAlpha) {
batch.draw(bulletTexture,bulletX,bulletY,bulletTexture.getWidth(), bulletTexture.getHeight());
}
}
@Override
public void create() {
bulletTexture = new Texture("C:\\Users\\User\\Documents\\LibGdxMainProjects\\SampleGame1\\android\\assets\\bullet.png");
jetTexture = new Texture("C:\\Users\\User\\Documents\\LibGdxMainProjects\\SampleGame1\\android\\assets\\jet.png");
stage = new Stage();
jetActor = new JetActor();
bulletActor = new BulletActor[10];
stage.addActor(jetActor);
Gdx.input.setInputProcessor(stage);
bulletActor[1] = new BulletActor();
stage.addActor(bulletActor[1]);
}
@Override
public void dispose() {
}
@Override
public void render() {
Gdx.gl.glClearColor(1, 1, 1, 1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
stage.act(Gdx.graphics.getDeltaTime());
stage.draw();
}
@Override
public void resize (int width, int height){
}
@Override
public void pause() {
}
@Override
public void resume() {
}
}