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 バージョンを実行するとすべて正常に動作します...
これを修正する方法または何をすべきかについて、私は完全に途方に暮れています。
どんな助けでも大歓迎です