首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Starling,Nape,Flash,Haxe困境

Starling,Nape,Flash,Haxe困境
EN

Stack Overflow用户
提问于 2012-05-29 19:58:10
回答 2查看 1.3K关注 0票数 3

我正在为iOS构建一个使用Starling框架的Flash游戏。我也在使用Nape,一个2D物理引擎。我遇到的问题是Nape引擎上使用flash.display.DisplayObject的一种特殊方法,但是,由于我使用的是Starling框架,所以我不得不使用starling.display.DisplayObject。它返回此错误:

1067:将flash.display:DisplayObject类型的值隐式强制为不相关的starling.display:DisplayObject。

没有办法调整这种方法。Nape引擎被编译成一个.swc,我无法编辑它。这个引擎也是开源的,但是它是用Haxe语言完成的,一旦我编辑了它,我就想不出如何编译它了。

源可以在以下位置下载:http://deltaluca.me.uk/docnew/

我需要将nape.utils.Debug类中的所有nape.utils.Debug更改为starling.display.DisplayObject

如果你能给我任何建议,我会很好的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-11-25 16:29:57

我就是这么做的,很简单。如果你还有什么问题请告诉我。

创建场景时,创建空间-typically时:

代码语言:javascript
复制
/**
 * Create debug drawing space to overlay on assets if flag enabled in Release config
 */
if(Release.DEBUG_PHYSICS){
    _debug = new ShapeDebug(320*2, 480*2, 0x000000);
    _debug.drawConstraints = true;
    _debug.drawCollisionArbiters = true;
    var MovieClipDebug:MovieClip = new MovieClip();
    MovieClipDebug.addChild(_debug.display);
    Starling.current.nativeOverlay.addChild(MovieClipDebug);
}

当舞台被摧毁时:

代码语言:javascript
复制
if(Release.DEBUG_PHYSICS){
    _debug.clear();
    _debug = null;
}

当图形引擎更新时:

代码语言:javascript
复制
/**
 * Update the positions of the depug layer
 */
if(Release.DEBUG_PHYSICS){
    _debug.clear();
    _debug.draw(_space);
    _debug.flush();
    _debug.display.x = this.x;
    _debug.display.y = this.y;
    // handles camera zooming in/out
    _debug.display.scaleX = this.scaleX;
    _debug.display.scaleY = this.scaleY;
}
票数 1
EN

Stack Overflow用户

发布于 2012-05-29 22:19:42

希望您知道调试实用程序仅用于调试目的。最后不要使用nape.utils.Debug来呈现您的空间。

我也在制作starling+nape游戏。我在我的空间中遍历身体,读取它们的x,y,旋转值,在我的舞台上呈现星空的图像和MovieClips。我想说的是,使用Starling编写自己的“调试绘图”非常简单。总之,您必须在某些时候编写它,因为nape.utils.Debug只用于调试;)。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10805828

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档