簡體   English   中英

Starling,Nape,Flash,Haxe Dillemma

[英]Starling, Nape, Flash, Haxe Dillemma

我正在使用Starling Framework在Flash for iOS中構建游戲。 我也在使用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/

我需要改變所有的flash.display.DisplayObjectnape.utils.Debugstarling.display.DisplayObject

如果你能借給我任何建議,我會非常感激。

希望您知道debug utils僅用於調試目的。 不要使用nape.utils.Debug最終渲染空間。

我也在制作八哥+頸背游戲。 我正在迭代我的空間中的物體並讀取它們的x,y,旋轉值以在我的舞台上渲染starling的Images和MovieClips。 我想說的是使用Starling編寫自己的“調試繪圖”非常簡單。 總而言之,你必須寫一些,因為nape.utils.Debug僅用於調試目的;)。

這就是我做的,非常簡單。 如果您還有其他問題,請與我們聯系。

在創建場景時創建Space -typically:

/**
 * 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);
}

舞台被摧毀時:

if(Release.DEBUG_PHYSICS){
    _debug.clear();
    _debug = null;
}

當圖形引擎更新時:

/**
 * 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;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM