Android 需要使用LIBGDX在菜单屏幕中添加按钮的帮助吗
我有3个不同的屏幕,其中包括启动屏幕,后菜单屏幕和游戏屏幕。飞溅>菜单>游戏开始 如何添加图像按钮 我想实现菜单屏幕内的3个按钮,不知道从哪里开始Android 需要使用LIBGDX在菜单屏幕中添加按钮的帮助吗,android,libgdx,Android,Libgdx,我有3个不同的屏幕,其中包括启动屏幕,后菜单屏幕和游戏屏幕。飞溅>菜单>游戏开始 如何添加图像按钮 我想实现菜单屏幕内的3个按钮,不知道从哪里开始 public class MenuScreen implements Screen { private Spacegame game; private SpriteBatch batch; private Sprite sprite; private Texture texture; TextureRegion bg,play,spacegame
public class MenuScreen implements Screen {
private Spacegame game;
private SpriteBatch batch;
private Sprite sprite;
private Texture texture;
TextureRegion bg,play,spacegamelogo,button;
OrthographicCamera camera;
Vector3 touchPoint;
private Skin buttonskin;
public MenuScreen(Spacegame game)
{
touchPoint = new Vector3();
this.game=game;
batch=new SpriteBatch();
bg=AssetLoader.bg;
spacedebrislogo=AssetLoader.spacedebrislogo;
button=AssetLoader.button;
}
@Override
public void show() {
float w = Gdx.graphics.getWidth();
float h = Gdx.graphics.getHeight();
camera = new OrthographicCamera(1, h / w);
sprite = new Sprite(bg);
sprite.flip(false, true);
sprite.setSize(1.0f,
1.0f * sprite.getHeight() / sprite.getWidth() );
sprite.setOrigin(sprite.getWidth() / 2,
sprite.getHeight() / 2);
sprite.setPosition(-sprite.getWidth() / 2,
-sprite.getHeight() / 2);
}
@Override
public void render(float delta) {
batch.setProjectionMatrix(camera.combined);
batch.begin();
sprite.draw(batch);
batch.draw(spacedebrislogo, 33, 54, 50, 40);
batch.end();
if (Gdx.input.isTouched()) {
game.setScreen(new GameScreen());
dispose();
}
}
有很多方法可以做到这一点。。 我会告诉你我是怎么做的。 首先,我创建我的按钮图像,将其添加到资源文件夹并加载纹理区域。 现在我用它做了一个雪碧
Sprite button1=new Sprite(myTextureRegion);
要检查按钮是否被触摸,我可以使用精灵中的矩形来检查您是否触摸了图像。
在你的补强方法中,你会做如下的事情
if(button1.getBoundingRectangle.contains(screenX,screenY))
// do your thing
为了让我的游戏更有趣,我喜欢在点击时添加一些旋转或缩放我的精灵,这样看起来更好,你可以玩它,或者你可以制作两种纹理,一种是触地纹理,一种是触地纹理。你打算将Scene2D与Scene2D.ui一起使用还是创建你自己的小部件?我已经创建了screen,现在背景图片正在显示,上面我想添加播放按钮。什么是Scene2d?Scene2d是LibGDX的场景图。如果您使用LibGDX提供的“场景”来显示内容,那么您可以使用由场景管理的作为“参与者”的小部件。但是,如果您不想求助于Scene2D,则需要创建自己的按钮。我在这里发布了我的按钮实现:智能。问题是,你把文字写在纹理上了吗?是的。使用inkscape,非常容易使用,效果非常好。我不建议对按钮使用纹理,对单独的按钮使用文本。。这太难了,看起来也不太好。设计你自己的按钮,有很多教程:)你根据屏幕大小加载不同的纹理吗?我个人刚刚使用了Ortho2D变换,但这有它的问题。我的游戏固定分辨率是800x480。我为SD、MD、HD、XHD图形提供资产。我根据MD资源上的纹理大小设置精灵大小。实际上,我只为XHD制作图形,并使用我的程序将其缩小到其他分辨率。不管怎样,像800x480这样的固定分辨率和图形大小的手机在90%的手机上都能正常工作。。我想你需要高清平板电脑