免责声明:我是 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 类?或者是别的什么?自 Java 版本编译以来,我一直期望 HTML 版本能够编译;类的签名不应该从子类化中改变。
编辑:我正在使用一个全新的样板 PlayN 项目。在类中,如果我扩展基类并实现接口,它仍然无法编译;仅删除基类扩展作品。