这个问题一直困扰着我.我一直想知道游戏开发者如何解决在某些类型中非常常见的某些问题或情况.
例如,如何实现典型角色扮演游戏(例如BG或TES)的任务?或者你如何在第一人称射击游戏中实施具有多重堆叠效果的武器(例如DN3D的收缩枪或冷冻机)?您如何使用可能错综复杂的决策树实现多选项,从而导致几种不同的结果(例如WC中的任务树)?
首先是一个小背景:我正在寻找一种方法来创建一个"集合"库,它抽象基于Flash Player版本的实现(FP10上的Vector,FP9上的Array)远离调用代码.我已经编写了一个小型的AS3 lib,但......
我目前正在考虑将Haxe作为一种可能的解决方案,因为它支持类型参数,并且能够编译为各种Flash Player版本(并且显然编译为mmore优化的字节码).
现在,我的问题是:有没有办法在Haxe中编写一个可以在AS3代码中使用的库
var foo:IMyInterface = new MyImplementation(int);
var bar:IMyInterface = new MyImplementation(getDefinitionByName("my.package.MyClass"));
Run Code Online (Sandbox Code Playgroud)
与IMyInterface暴露所需的方法(push,pop,...)?
基本思想是我想在运行时提供类型信息,并获得一个类型安全的Flash Player版本独立的"集合",以便在调用代码中使用,而无需在整个地方使用条件编译片段.
Haxe可以做类似的事情吗?如果是的话,我怎样才能让它发挥作用?
我目前正在测试各种缩放图像的方法(或者更确切地说,整个DisplayList层次结构).使用scaleX和scaleY工作得很好,但是当我使用z属性来缩放图像(通过将其放置得更远)时,图像在返回时会变得模糊z=0.
图像放在Sprite("groundLayer")中,然后Sprite放入另一个Sprite("zoomLayer").每当我缩放时,我只是在操纵"zoomLayer"的属性.
该照片拍摄后返回的权利scaleX,并scaleY回1.0:

该照片拍摄后返回正确的z回0.0:

我已经尝试搜索有关这种现象的信息,但实际上找不到任何有用的信息.谁能解释那里发生了什么?为什么Flash在操作z属性后会模糊图像?有没有办法防止这种情况(好吧,除了显然是z单独留下)?