Giter VIP home page Giter VIP logo

luhaxe's Introduction

LuHaxe

LuHaxe是我的一个脑洞概念实现,它的目标是让程序员通过编写Haxe(与ActionScript、TypeScript极其相似的体验和手感),完成Unity3D环境中lua脚本的开发工作。胶水中的胶水,不会lua也能写一手好lua的胶水。

LuHaxe特点

  • 底层采用某大神的tolua,成熟稳定,重复造车轮子不是脑洞的目的。因此本框架具有tolua的全部特点。
  • 采用Haxe语言进行脚本编写,并“翻译”成lua执行,代替在tolua环境下进行lua脚本编写的传统开发模式。
  • Haxe是强类型的面向对象语言,具有完整的面向对象特性,包括但不限于继承、接口、抽象、g/setter、lambda、泛型模板等,详见Wiki。更贴合Java、C#等程序员的书写和设计习惯。
  • 支持HaxeDevelop(FlashDevelop)、VS Code等代码编辑工具,具有完善的代码提示、代码自动完成、Refactor、类型检测、编译时错误检测等。解决了当下lua开发中比较大的痛点,方便多人同步进行规模化开发。
  • 可通过trace输出日志的方式调试Haxe文件,亦可以通过tolua的调试机制调试生成的lua文件。
  • AS、TS、JS程序员可三分钟内上手。
  • 有成品的Haxe库和底层库不依赖tolua,如:PureMVC(MVC框架)Enitias(ECS框架)Protobuf(序列化)Bson(序列化)TCP/UDP Socket等。移植其他语言类库也比较容易。
  • Haxe可输出成多种主流语言,因此前后端通用的战斗逻辑可统一用Haxe进行编写,然后输出成服务器相对应的语言即可。

安装(Windows)


创建API映射

Haxe调用tolua需要进行API映射,本框架映射API非常简单:

  • tolua中的内容 (Vector3.lua)
function Vector3.New(x, y, z)				

	local t = {x = x or 0, y = y or 0, z = z or 0}

	setmetatable(t, Vector3)						

	return t

end
  • Haxe映射文件 (Vector3.hx)
package;

extern class Vector3 

{

	var x:Float;
	var y:Float;
	var z:Float;
	static function New(x:Float, y:Float, z:Float):Vector3;

}
  • 注意:由于haxe的翻译规则,通过“冒号”进行方法调用lua指令,需要将lua当成“点”的模式进行处理,参考UpdateBeat.hx。

项目进度

当前搭建好了脚手架,进行了可行性验证,但是还有大量API未映射,希望得到各位大神的帮助。

交流

QQ群:709673804   验证码:撸Haxe

luhaxe's People

Contributors

bjfumac avatar

Watchers

Jade avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.