设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 3093|回复: 7
打印 上一主题 下一主题

[原创发布] GamJack 基础游戏对象 [更新Beta 1版本]

[复制链接]

Lv3.寻梦者

梦石
0
星屑
1912
在线时间
1554 小时
注册时间
2013-4-13
帖子
917
跳转到指定楼层
1
发表于 2020-12-14 04:43:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 沉滞的剑 于 2020-12-18 14:00 编辑

GamJack
GamJack 是一个万能的对象-属性系统
通过拦截属性的和读取/写入, 创建支持任意数量, 任意关联的属性的对象.

目标
1. 响应式属性
   如果一个属性依赖于另一个属性的值
   当你更新被依赖的属性时, 依赖于这个属性的值会自动发生变化

2. 元编程
  通过数据重新定义对象和属性行为, 突破RM数据库的限制
  可以规格化从外部文件中导入游戏定义

3. 可序列化
  存档/读档以后的对象都可以复原, 包括Formula函数
  适合作为游戏对象使用

4. 计算缓存
  当计算时, 如果环境没有发生变化, 则返回上一次保存的值
  提高复杂计算时的效率

5. 属性代理
  可以拦截对原生对象的属性访问,
  可以部分选择性地替换原对象的功能, 无缝对接, 兼容万物

版本更新
Alpha1 (12/14/2020):
  • 增加属性缓存
Alpha2 (12/16/2020):
  • 重构Formula
  • 优化缓存逻辑
  • 修复缓存bug
Beta1 (12/18/2020):
  • 新增方法属性Action
  • 重写API
  • 添加属性代理功能


gamjack_beta_1.zip (8.34 KB, 下载次数: 98)





夏普的道具店

塞露提亚-道具屋的经营妙方同人作品
发布帖:点击这里

Lv3.寻梦者

梦石
0
星屑
1912
在线时间
1554 小时
注册时间
2013-4-13
帖子
917
来自 5楼
 楼主| 发表于 2020-12-14 20:26:11 | 只看该作者
本帖最后由 沉滞的剑 于 2020-12-18 14:04 编辑

Beta 1 版本更新说明

重新调整API, 增加了可以调用的Action属性, 并且加入属性代理功能

也就是说可以自定一个对象代理一个原本存在的游戏对象的部分属性

下面是简单的使用例子, 我通过代理添加了一个影响攻击力的属性力量, 每有1点力量, 攻击力增加1点.
主要是劫持了原有Game_Actor的param方法


  1. {
  2.   const { Formula, Action, GameObjectTemplate } = GamJack.classes;

  3.   {
  4.     // 创建对象属性和方法
  5.     new Formula('计算-攻击力', '力量 + self.atk');
  6.     new Formula('设置-攻击力', 'Math.round(value)');
  7.     new Action('动作-物理伤害', 'return atk - 目标.def', ['目标']);
  8.     new Action(
  9.       '代理-param',
  10.       `
  11.       if (paramId === 2) return atk
  12.       return self.param(paramId)
  13.     `,
  14.       ['paramId']
  15.     );
  16.     new GameObjectTemplate(
  17.       '角色',
  18.       {
  19.         力量: { defaultValue: 1 },
  20.         atk: { getter: '计算-攻击力' },
  21.       },
  22.       {
  23.         物理伤害: '动作-物理伤害',
  24.         param: '代理-param',
  25.       }
  26.     );

  27.     // 代理原对象
  28.     const actor = GameObjectTemplate.create('角色');
  29.     GamJack.addObject('actor', actor);
  30.     actor.proxyPath = '$gameActors._data.1';
  31.     actor.proxyObject();
  32.   }

  33.   console.log($gameActors.actor(1).atk);
  34.   console.log($gameActors.actor(1).物理伤害({ def: 23 }));
  35. }
复制代码
夏普的道具店

塞露提亚-道具屋的经营妙方同人作品
发布帖:点击这里
回复 支持 0 反对 1

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3348
在线时间
277 小时
注册时间
2019-4-23
帖子
202
2
发表于 2020-12-14 09:59:13 | 只看该作者
膜拜!!!!!!!!!

评分

参与人数 1+1 收起 理由
574656549 + 1 精品文章

查看全部评分

回复 支持 反对

使用道具 举报

头像被屏蔽

Lv2.观梦者 (禁止发言)

梦石
0
星屑
724
在线时间
918 小时
注册时间
2010-11-13
帖子
1023
3
发表于 2020-12-14 16:34:29 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
14625
在线时间
718 小时
注册时间
2011-7-16
帖子
1428

开拓者

4
发表于 2020-12-14 18:31:32 | 只看该作者
沉滞的剑大佬这也太牛了吧,这很低层呀,给拓展开了
RMMV网络插件,开源免费,内含服务器端,无需强制登录,云数据,弹幕,云存档,排名,兑换码,版本检测,可自由上架下架删除。q群399090587
免打包运行MV游戏,云游戏,安卓App雷神游戏厅,在线玩游戏,上传下载游戏
开源游戏:重装机兵之重装归来【RMMV制作】全球首款按照美剧分季分集的方式发布的游戏
体素画 -- MV画3D像素图的画板
RMMV显示3D模型和场景的插件
RMMV显示spine骨骼动画的插件
RMMV秘密通道插件
突破敌群数量上限8个的插件
在rmmv中显示gif动态图片的插件
一款可以在mv游戏界面的任意位置显示任意文字的插件
RMMV Toast 插件 带物品得失提示,可以设置开启关闭 兼容yep itemcore
制作一个改名卡道具插件、调整标题页面菜单的插件、在标题页面之前显示大段文字的插件、标题页面显示版本号的插件
物品得失自动提示自动上色自动换行插件
我的Q群 663889472
另外,我的插件、范例、游戏都在这里
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
222
在线时间
29 小时
注册时间
2020-12-2
帖子
3
6
发表于 2020-12-15 20:17:51 | 只看该作者
好东西!
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
25
在线时间
4 小时
注册时间
2022-2-22
帖子
30
7
发表于 2022-2-27 21:32:02 | 只看该作者
看起来很有用的样子 下来看看~
回复 支持 反对

使用道具 举报

Lv2.观梦者

故九江太守

梦石
0
星屑
612
在线时间
2167 小时
注册时间
2012-12-5
帖子
4464
8
发表于 2024-6-4 01:16:03 | 只看该作者
能说说怎么用吗
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-21 23:45

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表