免责声明:我对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代码都能够编译并正常工作。但是当我尝试将游戏的HTML版本进行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项目。在这个类中,如果我扩展基类并实现接口,它仍然无法编译;只有删除基类扩展才能正常工作。
<source path =" pkg "/>
条目。如果您将这些代码打包成用于游戏的jar文件,则需要包含.java文件(及.gwt.xml文件)。 - samskivert