gpt4 book ai didi

ios - libgdx - iOS 环境不适用于 scene2d

转载 作者:行者123 更新时间:2023-12-01 16:38:42 25 4
gpt4 key购买 nike

在横向模式下运行我的应用程序时,我遇到了 libGDX 原本很棒的 scene2d ui 库的问题。我的程序在 android 模拟器和桌面环境中都按预期工作,但是当我在 iOS 模拟器或真实设备上运行它时,主菜单的绘制就好像手机仍然处于纵向方向一样,并且刚刚裁剪为适合横向 View 。起初,我以为我刚刚搞砸了,因为我还在学习 api,但该应用程序在 android 上的工作方式与预期一样。我已将我的游戏配置为在 iOS 和 android 上以横向模式运行。

在 android 模拟器上,菜单按预期工作。模拟器处于横向,并正确显示菜单。

在 iOS 上,菜单偏离中心且无法点击。

我很确定问题与横向模式有关,因为纵向模式下一切正常。这是我的 MainMenuScreen 代码,它扩展了 ScreenAdapter。

package bakpakin.techgame;

import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.ScreenAdapter;
import com.badlogic.gdx.graphics.Color;
import com.badlogic.gdx.graphics.GL20;
import com.badlogic.gdx.scenes.scene2d.Actor;
import com.badlogic.gdx.scenes.scene2d.Stage;
import com.badlogic.gdx.scenes.scene2d.ui.*;
import com.badlogic.gdx.scenes.scene2d.ui.TextButton.TextButtonStyle;
import com.badlogic.gdx.scenes.scene2d.utils.ChangeListener;

/**
* Created by Calvin on 9/25/14.
*/
public class MainMenuScreen extends ScreenAdapter {

private TechGame game;
private Stage stage;
private Skin skin;
private Table table;

public MainMenuScreen(TechGame game) {
this.game = game;
}

@Override
public void show() {
this.stage = new Stage();
this.skin = new Skin();

skin.add("default", Assets.superScript48);
skin.add("title", Assets.superScript128);

TextButtonStyle textButtonStyle = new TextButtonStyle();
textButtonStyle.font = skin.getFont("default");
textButtonStyle.pressedOffsetY = 4;
skin.add("default", textButtonStyle);

Label.LabelStyle labelStyle = new Label.LabelStyle();
labelStyle.font = skin.getFont("title");
labelStyle.fontColor = Color.CYAN;
skin.add("default", labelStyle);

// Create a table that fills the screen. Everything else will go inside this table.
table = new Table();
table.setFillParent(true);
stage.addActor(table);

final TextButton play = new TextButton("Play", skin);
final TextButton about = new TextButton("About", skin);
final TextButton quit = new TextButton("Quit", skin);

play.addListener(new ChangeListener() {
@Override
public void changed(ChangeEvent event, Actor actor) {
Assets.button1Sound.play(1, 1, 0);
}
});

about.addListener(new ChangeListener() {
@Override
public void changed(ChangeEvent event, Actor actor) {
Assets.button1Sound.play(1, 1, 0);
}
});

quit.addListener(new ChangeListener() {
@Override
public void changed(ChangeEvent event, Actor actor) {
Assets.button1Sound.play(1, 1, 0);
Gdx.app.exit();
}
});

final Label title = new Label("My Game", skin);

VerticalGroup vg = new VerticalGroup();

vg.pad(60);

table.add(title);
table.row();
table.add(vg);

vg.addActor(play);
vg.addActor(about);
vg.addActor(quit);

Gdx.input.setInputProcessor(stage);
}

@Override
public void render(float delta) {

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

stage.act(delta);
stage.draw();
}

@Override
public void dispose() {
stage.dispose();
skin.dispose();
}
}

最佳答案

iOS 7 还是 8?我听说有一些 iOS 8 渲染问题

显然,这已在最新快照中修复(请参阅 github.com/libgdx/libgdx/issues/2386)。随着一个新的稳定版本 promise 很快就会发布,如果您没有足够的勇气运行快照构建,我相信修复将被折叠

关于ios - libgdx - iOS 环境不适用于 scene2d,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26089198/

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