扫描二维码关注官方公众号
返回列表
+ 发新帖
查看: 169|回复: 0

[转载发布] [RMXP] 真·后台运行(2009/11/25 重要更新)

[复制链接]
累计送礼:
0 个
累计收礼:
0 个
  • TA的每日心情
    开心
    5 小时前
  • 签到天数: 114 天

    连续签到: 4 天

    [LV.6]常住居民II

    2338

    主题

    403

    回帖

    1万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    VIP
    6
    卡币
    10607
    OK点
    16
    推广点
    0
    同能卷
    0
    积分
    13376

    灌水之王

    发表于 2024-4-19 16:39:06 | 显示全部楼层 |阅读模式


    2009/06/11:
      更新了在窗口失去键盘焦点时不再响应键盘。如果用了全键盘检测脚本,请自行在判断按键等方法中做类似 Input.update 中的 if 判断


    2009/07/14:
      修正了窗口不在键盘焦点时按键按下仍然保持失去焦点前状态的问题(例:地图上按住 ←,切换到其它窗口,角色就会一直保持左移)


    2009/09/01:
      不再使用夏娜的 RM 窗口过程脚本,而是采用了 XP 和 VX 通用的后台运行 DLL(详情请参考 [RMVX] 真·后台运行) 添加对 Input.trigger? 的键盘焦点判断 在范例工程中增加了后台运行的开关功能演示


    2009/11/25:
      改变后台运行 DLL 为静态链接 C 运行时(CRT),这样在没有安装 CRT 的平台上也能使用该 DLL。这个改变增加了约 5 倍于原 DLL 的文件大小


    后台运行原理:
    惊人地简单,以前大家可能都想复杂了

    由于有 Graphics.update 调用后就无法后台运行的这个现象,我们可以推测出 Graphics.update 是 RMXP 处理 Windows 消息的函数,消息循环很可能就在 Graphics.update 内部~当窗口过程函数中捕获到某个窗口失去键盘焦点时会发送给窗口过程的消息,整个程序就停止了。

    那么自然而然地就会想到,如果我们把这个消息拦截了,Graphics.update 岂不是就发现不了 RMXP 的窗口失去了焦点,而就会继续更新画面了吗?

    于是开始动手——首先要用到夏娜大人写的 RM 窗口过程,让我们能在 Graphics.update 之前处理消息~不过这个消息是什么呢?

    一开始我以为是 WM_ACTIVATE,但是拦截后发现无效;于是试了 WM_ACTIVATEAPP,于是,见证了奇迹……

    请务必保留 Lib 文件夹 以及其中的 BackgroundRunning.dll
                 本帖来自P1论坛作者紫苏,因Project1站服务器在国外有时候访问缓慢不方便作者交流学习,经联系P1站长fux2同意署名转载一起分享游戏制作经验,共同为国内独立游戏作者共同创造良好交流环境,原文地址:https://rpg.blue/forum.php?mod=viewthread&tid=126922  若有侵权,发帖作者可联系底部站长QQ在线咨询功能删除,谢谢。

    本帖子中包含更多资源

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

    x
    天天去同能,天天有童年!
    回复 送礼论坛版权

    使用道具 举报

    文明发言,和谐互动
    文明发言,和谐互动
    高级模式
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    关闭

    幸运抽奖

    社区每日抽奖来袭,快来试试你是欧皇还是非酋~

    立即查看

    聊天机器人
    Loading...

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

    GMT+8, 2025-3-14 23:12 , Processed in 0.106656 second(s), 55 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

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