您好我有一个简单的代码:
public class MyGdxGame extends ApplicationAdapter {
SpriteBatch batch;
Texture texture;
BitmapFont font;
GameObject gameObject1;
GameObject gameObject2;
@Override
public void create () {
texture= new Texture("badlogic.jpg");
batch= new SpriteBatch();
font = new BitmapFont();
font.setColor(Color.GREEN);
gameObject1= new GameObject(texture);
gameObject2= new GameObject(texture);
gameObject1.x=0;
gameObject1.y=0;
gameObject2.x=400;
gameObject2.y=400;
gameObject2.height=gameObject2.getTexture().getHeight();
gameObject2.width=gameObject2.getTexture().getHeight();
gameObject1.height=gameObject1.getTexture().getHeight();
gameObject1.width=gameObject1.getTexture().getHeight();
}
@Override
public void render () {
update();
Gdx.gl.glClearColor(0, 0, 0, 0);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
batch.begin();
batch.draw(gameObject1.getTexture(),gameObject1.x, gameObject1.y);
batch.draw(gameObject2.getTexture(),gameObject2.x, gameObject2.y);
//batch.draw(texture, 0, 0);
//font.draw(batch, "HELLO",400,400);
batch.end();
}
private void update() {
// TODO Auto-generated method stub
if (Gdx.input.isTouched()){
gameObject1.y=Gdx.input.getY();
gameObject1.x=Gdx.input.getX();
}
if (gameObject1.overlaps(gameObject2)){
Gdx.app.exit();
}
}
@Override
public void dispose(){
System.out.println("dispose");
batch.dispose();
texture.dispose();
font.dispose();
}
}
它处理小问题: y轴位于中间屏幕。我正在移动手指,物体下降。 物体应该在我的手指下,就像镜子反射一样。 哪里有问题?
private void update() {
// TODO Auto-generated method stub
if (Gdx.input.isTouched()){
gameObject1.y=Gdx.graphics.getHeight()-Gdx.input.getY();
gameObject1.x=Gdx.input.getX();
}
if (gameObject1.overlaps(gameObject2)){
Gdx.app.exit();
}
}
答案 0 :(得分:0)
gameObject1.y=Gdx.graphics.getHeight()-Gdx.input.getY();
newY = height-(-y) = height + y
要解决它,只需切换到:
gameObject1.y=Gdx.graphics.getHeight()+Gdx.input.getY();
或者将y ais放在屏幕的顶部。