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

Project1

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

[已经解决] 怎样修改暂停标记的帧数?

 关闭 [复制链接]

Lv1.梦旅人

神之瞳

梦石
0
星屑
60
在线时间
5 小时
注册时间
2009-7-5
帖子
314
跳转到指定楼层
1
发表于 2009-12-20 21:54:52 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式

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

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

x
RT,暂停标记。在消息窗口中表示等待按钮输入的状态下使用。为 16×16 含 4 种图形的动画。
因为默认就4种图形,我想让他变成自定义帧数,就像这张图这样:

如果可以的话最好让它移到右下角


注:因本人还要上学,所以星期一至星期六可能不能回复,望回答的诸位耐心等待……

九月三日

  有时我真不理解,怎么有另一个人能够爱她,可以爱她,殊不知我爱她爱得如此真切,如此忘情,如此情意缱倦,除了她我什么也不了解,什么也不知道,什么也没有呀!
——摘自《少年维特之烦恼》

谨以 纪念一段消逝了的感情
ILY ZXY

NOIp什么的最讨厌了!

啊……讨厌,为什么我的网盘全部坏掉了……
zoomshare恢复了,虚惊一场
可恶的skydrive,我XX你的OO,竟把我的帐号封了!

Lv1.梦旅人

神之瞳

梦石
0
星屑
60
在线时间
5 小时
注册时间
2009-7-5
帖子
314
3
 楼主| 发表于 2009-12-27 10:08:24 | 只看该作者
  1. #==============================================================
  2. # 更改暂停标记的位置 BY 水蓝 修改 BY God's Eyes
  3. # 更改了显示文章中暂停标记的位置,此脚本暂停标记的的位置是
  4. # 跟在对话后
  5. #
  6. # 如果你想要自己更改请搜索
  7. # @sprite_pause.x @sprite_pause.y
  8. # 自己调坐标即可
  9. # WAIT_COUNT 为暂停标记动画的快慢
  10. #==============================================================
  11. module PAUSE
  12. WAIT_COUNT = 2
  13. end
  14. class Sprite_Pause < Sprite
  15. def initialize
  16. super
  17. self.bitmap = RPG::Cache.windowskin("光标.png")
  18. self.z = 9999
  19. self.x=480-56
  20. self.y=160-56
  21. @index = 0
  22. @wait_count = 0
  23. update
  24. end

  25. def update
  26. super
  27. if @wait_count > 0 then
  28. @wait_count -= 1
  29. else
  30. @index = (@index + 1) % 30
  31. if @index>=1 && @index<=30
  32. self.src_rect.set(24*@index-24, 0,24,24)
  33. else
  34.   self.src_rect.set(720-24, 0,24,24)
  35. end
  36. @wait_count = PAUSE::WAIT_COUNT
  37. end
  38. end
  39. end
  40. class Window_Message < Window_Selectable
  41. #--------------------------------------------------------------------------
  42. # ● 初始化状态
  43. #--------------------------------------------------------------------------
  44. def initialize
  45. super(80, 304, 480, 160)
  46. self.contents = Bitmap.new(width - 32, height - 32)
  47. self.visible = false
  48. self.z = 9998
  49. @fade_in = false
  50. @fade_out = false
  51. @contents_showing = false
  52. @cursor_width = 0
  53. self.active = false
  54. self.index = -1
  55. @sprite_pause = Sprite_Pause.new
  56. @sprite_pause.visible = false
  57. $t = 0
  58. $n = 0
  59. end
  60. #--------------------------------------------------------------------------
  61. # ● 释放
  62. #--------------------------------------------------------------------------
  63. def dispose
  64. terminate_message
  65. @sprite_pause.dispose
  66. $game_temp.message_window_showing = false
  67. if @input_number_window != nil
  68. @input_number_window.dispose
  69. end
  70. super
  71. end
  72. #--------------------------------------------------------------------------
  73. # ● 处理信息结束
  74. #--------------------------------------------------------------------------
  75. def terminate_message
  76. self.active = false
  77. self.pause = false
  78. self.index = -1
  79. self.contents.clear
  80. # 清除显示中标志
  81. @contents_showing = false
  82. # 呼叫信息调用
  83. if $game_temp.message_proc != nil
  84. $game_temp.message_proc.call
  85. end
  86. # 清除文章、选择项、输入数值的相关变量
  87. $game_temp.message_text = nil
  88. $game_temp.message_proc = nil
  89. $game_temp.choice_start = 99
  90. $game_temp.choice_max = 0
  91. $game_temp.choice_cancel_type = 0
  92. $game_temp.choice_proc = nil
  93. $game_temp.num_input_start = 99
  94. $game_temp.num_input_variable_id = 0
  95. $game_temp.num_input_digits_max = 0
  96. # 开放金钱窗口
  97. if @gold_window != nil
  98. @gold_window.dispose
  99. @gold_window = nil
  100. end
  101. @sprite_pause.visible = false
  102. end
  103. #--------------------------------------------------------------------------
  104. # ● 刷新
  105. #--------------------------------------------------------------------------
  106. def refresh
  107. self.contents.clear
  108. self.contents.font.color = normal_color
  109. x = y = 0
  110. @cursor_width = 0
  111. # 到选择项的下一行字
  112. if $game_temp.choice_start == 0
  113. x = 8
  114. end
  115. # 有等待显示的文字的情况下
  116. if $game_temp.message_text != nil
  117. text = $game_temp.message_text
  118. # 限制文字处理
  119. begin
  120. last_text = text.clone
  121. text.gsub!(/\\[Vv]\[([0-9]+)\]/) { $game_variables[$1.to_i] }
  122. end until text == last_text
  123. text.gsub!(/\\[Nn]\[([0-9]+)\]/) do
  124. $game_actors[$1.to_i] != nil ? $game_actors[$1.to_i].name : ""
  125. end
  126. # 为了方便、将 "\\\\" 变换为 "\000"
  127. text.gsub!(/\\\\/) { "\000" }
  128. # "\\C" 变为 "\001" に、"\\G" 变为 "\002"
  129. text.gsub!(/\\[Cc]\[([0-9]+)\]/) { "\001[#{$1}]" }
  130. text.gsub!(/\\[Gg]/) { "\002" }
  131. # c 获取 1 个字 (如果不能取得文字就循环)
  132. @sprite_pause_x = 0
  133. @sprite_pause_y = 0
  134. @c = 0
  135. while ((c = text.slice!(/./m)) != nil)
  136. # \\ 的情况下
  137. if c == "\000"
  138. # 还原为本来的文字
  139. c = "\\"
  140. end
  141. # \C[n] 的情况下
  142. if c == "\001"
  143. # 更改文字色
  144. text.sub!(/\[([0-9]+)\]/, "")
  145. color = $1.to_i
  146. if color >= 0 and color <= 7
  147. self.contents.font.color = text_color(color)
  148. end
  149. # 下面的文字
  150. next
  151. end
  152. # \G 的情况下
  153. if c == "\002"
  154. # 生成金钱窗口
  155. if @gold_window == nil
  156. @gold_window = Window_Gold.new
  157. @gold_window.x = 560 - @gold_window.width
  158. if $game_temp.in_battle
  159. @gold_window.y = 192
  160. else
  161. @gold_window.y = self.y >= 128 ? 32 : 384
  162. end
  163. @gold_window.opacity = self.opacity
  164. @gold_window.back_opacity = self.back_opacity
  165. end
  166. # 下面的文字
  167. next
  168. end
  169. # 另起一行文字的情况下
  170. if c == "\n"
  171. # 刷新选择项及光标的高
  172. if y >= $game_temp.choice_start
  173. @cursor_width = [@cursor_width, x].max
  174. end
  175. # y 加 1
  176. y += 1
  177. x = 0
  178. # 移动到选择项的下一行
  179. if y >= $game_temp.choice_start
  180. x = 8
  181. end
  182. if y > @sprite_pause_y then
  183. @sprite_pause_y = y
  184. @sprite_pause_x = 0
  185. @c = 0
  186. if x > @sprite_pause_x then
  187. @sprite_pause_x = x
  188. end
  189. end
  190. # 下面的文字
  191. next
  192. end
  193. # 描绘文字
  194. self.contents.draw_text(4 + x, 32 * y, 40, 32, c)
  195. # x 为要描绘文字的加法运算
  196. x += self.contents.text_size(c).width
  197. if x > @sprite_pause_x then
  198. if c =~ /\[a-z]/ then
  199. @c += 2
  200. elsif c =~ /\D/ then
  201. @c += 3.5
  202. else
  203. @c += 4
  204. end
  205. @sprite_pause_x = x
  206. end
  207. $t = @sprite_pause_x
  208. $n = @c
  209. end
  210. end
  211. # 选择项的情况
  212. if $game_temp.choice_max > 0
  213. @item_max = $game_temp.choice_max
  214. self.active = true
  215. self.index = 0
  216. end
  217. # 输入数值的情况
  218. if $game_temp.num_input_variable_id > 0
  219. digits_max = $game_temp.num_input_digits_max
  220. number = $game_variables[$game_temp.num_input_variable_id]
  221. @input_number_window = Window_InputNumber.new(digits_max)
  222. @input_number_window.number = number
  223. @input_number_window.x = self.x + 8
  224. @input_number_window.y = self.y + $game_temp.num_input_start * 32
  225. end
  226. end
  227. #--------------------------------------------------------------------------
  228. # ● 刷新画面
  229. #--------------------------------------------------------------------------
  230. def update
  231. super
  232. @sprite_pause.update
  233. # 渐变的情况下
  234. if @fade_in
  235. self.contents_opacity += 24
  236. if @input_number_window != nil
  237. @input_number_window.contents_opacity += 24
  238. end
  239. if self.contents_opacity == 255
  240. @fade_in = false
  241. end
  242. return
  243. end
  244. # 输入数值的情况下
  245. if @input_number_window != nil
  246. @input_number_window.update
  247. # 确定
  248. if Input.trigger?(Input::C)
  249. $game_system.se_play($data_system.decision_se)
  250. $game_variables[$game_temp.num_input_variable_id] =
  251. @input_number_window.number
  252. $game_map.need_refresh = true
  253. # 释放输入数值窗口
  254. @input_number_window.dispose
  255. @input_number_window = nil
  256. terminate_message
  257. end
  258. return
  259. end
  260. # 显示信息中的情况下
  261. if @contents_showing
  262. # 如果不是在显示选择项中就显示暂停标志
  263. if $game_temp.choice_max == 0
  264. @sprite_pause.visible = true
  265. self.pause = false
  266. end
  267. # 取消
  268. if Input.trigger?(Input::B)
  269. if $game_temp.choice_max > 0 and $game_temp.choice_cancel_type > 0
  270. $game_system.se_play($data_system.cancel_se)
  271. $game_temp.choice_proc.call($game_temp.choice_cancel_type - 1)
  272. terminate_message
  273. end
  274. end
  275. # 确定
  276. if Input.trigger?(Input::C)
  277. if $game_temp.choice_max > 0
  278. $game_system.se_play($data_system.decision_se)
  279. $game_temp.choice_proc.call(self.index)
  280. end
  281. terminate_message
  282. end
  283. return
  284. end
  285. # 在渐变以外的状态下有等待显示的信息与选择项的场合
  286. if @fade_out == false and $game_temp.message_text != nil
  287. @contents_showing = true
  288. $game_temp.message_window_showing = true
  289. reset_window
  290. refresh
  291. @sprite_pause.x = 640-120
  292. @sprite_pause.y = 480-48
  293. #p @sprite_pause.x,@sprite_pause.y
  294. Graphics.frame_reset
  295. self.visible = true
  296. self.contents_opacity = 0
  297. if @input_number_window != nil
  298. @input_number_window.contents_opacity = 0
  299. end
  300. @fade_in = true
  301. return
  302. end
  303. # 没有可以显示的信息、但是窗口为可见的情况下
  304. if self.visible
  305. @fade_out = true
  306. self.opacity -= 48
  307. if self.opacity == 0
  308. self.visible = false
  309. @fade_out = false
  310. $game_temp.message_window_showing = false
  311. end
  312. return
  313. end
  314. end
  315. end
复制代码
求人不如求己……
搞定,共享……

九月三日

  有时我真不理解,怎么有另一个人能够爱她,可以爱她,殊不知我爱她爱得如此真切,如此忘情,如此情意缱倦,除了她我什么也不了解,什么也不知道,什么也没有呀!
——摘自《少年维特之烦恼》

谨以 纪念一段消逝了的感情
ILY ZXY

NOIp什么的最讨厌了!

啊……讨厌,为什么我的网盘全部坏掉了……
zoomshare恢复了,虚惊一场
可恶的skydrive,我XX你的OO,竟把我的帐号封了!
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
6860
在线时间
1666 小时
注册时间
2008-10-29
帖子
6710

贵宾

2
发表于 2009-12-21 14:13:46 | 只看该作者
除了重新写Window类貌似没别的办法

具体有2个脚本可以参考

1.完全的重写Window类
http://rpg.blue/viewthread.php?tid=101829&highlight=Window
2.改变那个标记的位置的专门的脚本.(修改这个脚本就能解决你的问题)
http://rpg.blue/viewthread.php?tid=100825&highlight=%2Bdbshy

P.S.要会在论坛里找东西呀哎....











你知道得太多了

回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-12-1 04:59

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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