gpt4 book ai didi

java - 如何在java中使用键盘使 Sprite 移动(libgdx)

转载 作者:行者123 更新时间:2023-11-30 03:12:42 24 4
gpt4 key购买 nike

我正在为学校动机制作游戏,我已经制作了 Sprite 和背景(平铺 map )我的问题是如何使用键盘使 Sprite 左右移动,请大家帮忙我尽快这是我的代码:

public class LEVEL1 implements ApplicationListener, Screen {
private Music music;
private SpriteBatch batch;
private Texture Sprite;
private Vector2 position;
private TiledMap map;
private OrthogonalTiledMapRenderer renderer;
private OrthographicCamera camera;

@Override
public void render(float delta) {
Gdx.gl.glClearColor(1, 0, 0, 0);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
position.y = position.y - 5;

// player Controls
if(position.y < 0){
position.y = 0;
}

//..................................................

// renderer camera and map
camera.update();
renderer.setView(camera);
renderer.render();
//...................................................

//tells the computer when to start drawing textures
batch.begin();
batch.draw(Sprite, position.x, position.y, 50, 50);
batch.end();
//...................................................

camera = new OrthographicCamera();
camera.setToOrtho(true, 2920,950);

}

@Override
public void show() {
Sprite = new Texture("Sprite.png");
batch = new SpriteBatch();
position = new Vector2(650, Gdx.graphics.getHeight());

map = new TmxMapLoader().load("map1.tmx");

renderer = new OrthogonalTiledMapRenderer(map);

camera = new OrthographicCamera();

music = Gdx.audio.newMusic((Gdx.files.internal("GameSound.mp3")));

music.setLooping(false);
music.setVolume(0.5f);
music.play();
}

@Override
public void create() {

}

@Override
public void resize(int width, int height) {
camera.viewportWidth = width;
camera.viewportHeight = height;
camera.position.set(width/2f, height/3f, 0); //by default camera position on (0,0,0)
camera.update();


}

@Override
public void render() {
if(Gdx.input.justTouched())
music.play();


}

@Override
public void dispose() {
map.dispose();
renderer.dispose();
music.dispose();
}

@Override
public void hide() {
// TODO Auto-generated method stub

}

@Override
public void pause() {
// TODO Auto-generated method stub

}

@Override
public void resume() {
// TODO Auto-generated method stub

}

}

最佳答案

这里我做了一个使用按键(上、下、左、右)移动 Sprite 的小例子

您应该在 libgdx wiki 中找到更多详细信息

public class Level1 implements ApplicationListener {


Sprite sprite;
SpriteBatch batch;

float spriteXposition;
float spriteYposition;

@Override
public void render() {

Gdx.gl.glClearColor(1, 0, 0, 0);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);

//tells the computer when to start drawing textures
batch.begin();
sprite.setPosition(spriteXposition, spriteYposition);
sprite.draw(batch);
batch.end();

spriteControl();

}

public void spriteControl() {

if(Gdx.input.isKeyPressed(Keys.UP)) {
spriteYposition++;
}
if(Gdx.input.isKeyPressed(Keys.DOWN)) {
spriteYposition--;
}

if(Gdx.input.isKeyPressed(Keys.LEFT)) {
spriteXposition--;
}

if(Gdx.input.isKeyPressed(Keys.RIGHT)) {
spriteXposition++;
}
}


@Override
public void create() {

sprite = new Sprite(new Texture(Gdx.files.internal("sprite.png")));
batch = new SpriteBatch();
}
}

关于java - 如何在java中使用键盘使 Sprite 移动(libgdx),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33283867/

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