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

Project1

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

[胡扯] 没有任何技术含量的控制台

[复制链接]

Lv4.逐梦者

梦石
0
星屑
9617
在线时间
566 小时
注册时间
2017-9-28
帖子
208
跳转到指定楼层
1
发表于 2019-2-3 16:43:40 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
好久不开论坛,冒个泡



这次【胡扯】主要有三件事:

  • 抄一个控制台,启用 ANSI 控制符(添加颜色之类的)
  • 抄一个后台运行
  • 写一个初学者都会写的轮询文件

cat_rep.7z (1.33 MB, 下载次数: 97) (文件限制 2M 还行,刚好塞一个 RGSS301.dll,双击 run.cmd 即可)

我电脑是 win10,不保证其他环境能正常运行。以下是实现细节不看也罢:



1.1 直接抄 taroxd 的简易调试控制台
1.2 启用 ANSI 控制符其实十分简单,执行下面三行 win32api 调用即可(api 的实现见 api.rb,其实就是普通的 Win32API.new(...).call)
  1. stdout = api('kernel32', 'GetStdHandle').call(-11)
  2. api('kernel32', 'GetConsoleMode').call(stdout, buf('L'))
  3. api('kernel32', 'SetConsoleMode').call(stdout, buf[0] | 4)
复制代码
如何使用 ANSI 控制符可以看这篇 wiki

2 直接抄 SixRC 的后台运行脚本
2.0.1 为了和 RGD 兼容,做如下处理(见 bgr.rb)
  1. if defined? RGD
  2.   Graphics.background_exec = true
  3. else
  4.   # 原后台运行脚本
  5. end
复制代码


3 有了上面两个东西,发现还是不能一边在控制台里打字一边运行游戏,

这是因为游戏控制台和 Game.exe 是同一个线程,同时只能有一个在运行
所以想到开两个 rgss 进程,一个是游戏本身,另一个是控制台

不同进程之间的交流有很多种方法,比如共享内存、管道、UDP、甚至 HTTP(可以利用不死鸟之翼的 AsHttp.dll)
这里用一个十分睿智的办法:游戏进程循环读取一个文件,一旦(判断文件内容)有消息传过来,就去做相应的处理并把结果保存到文件

贴在游戏里的脚本,见 main.rb
“控制台”里的脚本,见 console.rb

以上就是,游戏本体里只贴一份轮询脚本,另一份工程跑一个控制台

既然是跑控制台那就不需要什么游戏框了,直接掏一个 RGSSEval 出来用(rgss.exe)就好了(见 rgss.c)。


结语:这个东西的好处大概是不需要外部再装什么 ruby 了()

以上冒泡完毕

评分

参与人数 2+2 收起 理由
Mono_kyrin + 1 精品文章
VIPArcher + 1 被触瞎

查看全部评分

喵喵喵

Lv4.逐梦者

梦石
0
星屑
13559
在线时间
2753 小时
注册时间
2014-10-4
帖子
756

R考场第七期纪念奖

2
发表于 2019-2-4 05:24:28 | 只看该作者
console.zip (712.05 KB, 下载次数: 106)
我也写了一个!

那个控制台是拿 c 写的
控制台和 rgss 的交流通过 NamedPipe
读指令 传指令 指令eval 传回去结果 显示结果 读指令
输入LL就是接收几行直到LL
错误了是直接p出来 然后返回 nil
就实现了这些基本的功能
不过学到了很多东西 还是挺有意思的(??)
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (管理员)

老黄鸡

梦石
0
星屑
39645
在线时间
7484 小时
注册时间
2009-7-6
帖子
13483

开拓者贵宾

3
发表于 2019-2-4 09:20:55 | 只看该作者
无敌的喵喵喵,令人发指
RGDirect - DirectX驱动的RGSS,点我了解.
RM全系列成套系统定制请联系QQ1213237796
不接受对其他插件维护的委托
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-4-25 06:56

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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