查看: 99|回复: 0

[转载发布] 事件独立数据Game_SelfData

[复制链接]
  • TA的每日心情
    开心
    2024-5-10 09:55
  • 签到天数: 37 天

    连续签到: 3 天

    [LV.5]常住居民I

    2028

    主题

    32

    回帖

    7260

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    VIP
    0
    卡币
    5184
    OK点
    16
    积分
    7260
    发表于 同元九百九十六年三月五日(春) | 显示全部楼层 |阅读模式
    研究过程中搞出来的小玩具...
    可以将Event的数据永久保存到全局, 和独立开关的使用方法一致
    可以存储任意类型的数据
    大概率也有其他类似的插件吧
    理论上应该是MV/MZ通用


    JAVASCRIPT 代码
    1. {
    2.   class Game_SelfData extends Game_SelfSwitches {
    3.     setValue(key, value) {
    4.       this._data[key] = value;
    5.       this.onChange();
    6.     }
    7.     value(key) {
    8.       return this._data[key];
    9.     }
    10.   }
    11.   window.Game_SelfData = Game_SelfData;
    12. }
    13. {
    14.   const temp = DataManager.createGameObjects;
    15.   DataManager.createGameObjects = () => {
    16.     temp();
    17.     $gameSelfData = new Game_SelfData();
    18.   };
    19. }
    20. {
    21.   const temp = DataManager.makeSaveContents;
    22.   DataManager.makeSaveContents = () => {
    23.     const contents = temp();
    24.     contents.selfData = $gameSelfData;
    25.     return contents;
    26.   };
    27. }
    28. {
    29.   const temp = DataManager.extractSaveContents;
    30.   DataManager.extractSaveContents = (contents) => {
    31.     console.log(contents.selfData);
    32.     temp(contents);
    33.     $gameSelfData = contents.selfData;
    34.   };
    35. }
    复制代码


    使用方法, 在事件中插入脚本:

    例子:记录数据
    JAVASCRIPT 代码
    1. const event = $gameMap.event(this._eventId);
    2. const key = [this._mapId, this._eventId, 'pos'];
    3. $gameSelfData.setValue(key, [event.x, event.y, event.direction()]);
    复制代码


    例子:读取数据

    JAVASCRIPT 代码
    1. const event = $gameMap.event(this._eventId);
    2. const key = [this._mapId, this._eventId, 'pos'];
    3. const [x, y, d] = $gameSelfData.value(key);
    4. event.setPosition(x, y)
    5. event.setDirection(d)
    复制代码

                 本帖来自P1论坛作者沉滞的剑,因Project1站服务器在国外有时候访问缓慢不方便作者交流学习,经联系P1站长fux2同意署名转载一起分享游戏制作经验,共同为国内独立游戏作者共同创造良好交流环境,原文地址:https://rpg.blue/forum.php?mod=viewthread&tid=484135  若有侵权,发帖作者可联系底部站长QQ在线咨询功能删除,谢谢。
    天天去同能,天天有童年!
    回复 论坛版权

    使用道具 举报

    ahome_bigavatar:guest
    ahome_bigavatar:welcomelogin
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|Archiver|手机版|小黑屋|同能RPG制作大师 ( 沪ICP备12027754号-3 )

    GMT+8, 2024-5-20 10:59 , Processed in 0.046210 second(s), 41 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

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