我已经使用 PlayN 的 Tripleplay 框架定义了我的游戏的主菜单。不幸的是,我无法让它显示在我的 Nexus 7 上。
真正奇怪的是——如果我运行 Java 版本,一切正常——但每当我运行 Android 版本时,什么都没有显示——日志表明整个 UI 都已构建
有没有人在 Android 上使用 Tripleplay 框架时遇到任何问题 - Java 工作正常。
这是代码:
public class MainMenuStateImpl extends AbstractState implements MenuState {
private Interface ui;
private GroupLayer groupLayer;
@Inject
public MainMenuStateImpl(StateManager stateManager) {
super(stateManager);
}
@Override
public void initialize() {
PlayN.log().debug("initializing main menu");
groupLayer = graphics().createGroupLayer();
graphics().rootLayer().add(groupLayer);
ui = new Interface();
final Root root = ui.createRoot(AxisLayout.vertical().gap(15), SimpleStyles.newSheet());
PlayN.log().debug("setting root to size " + graphics().width() + ", " + graphics().height());
root.setSize(graphics().width(), graphics().height());
stateManager.getImageCache().cache("img/menu_background.png", new Callback.Default<Image>() {
@Override
public void onSuccess(Image image) {
// groupLayer.add(graphics().createImageLayer(image));
root.addStyles(Style.BACKGROUND.is(Background.image(image)));
groupLayer.add(root.layer);
// graphics().rootLayer().add(root.layer);
final Group buttons = new Group(AxisLayout.vertical().offStretch());
root.add(new Label("RunRun:"), buttons);
PlayN.log().debug("adding level groups to menu");
final LevelGroupMetadataCache cache = (LevelGroupMetadataCache) stateManager.getContext()
.get(ContextKeys.LEVEL_GROUP_METADATA_CACHE);
for (final LevelGroupMetadata levelGroup : cache) {
final Button button = new Button(levelGroup.getName());
buttons.add(button);
button.clicked().connect(new UnitSlot() {
@Override
public void onEmit() {
stateManager.getContext().set(ContextKeys.LEVEL_GROUP,
cache.get(levelGroup.getName()));
stateManager.goTo(stateManager.getLevelGroupMenuState());
}
});
}
PlayN.log().debug("finished creating ui for main menu");
PlayN.log().debug("ui = " + ui);
}
});
}
@Override
public void destroy() {
groupLayer.destroy();
}
@Override
public void update(float delta) {
ui.update(delta);
}
@Override
public void paint(float alpha) {
ui.paint(alpha);
}
}
所有日志语句都出现在我的 logcat 中 - 但没有渲染 - 仅在 Android 中 - 当我运行 java 版本时一切正常......
我完全不知道如何解决这个问题或做什么。
任何帮助将不胜感激