在Haxe中,关于主类的命名有什么规定?

问题描述 投票:0回答:1

haxe.org的主页 - 有一个剪刀石头布的游戏编码在里面的一个 class Game.

我下载了HaxeDevelop编辑器,并创建了一个新项目。当我进入 src/ 在这个项目的文件夹中,有一个文件 Main.hx 含有这个骨架

package;

import js.Lib;

/**
 * ...
 * @author Terrence Brannon
 */
class Main 
{

    static function main() 
    {

    }

}

我想知道我是否应该将类从 MainGame 以及Haxe项目的入口点类的命名规则。

haxe
1个回答
4
投票

类名需要以大写字母开头,后面跟着字母a-z或A-Z(下划线也可以使用)。

当你在终端调用 haxe 命令时,你可以定义你的主类,并在后面加上参数对,如主类的名称,-main Main。

https:/haxe.orgmanualcompiler-usage.html。

你可以把你的类放在一个文件夹里,然后在你的类上面的顶行加上'package folderName;',然后你就可以用haxe来调用它。

haxe -main folderName.Main ...add other compiler property pairs.

所以'Game'是一个有效的名字。 一个重要的细节是,Haxe程序需要一个启动静态函数,这个函数总是被命名为'main',这可以用来创建类。

class Game {
    static function main(){ new Game(); } // need a main static function.
    public function new(){
        // actual game class starts.
        trace( 'game started');
    }
}

通常情况下,我们不会把所有的编译器参数写在命令行上,而是把它们放在一个以.hxml为扩展名的文件中,即:compile.hxml。

https:/haxe.orgmanualcompiler-usag-hxml.html。

一些跨平台工具包使用json或xml定义来代替,有时还使用工具来创建这些而不是直接运行haxe编译器,这是因为他们做了一些额外的事情,比如为你把所有的资产放在输出文件夹中,并处理一些方面,比如针对c++或js的一般设置,而不必有不同的hxml文件。

例如,一个流行的跨平台图形库,用于浏览器、桌面和移动设备,就是openfl,它在这里描述了它的构建工具。

https:/lime.softwaredocscommand-line-toolscreate-new-project。

不幸的是,所有的跨目标游戏工具包都使用了不同的构建过程,但其他haxe用户总是很乐意解释。

和Haxe用户交流的好地方是在haxe的discord服务器上,我想这个链接可能会有用。

https:/discord.ggAgt3sJA。

主要跨目标--图形丰富(适合游戏)的Haxe工具箱。

对于做传统的web开发,你可以直接以js为目标,但Haxe也提供了一些框架,如。

显然,你可以使用Electron(或Krom见Kha)来制作nodejs应用。- https:/github.comtonghxelectron。

我不太清楚具体的PHP、Java、C#、Lua、Python库要提什么,但一般的Haxe的库似乎很受欢迎,对所有目标都很有用。

并不是所有的东西,但我想到了一些有用的链接。

关于Haxe的一般教程,有很多地方,但也许一个好的开始是通过烹饪书。


1
投票

你可以按照自己的意愿命名你的入口点类。

  • 如果你的文件叫Main.hx,你应该在运行时使用 haxe -main Main.
  • 如果你的文件叫Game.hx,你应该在运行时使用 haxe -main Game.
  • 如果你的文件叫Test.hx,你应该用下面的命令运行它。haxe -main Test.
  • ...等等

如果你使用FlashDevelop,你必须将该文件设置为入口点。在项目管理器中右击,选择 "文档类"。这也会给它一个不同的图标(绿色)。 entry point in HaxeDevelop

没有标准的命名惯例,因为它可能取决于你的应用程序做什么。我见过Main,Application,Test,但也有更高级的名字。

https:/haxe.orgmanualcompiler-usag-hxml.html

注意,不能在类内为静态入口点函数使用不同的名称。 这始终是 static function main() { }.

© www.soinside.com 2019 - 2024. All rights reserved.