Отказ от ответственности: я новичок в 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-компилировать HTML-версию моей игры, я получаю эту ошибку:
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. В классе, если я расширяю базовый класс И реализую интерфейс, он все равно не компилируется; работает только удаление расширения базового класса.