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

Project1

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

[已经过期] 这种文字游戏(?)的样式可以通过怎样的方式做出来?

[复制链接]

Lv6.析梦学徒

梦石
56
星屑
14892
在线时间
3853 小时
注册时间
2016-6-17
帖子
1051

极短24参与开拓者

跳转到指定楼层
1
发表于 2016-11-17 14:37:43 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x

玩pony island的时候不知道为什么就被这种出来一排字,输入正确的内容继续进程,全程都是文字描述的模式给戳中萌点了(啥)
不过想了想用事件的话貌似之前的句子不会显示出来,貌似也没有类似的脚本?
请问有什么办法可以实现这种样式的画面吗

Lv6.析梦学徒

老鹰

梦石
40
星屑
34745
在线时间
6741 小时
注册时间
2012-5-26
帖子
3259

极短24评委极短23参与极短22参与极短21评委老司机慢点开短篇十吟唱者组别冠军开拓者剧作品鉴家

2
发表于 2016-11-17 15:54:35 | 只看该作者
本帖最后由 百里_飞柳 于 2016-11-17 16:03 编辑

额,我只知道一个更加高级点的实现

是出现在 steam 的 va 的 dlc “RPGMakerDS+PCK” 中
Scripts文件夹下 Zalerinian文件夹下 的 DS+ Zscripts Demo里面的

文字输入框脚本
# Script: Window_TextBox
# Version: 1.0.0
# Last Update: July 21st, 2013
# Author: Zalerinian (~ZF)



控制台脚本
# Script: Console
# Version: 1.0.0
# Last Update: July 25th, 2013
# Author: Zalerinian (~ZF)



我看了下实现方法,文字输入框脚本是直接调用系统api,再给主键盘(不包括小键盘)写了一一映射,这样新建这个文字输入框便能接受主键盘的按键,然后能调取输入的全部信息作为字符串处理并读入到变量。
而控制台脚本是直接内置了部分字符串命令(将特定输入和其调用函数绑定为hash表),也就是每加入一个字符串命令都要写出一个对应函数并且将它们间的映射加入到默认的全局命令hash表中;控制台窗口自带文字从上至下压栈式插入及瞬时显示(未处理成一个字符一个字符显示,估计是作者觉得没必要)。

再截两张脚本图直观点(字符串与对应的函数名映射加入到hash表中;紫色的就是字符串,输入或显示在窗口里的提示信息那种):



对了,这控制台一看就是仿照老滚5之类的游戏的功能写的。

所以我觉得如果要做你说的那种的话,可以有点参考。

因为是之前捆绑包送的DLC,我也就不上传例子什么的了,可以去steam搜下看看。

点评

好触!  发表于 2016-12-12 18:10
嘛,关键点就几个啦,识别并获取键盘输入,对输入字符串进行检索并匹配对应函数功能,然后显示反馈文字  发表于 2016-11-17 16:16
我现在已经完全惊了(泪)  发表于 2016-11-17 15:59
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (暗夜天使)

只有笨蛋才会看到

梦石
1
星屑
21686
在线时间
9420 小时
注册时间
2012-6-19
帖子
7119

开拓者短篇九导演组冠军

3
发表于 2016-11-17 16:44:33 | 只看该作者
唯一的难点在于获取玩家键盘的输入,需要用win32api,其余的只是看起来很高大上,实现起来很简单,
创建需要的总行数的 sprite ,然后单纯的更新 sprite 的位置即可实现按行展示和按行翻页了

点评

活捉喵大!  发表于 2016-11-18 09:02
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (暗夜天使)

只有笨蛋才会看到

梦石
1
星屑
21686
在线时间
9420 小时
注册时间
2012-6-19
帖子
7119

开拓者短篇九导演组冠军

4
发表于 2016-11-17 17:06:53 | 只看该作者
本帖最后由 喵呜喵5 于 2016-11-17 17:16 编辑
  1. module M5Console20161117
  2.   class Line < Sprite
  3.     def initialize(height, offset, index, view=nil)
  4.       super(view)
  5.       @line_height = height
  6.       @offset = offset
  7.       self.bitmap = Bitmap.new(Graphics.width, height)
  8.       self.index = index
  9.     end
  10.     def index=(index)
  11.       self.y = (@offset + @line_height) * index
  12.     end
  13.     def draw(text = nil)
  14.       self.bitmap.clear
  15.       self.bitmap.draw_text(0,0,Graphics.width,@line_height,text) if text
  16.     end
  17.     def dispose
  18.       super
  19.       self.bitmap.dispose
  20.     end
  21.   end
  22.   class Screen
  23.     def initialize
  24.       @lines = Array.new(line_total)do |i|
  25.         Line.new(line_height, line_offset, i)
  26.       end
  27.       @index = 3
  28.     end
  29.     def line_total; 10; end
  30.     def line_height; 24; end
  31.     def line_offset; 1; end
  32.     def draw(text)
  33.       if @index == line_total
  34.         @lines.push(@lines.shift)
  35.         @lines.each_with_index{|l,i| l.index = i}
  36.         @lines[@index-1].draw(text)
  37.       else
  38.         @lines[@index].draw(text)
  39.         @index += 1
  40.       end
  41.     end
  42.     def clear
  43.       @index = 0
  44.       @lines.each(&:draw)
  45.     end
  46.     def dispose
  47.       @lines.each(&:dispose)
  48.     end
  49.   end
  50.   # 测试界面
  51.   class Scene < Scene_Base
  52.     def start
  53.       super
  54.       @screen = Screen.new
  55.     end
  56.     def update
  57.       super
  58.       if Input.trigger?(:C)
  59.         @screen.draw("本行内容#{rand}")
  60.       end
  61.       return_scene if Input.trigger?(:B)
  62.     end
  63.     def terminate
  64.       super
  65.       @screen.dispose
  66.     end
  67.   end
  68.   def self.open
  69.     SceneManager.call(Scene)
  70.   end
  71. end
复制代码

稍微写了一段范例代码,用
M5Console20161117.open
打开界面看具体效果
回复 支持 1 反对 0

使用道具 举报

Lv6.析梦学徒

梦石
56
星屑
14892
在线时间
3853 小时
注册时间
2016-6-17
帖子
1051

极短24参与开拓者

5
 楼主| 发表于 2016-11-17 17:37:03 | 只看该作者
本帖最后由 Arfies 于 2016-11-17 17:41 编辑
喵呜喵5 发表于 2016-11-17 17:06
稍微写了一段范例代码,用
M5Console20161117.open
打开界面看具体效果



按一次z会有一次这个出来,然后x就退出去了?有点懵
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (暗夜天使)

只有笨蛋才会看到

梦石
1
星屑
21686
在线时间
9420 小时
注册时间
2012-6-19
帖子
7119

开拓者短篇九导演组冠军

6
发表于 2016-11-17 17:55:46 | 只看该作者
Arfies 发表于 2016-11-17 17:37
按一次z会有一次这个出来,然后x就退出去了?有点懵

这个是代码思路的演示,不是实际可以使用的脚本
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-26 12:43

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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