赞 | 0 |
VIP | 1 |
好人卡 | 11 |
积分 | 1 |
经验 | 17928 |
最后登录 | 2018-9-22 |
在线时间 | 461 小时 |
Lv1.梦旅人
- 梦石
- 0
- 星屑
- 55
- 在线时间
- 461 小时
- 注册时间
- 2008-11-19
- 帖子
- 607
|
3楼
楼主 |
发表于 2012-5-18 19:37:58
|
只看该作者
本帖最后由 sai90306 于 2012-5-18 20:34 编辑
orzfly 发表于 2012-5-18 17:02
‘‘──orzfly于2012-5-18 17:51补充以下内容
那是因为你需要对 Input 和 Graphics 进行刷新。
目前是改成這樣子...
是在(據說已退出R界?)藍藍小雪大人的模組裡增加一個def
(因為藍藍小雪大人原本腳本的部分對這個問題應該沒有影響 為了避免版面佔用就先不付上來了)
這腳本有三個窗口
@text_window : 純粹顯示文字用 可以不理會
@sortcommand_window : 用來重新排列選單
@sort_window : 被重新排列後的選單
想要做到的效果是...
(LOOP1)
@sortcommand_window 一開始active = true
@sort_window一開始active = false
選擇@sortcommand_window的任何一個選項按C後
@sortcommand_window.active = false
@sort_window.active = true
然後(LOOP2)
如果在@sort_window的任何一個選項按C
就傳回returnval = @sort_window.index
如果按B
@sortcommand_window.active = true
@sort_window.active = false
跳出本循環(LOOP2)
如果按B
跳出本循環(LOOP1)
類似這這樣子的- module BlueSnow
- end
- module BlueSnow::RMWindows
- #--------------------------------------------------------------------------
- # ● 脚本 (sortbox)
- #--------------------------------------------------------------------------
- def sortbox(text,width,commands,lists)
- returnval=-1
- Graphics.update
- @text_window = Window_Base_Sai.new(160,72,320,240)
- @text_window.opacity = 0
- @text_window.contents = Bitmap.new(288,208)
- @text_window.z=9999
- @sort_window = Window_Sort.new(width,commands,lists)
- @sort_window.x = 160
- @sort_window.y = 312
- @sort_window.opacity = 0
- @sort_window.z=9999
- @sort_window.active = false
- s41 = "name_sort"
- s42 = "name_reverse"
- s43 = "age_sort"
- s44 = "age_reverse"
- s45 = "height_sort"
- s46 = "height_reverse"
- @sortcommand_window = Window_Command.new(160, [s41, s42, s43, s44, s45, s46])
- @sortcommand_window.x = 0
- @sortcommand_window.y = 312
- @sortcommand_window.opacity = 0
- @sortcommand_window.z=9999
- @sortcommand_window.active = true
-
- i=0
- begin
- loop do
- @text_window.contents.draw_text(0,32 * i,288,32,text.split(/\\n/)[i])
- i+=1
- end
- rescue
- end
- for i in 0...32
- @text_window.opacity = 8 * i
- @text_window.update
- @sort_window.opacity = 8 * i
- @sort_window.update
- @sortcommand_window.opacity = 8 * i
- @sortcommand_window.update
- Graphics.update
- end
- catch(:loop1){
- loop do
- @text_window.update
- @sort_window.update
- @sortcommand_window.update
- Graphics.update
- Input.update
- if Input.trigger?(Input::C)
- case @sortcommand_window.index
- when 0 #
- lists.sort!{|a,b|
- a.name <=> b.name}
- when 1 #
- lists.sort!{|a,b|
- b.name <=> a.name}
- when 2 #
- lists.sort!{|a,b|
- a.age <=> b.age}
- when 3 #
- lists.sort!{|a,b|
- b.age <=> a.age}
- when 4 #
- lists.sort!{|a,b|
- a.height <=> b.height}
- when 5 #
- lists.sort!{|a,b|
- b.height <=> a.height}
- end
- @sort_window.refresh(commands,lists)
- @sortcommand_window.active = false
- @sort_window.active = true
- @sort_window.index = -1
- catch(:loop2){
- #迴圈2
- loop do
- if @sort_window.active == true
- if Input.trigger?(Input::C)
- returnval = @sort_window.index
- throw :loop1
- end
- if Input.trigger?(Input::B)
- @sort_window.active = false
- throw :loop2
- end
- end
- end
- }
- end
- if Input.trigger?(Input::B)
- throw :loop1
- break
- end
- end
- }
- for i in 0...32
- @text_window.opacity = 256 - (8 * i)
- @text_window.update
- @sort_window.opacity = 256 - (8 * i)
- @sort_window.update
- @sortcommand_window.opacity = 256 - (8 * i)
- @sortcommand_window.update
- Graphics.update
- end
- @text_window.dispose
- @sort_window.dispose
- @sortcommand_window.dispose
- Graphics.update
- Input.update
- return returnval
- end
- end
复制代码 ��� |
|