我正在使用 dot42 在 C# 中开发简单的 2D 游戏并瞄准 Android 市场。游戏非常简单,所以我可以自己完成工作,但由于 AndEngine 似乎已经实现了我需要的所有功能(捏缩放、平移、适当的场景工作流程等),我认为这将是一个很好的机会熟悉那个引擎。既然 dot42 说可以使用罐子,那会出什么问题呢?
显然很多:
首先将 andengine.jar 包含到项目中后,我得到了
Cannot resolve B in context org.andengine.util.adt.spatial.quadtree.FloatQuadTree
在试图找出该模板类的哪种用法导致它之后,我最终通过注释掉该包中的所有 3 个类来“修复”(据我所知,所有传递的类型都是从所需接口派生的,所以无论如何......)
然后我得到了 12 个与 IModifier 下层次结构中抽象类的错误返回类型相关的错误,就像这样
'Org.Andengine.Entity.Modifier.SingleValueChangeEntityModifier.DeepCopy()':返回类型必须是 'Org.Andengine.Util.Modifier.IModifier' 以匹配被覆盖的成员 'Org.Andengine.Util.Modifier.BaseModifier.DeepCopy()' D:\Development\AndEngineTest\dot42Application1\obj\Debug\andengine.cs
dot42 指示的类是抽象的,因此它们没有 DeepCopy 方法的实现,该方法在派生的类中正确实现。据我所知,一切都应该没问题,因为可以实例化的类具有完整的实现。好的,这些实现不会返回与层次结构顶部(底部?我总是混淆)接口中的方法“相同类型”,而是实现该方法的类的派生类型,但这应该是完全可以的。尤其是 Java 没有抱怨任何如此激烈的事情。
如果 dot42 变得太复杂,我有一种感觉,它会在继承层次结构的某个地方迷失。
AndEngine 是今天从官方分支下载的,使用 ADT 包编译为 Android 4.0.3(我决定支持的最低系统版本)。编译显示了一些警告,但它们都是关于已弃用的东西,所以我认为在这种情况下它并不重要。
所以有人试过并且可以分享一些提示吗?也许 dot42 dev 会再次回答我的问题?:)