Отказ от ответственности: я новичок в GWT / PlayN, так что это может быть очевидной ошибкой, которую я совершаю.
Когда у меня есть базовый (начальный) проект PlayN, мой метод класса BlahGame
реализует интерфейс Game
, который требует трех методов: init
, paint
и update
. Класс для начинающих выглядит примерно так:
public class BlahGame implements Game {
public void init() { ... }
public void paint(float alpha) { ... }
public void update(float alpha) { ... }
}
Я создал класс BaseGame
для реализации игры, например:
public class BaseGame implements Game {
public void init() { ... }
public void paint(float alpha) { ... }
public void update(float alpha) { ... }
}
Мой основной игровой класс стал подклассом BaseGame
примерно так:
public class BlahGame extends BaseGame {
public void init() { ... base.init(); ... }
}
Все компилируется и работает с Java. Но когда я пытаюсь скомпилировать версию моей игры в формате GWT, я получаю эту ошибку:
com.google.gwt.dev.jjs.InternalCompilerException: Failed to get JNode
at com.google.gwt.dev.jjs.impl.TypeMap.get(TypeMap.java:140)
at com.google.gwt.dev.jjs.impl.TypeMap.get(TypeMap.java:71)
at com.google.gwt.dev.jjs.impl.BuildTypeMap.getType(BuildTypeMap.java:730)
...
[ERROR] <no source info>: public class com.deengames.BaseGame
extends java.lang.Object
implements : playn.core.Game
/* methods */
public void <init>()
public void init()
[unresolved] public void paint(float)
[unresolved] public void update(float)
[unresolved] public int updateRate()
Я не уверен, что мне здесь не хватает. Нужно ли обновлять некоторые классы GWT? Или что-то еще? Я ожидал, что HTML-версия будет скомпилирована после компиляции версии Java; подписи классов не должны отличаться от подклассов.
Редактировать: Я использую совершенно новый, стандартный проект PlayN. В классе, если я расширяю базовый класс И реализую интерфейс, он все еще не компилируется; работает только удаление расширения базового класса.