Project1
标题:
用RGM做了个方便小巧的内嵌命令行输入框
[打印本页]
作者:
zlyl_wiley
时间:
2023-8-5 22:54
标题:
用RGM做了个方便小巧的内嵌命令行输入框
本帖最后由 zlyl_wiley 于 2023-8-6 22:31 编辑
RGM是自带了控制台的,但那个好像并不能用来输入命令,只能干瞪着(还是我不会用啊?)
没事,里面不还自带了个TextBox么,所以自己做一下也很简单,出来效果还不错,随时输入指令都不用动一下鼠标
虽然依赖于RGM,但即使最终不用RGM,只要工程跟它不冲突的都可以用这个来做测试,因为用起来真的超方便
1.jpg
(790.89 KB, 下载次数: 31)
下载附件
保存到相册
2023-8-5 22:57 上传
2.jpg
(839.69 KB, 下载次数: 36)
下载附件
保存到相册
2023-8-5 22:57 上传
真正用的时候可以先在脚本里预设一些指令,名字简短一点,类似这样:
def imm
for actor in $game_party.actors
actor.immortal = true
end
end
def win
for enemy in $game_troop.enemies
enemy.hp = 0
end
end
def g n
$game_party.gain_gold(n)
$scene = Scene_Menu.new if $scene.class == Scene_Menu
end
复制代码
脚本:
#==============================================================================
# ■ RGM专用CLI输入框 v1.0.1
#------------------------------------------------------------------------------
# 使用说明:
# 脚本插入 Main 前。此功能依赖于 RGM(1.0.4) ,其它 runtime 运行时不会加载。
# 在以下指定的 Scene 中按 Alt 键呼出输入框,输入指令后按 Enter 键立刻执行,
# Esc 键为清空内容,若中途想退出控制台,直接清空后按回车键即可。
# 上、下键可以切换输入框的显示位置。
#
# Wiley 2023.8.5
#==============================================================================
if defined? RGM
# 数组中是需要添加输入框的 Scene ,可自行增删
$add_cli_scenes = [
Scene_Title,
Scene_Map,
Scene_Menu,
Scene_Item,
Scene_Skill,
Scene_Equip,
Scene_Status,
Scene_Battle,
Scene_Shop,
Scene_Debug
]
module RGM
module Ext
module Window
module_function
def wiley_get_width
@@width
end
def wiley_get_height
@@height
end
end
class TextBox
attr_accessor :sprite
end
end
end
class Window_CLI < Window_Base
def initialize
super(16, 16, RGM::Ext::Window::wiley_get_width - 32, 64)
self.back_opacity = 200 # 背景透明度设置
end
end
$add_cli_scenes.each do |scene|
scene.alias_method :wiley_old_update, :update
scene.send :define_method, :update do
if $tbox
if Input.trigger?(Input::DOWN)
$tbox.sprite.y = RGM::Ext::Window::wiley_get_height - $winc.height
$winc.y = $tbox.sprite.y - 16
elsif Input.trigger?(Input::UP)
$winc.y = 16
$tbox.sprite.y = 32
end
$tbox.update
unless $tbox.active
eval $tbox.last_text
$winc.dispose
$winc = $tbox = nil
end
elsif Input.trigger?(23) # 呼出按键设置
$winc = Window_CLI.new
$winc.z = 10010
$tbox = RGM::Ext::TextBox.new
$tbox.set_rect(32, 32, RGM::Ext::Window::wiley_get_width - 64, 32)
# $tbox.default_text = 'p "hi"' # 这里可以设置默认输入内容
$tbox.background_color = Color.new(0, 0, 0, 0)
$tbox.text_color = Color.new(255, 255, 255, 255)
$tbox.enable
else
wiley_old_update
end
end
end
end
复制代码
作者:
enghao_lim
时间:
2023-8-8 17:08
这个想法非常好,要是可以直接预设一些基本指令非脚本党调试就会更易了了。比如果说增减物品,等级之类。。。
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1