Project1

标题: 实现那种系统弹窗效果 [打印本页]

作者: GOODLATTICE    时间: 2022-11-23 09:17
标题: 实现那种系统弹窗效果
使用又一立绘对话框系统时发现的奇妙用法。
因为其切换表情时不能切换到其他角色,切换时会弹出一个“不是同一角色!”的系统提示窗口,点确定后游戏可以继续运行
所以我想可不可以把脚本里的这行“不是同一角色”改成别的文字,然后达到某种跨越第三面墙的代(sheng)入(cao)效果这样的。
使用的时候故意切换立绘弹出窗口,譬如说一个角色是机器人,这样就会有趣的多

大脑.exe无响应.jpg

不过这样做也有坏处,就是只能弹出一个,而且内容只能是一样的
有人想写一个吗()
作者: 灯笼菜刀王    时间: 2022-11-23 09:34
1, 你没经历过当年的360大战企鹅时代吧, 笑,  玩游戏的时候频繁弹窗的后果, 可下个360全家桶体验下
2, 你不全屏玩游戏的吧, 笑
作者: 百里_飞柳    时间: 2022-11-23 11:06
系统提示窗口在f1帮助文档里有写
就是 msgbox(t)
其中 t 是任意字符串
你可以在事件脚本里试试写 msgbox("我就要粗暴弹出一个确认框!")
作者: 89444640    时间: 2022-11-23 13:03
本帖最后由 89444640 于 2022-11-23 13:05 编辑

玩游戏必全屏而且全键盘或者手柄的表示,玩日式rpg你居然敢让我还拿鼠标点确定!
作者: 截心手    时间: 2022-11-23 21:10
这种信息框主要是调试用,rmxp的话格式是 p “字符串”(p后有空格) ,就会弹出了。

mv的话可以调用js的输入框,让玩家看到提示再打字互动,这样就不会太唐突。可以用来做一个简单的许愿功能
作者: 哇哇哇啊叭叭    时间: 2022-11-29 11:22

  f1里有写吧!?这个功能?

作者: SailCat    时间: 2022-11-29 12:36
可以做成沉浸式的,利用游戏本身的对话框,无非就是独占式update而已
以xp为例,将update写在initialize里,
伪代码如下:
  1. class Window_MessageBox < Window_Selectable
  2.     # ● 对话框结果值常量
  3.     DR_NONE             = 0               # 无效 值
  4.     DR_OK               = 1               # 确定 值
  5.     DR_CANCEL           = 2               # 取消 值
  6.     DR_ABORT            = 3               # 中止 值
  7.     DR_RETRY            = 4               # 重试 值
  8.     DR_IGNORE           = 5               # 忽略 值
  9.     DR_YES              = 6               # 是 值
  10.     DR_NO               = 7               # 否 值
  11.     # ● 对话框按钮组合,完全仿真系统对话框的所有组合
  12.     MB_OK               = [DR_OK]         
  13.     MB_OC               = [DR_OK, DR_CANCEL]
  14.     MB_ARI              = [DR_ABORT, DR_RETRY, DR_IGNORE]
  15.     MB_YN               = [DR_YES, DR_NO]
  16.     MB_YNC              = [DR_YES, DR_NO, DR_CANCEL]
  17.     MB_RC               = [DR_RETRY, DR_CANCEL]
  18.   attr_reader   :result                   # 对话框结果返回值
  19.   def initialize(text, caption, buttons = MB_OK, icon_name = "", index = 0)
  20.     super(0, 0, 640, 480)
  21.     # 把窗口上的东西画出来
  22.     create_contents
  23.     refresh
  24.     # 把按钮的光标矩形定义好
  25.     self.index = index
  26.     # 对话框置顶并隐藏
  27.     self.z += 9999
  28.     self.opacity = 0
  29.     # 独占更新
  30.     loop do
  31.       Graphics.update
  32.       Input.update
  33.       update
  34.       break if @result != DR_NONE and self.opacity == 0
  35.     end
  36.     # 释放
  37.     dispose
  38.   end
  39.   def update
  40.     if self.opacity < 255 and @result == DR_NONE
  41.       self.opacity += 15
  42.       return
  43.     end
  44.     # 处理左右键,移动光标选项
  45.     # 处理B和C键,设置@result返回值
  46.     if self.opacity > 0 and @result != DR_NONE
  47.       self.opacity -= 15
  48.       return
  49.     end
  50.   end
  51. end
复制代码

调用的时候直接像vc++那样
  1. #只提示,不要返回值
  2. Window_MessageBox.new(msg, "提示“)

  3. #需要(不同的)按钮返回值就可以
  4. if Window_MessageBox.new(msg, "提示", MB_YNC).result == DR_YES then
  5.   #......
  6. end
复制代码





欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1