项目作者: nommiin

项目描述 :
A GML to GML transpiler that adds support for lightweight objects in the form of arrays
高级语言: JavaScript
项目地址: git://github.com/nommiin/GMLux.git
创建时间: 2018-01-26T16:05:59Z
项目社区:https://github.com/nommiin/GMLux

开源协议:MIT License

下载


GMLux

A GMLux to GML transpiler that adds support for lightweight objects in the form of arrays

GMLux Language

GMLux stands for GameMaker L(anguage)uxury, where the luxury is the ability to use lightweight objects in GM!

Example:

  1. #define main
  2. object oPlayer = {
  3. x: 32,
  4. y: 32,
  5. speed: 8
  6. };
  7. #define step
  8. if (keyboard_check(vk_left) == true) {
  9. oPlayer.x -= oPlayer.speed;
  10. } else if (keyboard_check(vk_right) == true) {
  11. oPlayer.x += oPlayer.speed;
  12. }
  13. if (keyboard_check(vk_up) == true) {
  14. oPlayer.y -= oPlayer.speed;
  15. } else if (keyboard_check(vk_down) == true) {
  16. oPlayer.y += oPlayer.speed;
  17. }
  18. #define draw
  19. draw_rectangle(oPlayer.x - 8, oPlayer.y - 8, oPlayer.x + 8, oPlayer.y + 8, false);

transpiles into:

  1. #define main
  2. /*GMLuxCreate*/ oPlayer = [/*x*/32, /*y*/32, /*speed*/8];
  3. #define step
  4. if (keyboard_check(vk_left) == true) {
  5. oPlayer[/*x*/0] -= oPlayer[/*speed*/2];
  6. } else if (keyboard_check(vk_right) == true) {
  7. oPlayer[/*x*/0] += oPlayer[/*speed*/2];
  8. }
  9. if (keyboard_check(vk_up) == true) {
  10. oPlayer[/*y*/1] -= oPlayer[/*speed*/2];
  11. } else if (keyboard_check(vk_down) == true) {
  12. oPlayer[/*y*/1] += oPlayer[/*speed*/2];
  13. }
  14. #define draw
  15. draw_rectangle(oPlayer[/*x*/0] - 8, oPlayer[/*y*/1] - 8, oPlayer[/*x*/0] + 8, oPlayer[/*y*/1] + 8, false);