赞 | 0 |
VIP | 0 |
好人卡 | 0 |
积分 | 0 |
经验 | 17619 |
最后登录 | 2016-7-17 |
在线时间 | 366 小时 |
Lv1.梦旅人
- 梦石
- 0
- 星屑
- 47
- 在线时间
- 366 小时
- 注册时间
- 2012-10-6
- 帖子
- 221
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
本帖最后由 电锤斧王 于 2013-3-4 13:00 编辑
- class Scene_Information<Scene_Base
- TITLE_WIDTH=544 #标题窗口的宽度
- TITLE_HEIGHT=50 #标题窗口的高度
- BOOK_NAME_WIDTH=100 #书的名字的窗口
- INFORMATION_WIDTH=444 #书窗口的宽度
- INFORMATION_HEIGHT=366 #书窗口的高度
- MAX_ROW_WORDS=20 #书窗口每行的最大字数
- def start
- super
- initialize_data #初始化一些所需的数据
- create_menu_background #创建菜单的背景
- create_information_window #创建显示信息的各种窗口
- end
-
- def initialize_data
- setSwitches={0=>10,1=>11,2=>12,3=>13,4=>14} #设置控制每本书是否显示的开关
- bookName=["操作系统","ps技巧","opengl指南","direct游戏编程","c++编程思想"]
- # 上一行设置书名
- information=["先帝创业未半而中道崩殂聊发少,先帝创业未半而中道崩殂聊发少
- 先帝创业未半而中道崩殂聊发少先帝创业未半而中道崩殂聊发少
- 先帝创业未半而中道崩殂聊发少先帝创业未半而中道崩殂聊发少
- 先帝创业未半而中道崩殂聊发少先帝创业未半而中道崩殂聊发少先帝创业未半而中道崩殂聊发少
- 先帝创业未半而中道崩殂聊发少先帝创业未半而中道崩殂聊发少
- 先帝创业未半而中道崩殂聊发少先帝创业未半而中道崩殂聊发少
- 先帝创业未半而中道崩殂聊发少先帝创业未半而中道崩殂聊发少
- 先帝创业未半而中道崩殂聊发少先帝创业未半而中道崩殂聊发少
- 先帝创业未半而中道崩殂聊发少先帝创业未半而中道崩殂聊发少
- 先帝创业未半而中道崩殂聊发少先帝创业未半而中道崩殂聊发少","bbbbbbbbbbbbbbbbbbb","ccccccccccccc","dddddddddddddd","ssssssssssssssssss"]
- #以上设置每本书的内容,第一本书的内容写进该数组的第一个位置,依次类推
- @nameArray=[] #显示时的书名数组
- @book=[] #将每本书的内容经过处理填入该数组
- for i in 0..bookName.size-1
- if $game_switches[setSwitches[i]]==true
- @nameArray[i]=bookName[i]
- infor_to_linesAndPages(information[i])
- @book.push(@pages)
- else
- @nameArray[i]="未解锁"
- end
- end
-
- end
-
- def terminate
- super
- dispose_menu_background
- dispose_information_window
- end
-
- def create_information_window
- @title_winodw=Window_Base.new(0,0,544,50)
-
- @book_name_window=Window_Command.new(100,@nameArray)
- @book_name_window.y=50
-
- @information_window=Window_Information.new(100,50,444,366)
- @information_window.visible=false
-
-
- end
-
- def dispose_information_window
- @title_winodw.dispose
- @book_name_window.dispose
- @information_window.dispose
-
- end
-
- def update
- super
- if @book_name_window.active
- update_bookNameWindow
- end
-
- if @information_window.visible==true
- update_informationWindow
- end
-
-
- if Input.trigger?(Input::B)
- Sound.play_cancel
- if @book_name_window.active==false
- @book_name_window.active=true
- @information_window.visible=false
- else
- $scene=Scene_Menu.new
- end
- end
-
- end
-
- def update_bookNameWindow
- @indexOfPages=0
- @book_name_window.update
- if Input.trigger?(Input::C)
- Sound.play_decision
- if @nameArray[@book_name_window.index]=="未解锁"
- @information_window.visible=false
- else
- @information_window.visible=true
- @information_window.draw_page(@indexOfPages,@book[@book_name_window.index],@nameArray[@book_name_window.index])
- @book_name_window.active=false
- end
- end
-
- end
-
- def infor_to_linesAndPages(information)
- @inforlines=[]
- @pages=[]
- inforline=""
- page=[]
- wordCount=0
- lineCount=0
- loop do
- c=information.slice!(/./m)
- if c==nil
- break
- end
-
- if c!="\n"
-
-
- if wordCount<MAX_ROW_WORDS
- wordCount+=1
- else
- @inforlines.push(inforline)
- wordCount=1
- inforline=""
- end
- inforline+=c
-
- else
- if wordCount==1
- wordCount+=3
- else
- @inforlines.push(inforline)
- wordCount=0
- inforline=""
- end
- end
-
- end
- @inforlines.push(inforline)
- for i in [email protected]
- if lineCount<9
- lineCount+=1
- else
- @pages.push(page)
- page=[]
- lineCount=1
- end
- page.push(@inforlines[i])
-
- end
- @pages.push(page)
-
- end
- def update_informationWindow
- if Input.trigger?(Input::LEFT)&&@indexOfPages>0
- @indexOfPages-=1
- @information_window.contents.clear
- @information_window.draw_page(@indexOfPages,@book[@book_name_window.index],@nameArray[@book_name_window.index])
- end
- if Input.trigger?(Input::RIGHT)&&@indexOfPages<@book[@book_name_window.index].size
- @indexOfPages+=1
- if @indexOfPages>@book[@book_name_window.index].size-1
- @indexOfPages=@book[@book_name_window.index].size-1
- end
- @information_window.contents.clear
- @information_window.draw_page(@indexOfPages,@book[@book_name_window.index],@nameArray[@book_name_window.index])
- end
-
- end
-
-
-
- end
- class Window_Information<Window_Base
- TEXTHEIGHT=24 #信息窗口中文字行高
-
-
- def initialize(x,y,width,height)
- super(x,y,width,height)
- end
-
-
- def draw_page(numberOfPages,pages,bookname) #画文字的函数每次画一页文字
- text_x=0
- text_y=24
- self.contents.draw_text(160,0,444,TEXTHEIGHT,bookname)
- for i in 0..pages[numberOfPages].size-1
- self.contents.draw_text(text_x,text_y,444,TEXTHEIGHT,pages[numberOfPages][i])
- text_y+=TEXTHEIGHT
- end
-
- end
-
- end
复制代码 这是一个简单的图书系统 本来是给一个朋友做的。但是由于寒假拖了点时间朋友已经自制完成了一个,我就想把我的这个发了,大家交流一下
setSwitches={0=>10,1=>11,2=>12,3=>13,4=>14} #设置控制每本书是否显示的开关
bookName=["操作系统","ps技巧","opengl指南","direct游戏编程","c++编程思想"]
# 上一行设置书名
information=["先帝创业未半而中道崩殂聊发少,先帝创业未半而中道崩殂聊发少
先帝创业未半而中道崩殂聊发少先帝创业未半而中道崩殂聊发少
先帝创业未半而中道崩殂聊发少先帝创业未半而中道崩殂聊发少
先帝创业未半而中道崩殂聊发少先帝创业未半而中道崩殂聊发少先帝创业未半而中道崩殂聊发少
先帝创业未半而中道崩殂聊发少先帝创业未半而中道崩殂聊发少
先帝创业未半而中道崩殂聊发少先帝创业未半而中道崩殂聊发少
先帝创业未半而中道崩殂聊发少先帝创业未半而中道崩殂聊发少
先帝创业未半而中道崩殂聊发少先帝创业未半而中道崩殂聊发少
先帝创业未半而中道崩殂聊发少先帝创业未半而中道崩殂聊发少
先帝创业未半而中道崩殂聊发少先帝创业未半而中道崩殂聊发少","bbbbbbbbbbbbbbbbbbb","ccccccccccccc","dddddddddddddd","ssssssssssssssssss"]
#以上设置每本书的内容,第一本书的内容写进该数组的第一个位置,依次类推
说一下用法 以上是关键的敌法
setSwitches这里设置每本书是否可见所对应的开关,例子里第一本对应10号开关依次类推
bookName这里设置每本书的书名
information 设置每本书的具体内容。
有需要帮助的请联系我 |
|