标签: haxeflixel

Haxe/OpenFL/Flixel

我一直在浏览Haxe/OpenFL/Flixel的网站,但我很难理解每个人的用途.

据我了解:

Haxe是一种可以部署到多个平台的语言.OpenFL与Flash有关.Flixel是一个帮助您制作游戏的库.

谁能纠正我/让它更清楚.

haxe openfl haxeflixel

19
推荐指数
2
解决办法
7397
查看次数

如何退出Haxe/OpenFL计划?

我正在使用Haxe,OpenFL(以前的NME)和HaxeFlixel进行游戏.

然而,问题是,我似乎无法找到一个很好的方法来制作一个Flixel按钮,按下时会关闭游戏.我打算在主菜单上点击"退出"按钮.

有没有简单的方法可以这样做,还是不可能?

haxe nme openfl haxeflixel

7
推荐指数
1
解决办法
3226
查看次数

Haxe是通过引用传递参数还是复制?

拿这个代码:

function createGUIHud():Void
{
    this.screen.gameHud = new NormalGameHud(10, 0, this.screen.getTextureAtlas());
    this.screen.gameHud.x = FlxG.width - (this.screen.gameHud.width + GameSize.getPositionByPlatform(10));
    this.screen.gameHud.y = GameSize.getPositionByPlatform(10);
}

// NormalGameHud.hx

public function new(lives:Int = 10, corn:Int = 0, textureAtlas:SparrowData) 
{
    super(0, 0, 30);
    this.lives = lives;
    this.cornCount = corn;
    this.textureAtlas = textureAtlas;

    this.createScoreboard();
    this.createLivesCount();
    this.createCornCounter();
}
Run Code Online (Sandbox Code Playgroud)

'textureAtlas'是通过引用传递还是被复制?

http://api.haxeflixel.com/flixel/util/loaders/SparrowData.html

我知道PHP通过引用传递对象,除非另有说明(以&为前缀),否则会复制像Arrays这样的东西.Haxe同样适用吗?

谢谢.

haxe haxeflixel

6
推荐指数
1
解决办法
1529
查看次数

实例化 FlxPoint 的正确方法

(我正在使用 HaxeFlixel 的 dev 分支)

要创建一个新FlxPoint变量,我可以做三件事之一......

var pt:FlxPoint = new FlxPoint();
var pt:FlxPoint = FlxPoint.weak();
var pt:FlxPoint = FlxPoint.get();
Run Code Online (Sandbox Code Playgroud)

通过阅读方法注释,我发现某种池化可能会加速创建FlxPoints。在什么情况下我应该使用这三种方式中的每一种来创建一个新的FlxPoint

我有几个函数要么接受FlxPoints 作为参数,要么返回它们。我应该复制FlxPoint它本身的作用,并.weak()用来创建它们,并.putWeak()回收传递给函数的点吗?

对我来说,它似乎.get()适用于长期变量(玩家开始位置、存储在数组中用于路径查找的点等),并且.weak()适用于临时变量(在函数中计算的中间值)。这是正确的吗?

haxe haxeflixel

6
推荐指数
1
解决办法
365
查看次数

HaxeFlixel Trace

第一天HaxeFlixel编码器.愚蠢的错误,但谷歌没有帮助我.

如何使用Haxe,NME和Flixel跟踪FlashDevelop输出.它在使用C++执行时有效,但对于Flash没有任何作用!

我试过了

trace("hello");
Lib.trace("hello"); //With correct imports
Run Code Online (Sandbox Code Playgroud)

对不起,现在感觉很蠢!

trace haxe flashdevelop haxeflixel

5
推荐指数
1
解决办法
2155
查看次数

序列化工作但反序列化崩溃

我正试图在我的HaxeFlixel游戏中设置一个保存功能.

一些背景:有问题的对象是一个Player扩展的实例FlxSprite.保存数据存储在我为其制作的自定义类的实例中.该实例存储在StringMap(键是保存名称)中,通过将其序列化为a中的变量来保存FlxSave.

创建保存数据并编写它可以正常工作.但是,重新读取保存数据会使消息"无效字段:像素"崩溃.pixels是一个来自FlxSprite的字段,但它不是序列化字符串中的第一个这样的字段,所以它可能不是那样的.

如果它有用,那个字段的声明是y6:pixelsn- 即:

  • y 开始一个名为......的字段
  • 6: 一串长度为6的字符串......
  • pixels (字符串)
  • n 空值

haxe haxeflixel

5
推荐指数
1
解决办法
97
查看次数

Haxe中的箭头运算符用法和其他变量类型相关问题

我正在学习使用Haxe语言的HaxeFlixel教程.现在我对Haxe没有任何经验,但是我决定勇敢地学习这个教程,因为我有Java和Haxe的经验,因为一种语言似乎与Java非常相似.

到目前为止,情况进展顺利.但是,我遇到了这段代码,我有几个问题:

 class FSM
 {
     public var activeState:Void->Void;

     public function new(?InitState:Void->Void):Void
     {
         activeState = InitState;
     }

     public function update():Void
     {
         if (activeState != null)
             activeState();
     }
 }
Run Code Online (Sandbox Code Playgroud)

现在我明白这是一个被调用的类,FSM并且有一个名为的变量activeState.

这是我的问题:

  1. 是什么类型的activeState?我会理解是否有类似activeState:Void->完成的内容是什么?它被用作指针吗?它是一个指向另一个void变量的void指针吗?

  2. 什么是?InitState:Void->Void意味着什么?

  3. 在if语句之后,activeState使用括号将其称为函数.但是,它activeState是一个变量而不是一个函数.那么if语句究竟做了什么呢?

还有一个问题:

public var playerPos(default, null):FlxPoint;
Run Code Online (Sandbox Code Playgroud)

我的理解playerPos是实例FlxPoint类,但到底是什么的defaultnull做的?

haxe haxeflixel

5
推荐指数
1
解决办法
281
查看次数

在HaxeFlixel中编码资产的最佳解决方案

我试图找到最好的解决方案来加扰或编码用HaxeFlixel编写的游戏的资产(特别是图像/纹理).在我的项目的根目录中有一个文件夹assets/images,这就是我存储的所有游戏纹理的位置.

如果我为桌面构建游戏,我的图像将保留在此文件夹中.

我如何编码我的纹理,以便在构建之后没人能看到它?

haxe lime openfl haxeflixel

3
推荐指数
1
解决办法
268
查看次数

如何在FlxGroup中更改FlxSprite的z-index?

我有一个异构的FlxGroup包含:10 FlxSprite和4 FlxText.我用add(obj)函数添加所有对象,并通过add函数确定它们的z-index.

我想在程序运行时动态更改我的FlxGroup中对象的z-index值(例如:单击鼠标).

我尝试过这样的事情:

  • this.setChildIndex(object,i)但是没有这样的函数
  • this.add(object)尝试添加已添加的对象

haxe z-index sprite haxeflixel

3
推荐指数
1
解决办法
581
查看次数

Haxe如何加快编译速度(选择最快的目标)

我目前正在使用Haxe,特别是haxeflixel用于开发.真正让我烦恼的一件事是构建/编译时间.我甚至没有编译到c ++目标,但决定编译到neko vm,因为我认为它可能更快.然而; neko debug(或release)的编译时间大约是4或5秒.每次我想看到一个结果时都要等这么久才会让它变得糟透了:).

我甚至尝试使用-v命令进行调试,占用时间最多的部分是:

Running command: BUILD
 - Copying library file:     

C:\HaxeToolkit\haxe\lib\lime/2,9,1/legacy/ndll/Windows/lime-legacy.ndll ->   export/windows/neko/
bin/lime-legacy.ndll

- Running command: haxe export/windows/neko/haxe/release.hxml
Run Code Online (Sandbox Code Playgroud)

从上面的摘录看,似乎一切都表现正常,这让我担心,因为我不希望正常这么慢.

现在4到5秒对一些人来说可能看起来不是很多,但是Golang,javascript,java和其他超级快速编译的语言在那里 - 我被宠坏了.还有另一个我可以编译的目标,我不知道哪个会比neko vm编译更快?有什么办法可以提高编译速度或进一步调试编译速度慢的原因吗?

haxe compilation haxelib haxeflixel

3
推荐指数
1
解决办法
713
查看次数

当 x>648 时 FlxG.collide 不起作用

所以我试图使用 HaxeFlixel 创建一个平台游戏,但我遇到了一个问题:在 FlxSprite 对象的x值超过 648 后,FlxG.collide似乎根本不起作用。是问题的gif。如您所见,当播放器x< 648 时它FlxG.collision工作正常,但当它变得更大时停止工作。

该级别由Wall扩展的类的对象组成,FlxSprite唯一的区别是它的构造函数加载墙图并将其immovable属性设置为true. FlxG.collide被称为player第一个参数,a FlxGroup(包含墙壁)作为第二个参数。我不确定这是否重要,但FlxState'ssuper.update之前已被调用FlxG.collide

haxe haxeflixel

3
推荐指数
1
解决办法
235
查看次数

在HaxeFlixel中旋转精灵

我在HaxeFlixel中遇到一些非常简单的问题,但我无法在网上找到任何一个引用.

我需要做的就是旋转一个FlxSprite.在线有多个.rotation可以设置的值的引用,但是我的精灵由于某种原因无法访问它.

任何人都可以帮到这里,我不知道从哪里开始.

我正在创建的图形是类型Player,它扩展FlxSprite并使用loadGraphic().

haxe rotation haxeflixel

2
推荐指数
1
解决办法
1936
查看次数

在Haxe中移动一系列变量

老实说,我不知道这个函数是如何被调用的(我确信它是一个简单的东西),我也不知道如何有效地搜索它(当我用谷歌搜索它时我没有找到它).

我在Haxe中有一组字符串变量调用

public static var variable01:String;
public static var variable02:String;
public static var variable03:String;

public static function TextContent() 
{
    variable01 = new String("abc");
    variable02 = new String("def");
    variable03 = new String("ghi");
}   
Run Code Online (Sandbox Code Playgroud)

还有一个显示变量中文本的函数

_message = variable01; 
_Dialogue = new FlxText(60, 400, 100, _message);
Run Code Online (Sandbox Code Playgroud)

当用户点击屏幕时,我希望显示中的变量更改为下一个.有没有办法简单地改变变量的数量?我需要能够为另一个对话框更改变量的文本,因为那时会有另一组具有相同模式的变量(text01,text02,text03等...)

string variables haxe haxeflixel

0
推荐指数
1
解决办法
123
查看次数