SpriterHaxeEngine, 使用 Spriter Brashmonkey SCML的引擎进行 haxe

分享于 

7分钟阅读

GitHub

  繁體 雙語
Engine to use Brashmonkey's Spriter SCML for haxe.
  • 源代码名称:SpriterHaxeEngine
  • 源代码网址:http://www.github.com/loudoweb/SpriterHaxeEngine
  • SpriterHaxeEngine源代码文档
  • SpriterHaxeEngine源代码下载
  • Git URL:
    git://www.github.com/loudoweb/SpriterHaxeEngine.git
    Git Clone代码到本地:
    git clone http://www.github.com/loudoweb/SpriterHaxeEngine
    Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/loudoweb/SpriterHaxeEngine
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
    
    SpriterHaxeEngine

    这个项目的点是提供一个兼容 Haxe 3和openfl的brashmonkey SCML渲染器的Spriter。 http://www.brashmonkey.com/ScmlDocs/ScmlReference.html的SCML定义的基本代码。

    灵感由

    安装:haxelib install SpriterHaxeEngine

    选择绘图库:

    /*** Example with the BitmapLibrary which uses BitmapData.copypixels() and BitmapData.draw()*///set the root canvas where to add all the animationsvar canvas:BitmapData=newBitmapData(800, 480);var spriterRoot:Bitmap=newBitmap(canvas, PixelSnapping.AUTO, true);addChild(spriterRoot);//choose a rendering method.var lib:BitmapLibrary =new BitmapLibrary('assets/', canvas);/*** Example with the TilelayerLibrary which uses Tilelayer (haxelib install tilelayer)*///set the root canvas where to add all the animationsvar spriterRoot:Sprite=newSprite();addChild(spriterRoot);//choose a rendering method.var lib:TilelayerLibrary =new TilelayerLibrary('assets/atlas.xml', 'assets/atlas.png', spriterRoot);/*** Other libraries exist to use Spriter with flixel and other rendering method!*/

    实例化引擎:

    //Create the engine.//you can specify a default scml or you can specify it later in addSpriter()engine =new SpriterEngine(Assets.getText('assets/test.scml'), lib );//Add a Spriter in the engine. A Spriter contains all data from the scml (all entities, animations, boxes, tags...)//By default, it will play the first animation of the first entity of your scmlengine.addSpriter('uniqueId', x, y);//Set the"run" animation of the entityengine.getSpriter('uniqueId').playAnim('run', myCallback);//Apply the"gun" map of the entityengine.getSpriter('uniqueId').applyCharacterMap('gun', true);//Update on enter frame to draw all Spriters on screenengine.update();//Callback on end animfunction myCallback(s:Spriter):Void//callbackengine.getSpriterAt(0).onVarChanged =function varCallback(name:String, value:Dynamic):Void{}
    engine.getSpriterAt(0).onEvent =function eventCallback(name:String):Void{}
    engine.getSpriterAt(0).onSound =function soundCallback(name:String):Void{}//current points and boxesvarpoints:Array<SpatialInfo>= engine.getSpriterAt(0).points;var boxes:Array<Quadrilateral>= engine.getSpriterAt(0).boxes;//current tagsvar tags:Array<String>= engine.getSpriterAt(0).tags;//current variables valuesvarvalue:Dynamic = engine.getSpriterAt(0).getVariable('myVar');//stack animsengine.getSpriter('uniqueId').playAnimsStackFromEntity("entityName", ["anim1","anim2"], myCallback).

    Spriter Haxe引擎特性

    SCML API

    引擎

    • 可以用overrided来满足你的需要
    • 简单z-排序
    • 固定刻度,可变刻度或者使用你自己的时间
    • 暂停
    • 简单自动删除
    • 默认 scml

    Spriter实体

    • 按名称进行字符映射
    • 在Spriter实体中通过名称轻松更改动画
    • 动画结束时回调
    • 播放,堆叠动画,暂停
    • 你可以显示spriter实体的副本并在separatly中进行操作
    • 事件,声音触发时回调
    • 变量更改时回调
    • 要点( 使用示例:射击时打中子弹)
    • 框( 用法示例:hitbox )
    • 标记( 用法示例:状态易受攻击)
    • 子实体
    • 向后和反射

    其他功能

    • 自己的纹理包装机导出器
    • 将scml解析为二进制文件的宏

    交叉平台

    • flash
    • windows
    • neko
    • android
    • html5

    待办事项

    维基

    提供了更多关于特性及其工作方式的细节。

    示例

    附加信息

    • Spriter r6.1 兼容
    • 使用Tilelayer库,不要将 openfl bitfive用于html5目标。

    已知问题

    • 请根据你的目标使用最好的渲染方法。

    Sprite  HAXE  scm  
    相关文章