查看: 1715|回复: 3

[胡扯] 垃圾shitake又双叒叕写GUI了

[复制链接]
梦石
0
星屑
4623
在线时间
1207 小时
注册时间
2016-4-7
回帖
944

开拓者

发表于 2017-1-12 14:13:40 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
之前给VA造GUI的轮子,结果因为RMVA的捉急渲染效率而弃坑。

顺手写了短时间的js。折腾了会儿html5。然后就把这个大坑搬到了pixi.js + electron上。
自己用ES6重写了Bitmap(基本是在抄RM)和Sprite。
整个项目都是用ES6(然而因为想直接不用babel编译就能跑在electron上,所以使用ES6特性都是electron支持的【所以你会看到各种require)

然后内置资源加载(顺手连cache也管了)和i18n支持(提供了一个 '_(str, flag)' 函数)。

虽然项目的名字还是叫RGUI,介绍也写的是 RPG Maker GUI Framework,然而并不能直接在MV里跑。原因主要是MV用的是nwjs,而且RGUI用了C++扩展库(fibers)。

所以web和移动端就不用想了(或者重写一个不使用fibers的Svent?反正目前也没用到异步事件回调)。

对于桌面端,要么魔改RMMV,让她泡在electron里,这么做基本没难度,目前王二就是被我魔改后跑在electron里。再要么就是魔改RGUI了。也没啥难度,修改几处对electron的引用,然后把fibers用nwjs重新build一下(目前跑的fibers是我自己build的electron版)。

控件方面,完全能用的就只有ImageBox。有几个正在重写(之前渲染部分使用的RMMV的Sprite和BItmap)。反正写起来应该没啥难度,很快就能封装一堆控件出来。

项目地址:https://github.com/molingyu/rguijs
文档:https://molingyu.github.io/rguijs/

想尝尝鲜的可以 git clone 下来,然后 npm install && npm run start 。

[pre lang="javascript"]  let image = new RGUI.ImageBox({
    x: 100,
    y: 100,
    width: 400,
    height: 400,
    type: 0,
    focus: true,
    image: 'test'
  });

  image.eventManager.on('Right', {}, ()=>{ image.xScroll(5) });
  image.eventManager.on('Down', {}, ()=>{ image.yScroll(5) });
  image.eventManager.on('Left', {}, ()=>{ image.xScroll(-5) });
  image.eventManager.on('Up', {}, ()=>{ image.yScroll(-5) });
  image.eventManager.on('A', {}, ()=>{ image.x -= 10 });
  image.eventManager.on('D', {}, ()=>{ image.x += 10 });
  image.eventManager.on('W', {}, ()=>{ image.y -= 10 });
  image.eventManager.on('S', {}, ()=>{ image.y += 10 });

  stage.addChild(image);[/pre]

这是范例里的一段代码,创建了一个 ImageBox 控件,然后添加了一些事件。效果是按 wasd 移动整个ImageBox控件位置。按 ↑↓←→ 竖向和横向滚动图片框的内容。

点评

能说详细一点吗?fibers的作用只是包裹异步事件回调【确实同样的效果不用fiber也是可以。只不过这套代码最开始是从ruby迁移过去,所以没考虑太多  发表于 2017-1-13 23:19
虽然用到了fibers但是给人根本没有理解异步的感觉,有的需要一个promise的地方连fibers都没有  发表于 2017-1-13 21:52
electron好像是node.js的东西吧……虽然不懂但是好厉害啊……RM终于有能看的GUI代码了……  发表于 2017-1-12 15:14

评分

参与人数 1星屑 +66 收起 理由
MeowSnow + 66 虽然看不懂不过感觉好厉害啊

查看全部评分

附庸的附庸不是我的附庸,女儿的女儿还是我的女儿。CK2沉迷ing
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部