我试图在libgdx中创建一个椭圆对象。对不起,如果我无法正确描述,但我是一个新手java。
我的代码如下:
public class GameScreen implements Screen{
MyGame game;
OrthographicCamera camera;
SpriteBatch batch;
...
Ellipse playBounds;
public GameScreen(MyGame game) {
this.game = game;
camera = new OrthographicCamera();
camera.setToOrtho(false, 1080, 1920);
batch = new SpriteBatch();
state = GAME_READY;
touchPoint = new Vector3();
pauseBounds = new com.badlogic.gdx.math.Rectangle(1080-128,1920-128,128,128);
playBounds= new Ellipse()
}
...
public void render(float delta) {
Gdx.gl.glClearColor(1F, 1F, 1F, 1F);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
camera.update();
generalupdate();
batch.setProjectionMatrix(camera.combined);
batch.begin();
batch.draw(Assets.sprite_bg, 0, 0);
switch (state){
case GAME_READY:{
batch.draw(Assets.sprite_startScreen, 0, 0);
batch.draw(Assets.sprite_playButton,218,800,644,225);
break;
}
基本上它绘制背景,欢迎屏幕和按钮(上面有“播放”) 所以我在这里进行了触摸检测。
if (Gdx.input.justTouched()) {
camera.unproject(touchPoint.set(Gdx.input.getX(), Gdx.input.getY(), 0));
if (state==GAME_READY);
if (playBounds.contains(touchPoint.x, touchPoint.y)) {
state=GAME_RUNNING;
绘图工作正常,但问题是当我触摸按钮时它不起作用,如果我触摸它附近游戏开始应该
答案 0 :(得分:1)
好吧,忽略我在这里假设的代码中的几个错误而不是实际的代码,我相信问题可能是你没有在Ellipse中设置值。我的意思是宽度,高度,x和y。
一个很好的方法是使用构造函数:
Ellipse(float x,float y,float width,float height)
而不只是:
椭圆()
这样您就可以立即设置值。有关LibGDX的省略号的详细信息,请参阅this website。
如果这不能解决您的问题,您可能需要发布一些代码的相关部分。