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

Project1

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

[RMVX发布] 一个简单的图书的系统

[复制链接]

Lv1.梦旅人

梦石
0
星屑
47
在线时间
366 小时
注册时间
2012-10-6
帖子
221
跳转到指定楼层
1
 楼主| 发表于 2013-2-28 11:53:32 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 电锤斧王 于 2013-3-4 13:00 编辑
  1. class Scene_Information<Scene_Base
  2.   TITLE_WIDTH=544                     #标题窗口的宽度
  3.   TITLE_HEIGHT=50                      #标题窗口的高度
  4.   BOOK_NAME_WIDTH=100                 #书的名字的窗口
  5.   INFORMATION_WIDTH=444               #书窗口的宽度
  6.   INFORMATION_HEIGHT=366              #书窗口的高度
  7.   MAX_ROW_WORDS=20                    #书窗口每行的最大字数
  8.   def start
  9.     super
  10.     initialize_data                   #初始化一些所需的数据
  11.     create_menu_background            #创建菜单的背景
  12.     create_information_window         #创建显示信息的各种窗口
  13.   end
  14.   
  15.   def initialize_data
  16.     setSwitches={0=>10,1=>11,2=>12,3=>13,4=>14}     #设置控制每本书是否显示的开关
  17.     bookName=["操作系统","ps技巧","opengl指南","direct游戏编程","c++编程思想"]
  18.     # 上一行设置书名
  19.     information=["先帝创业未半而中道崩殂聊发少,先帝创业未半而中道崩殂聊发少
  20.     先帝创业未半而中道崩殂聊发少先帝创业未半而中道崩殂聊发少
  21.     先帝创业未半而中道崩殂聊发少先帝创业未半而中道崩殂聊发少
  22.     先帝创业未半而中道崩殂聊发少先帝创业未半而中道崩殂聊发少先帝创业未半而中道崩殂聊发少
  23.     先帝创业未半而中道崩殂聊发少先帝创业未半而中道崩殂聊发少
  24.     先帝创业未半而中道崩殂聊发少先帝创业未半而中道崩殂聊发少
  25.     先帝创业未半而中道崩殂聊发少先帝创业未半而中道崩殂聊发少
  26.     先帝创业未半而中道崩殂聊发少先帝创业未半而中道崩殂聊发少
  27.     先帝创业未半而中道崩殂聊发少先帝创业未半而中道崩殂聊发少
  28.     先帝创业未半而中道崩殂聊发少先帝创业未半而中道崩殂聊发少","bbbbbbbbbbbbbbbbbbb","ccccccccccccc","dddddddddddddd","ssssssssssssssssss"]
  29.     #以上设置每本书的内容,第一本书的内容写进该数组的第一个位置,依次类推
  30.     @nameArray=[]             #显示时的书名数组
  31.     @book=[]                  #将每本书的内容经过处理填入该数组
  32.     for i in 0..bookName.size-1
  33.       if $game_switches[setSwitches[i]]==true
  34.         @nameArray[i]=bookName[i]
  35.         infor_to_linesAndPages(information[i])
  36.         @book.push(@pages)
  37.       else
  38.         @nameArray[i]="未解锁"
  39.       end
  40.     end
  41.    
  42.   end
  43.   
  44.   def terminate
  45.     super
  46.     dispose_menu_background
  47.     dispose_information_window
  48.   end
  49.   
  50.   def create_information_window
  51.     @title_winodw=Window_Base.new(0,0,544,50)
  52.    
  53.     @book_name_window=Window_Command.new(100,@nameArray)
  54.     @book_name_window.y=50
  55.    
  56.     @information_window=Window_Information.new(100,50,444,366)
  57.     @information_window.visible=false
  58.    
  59.    
  60.   end
  61.   
  62.   def dispose_information_window
  63.     @title_winodw.dispose
  64.     @book_name_window.dispose
  65.     @information_window.dispose
  66.    
  67.   end
  68.   
  69.   def update
  70.     super
  71.     if @book_name_window.active
  72.       update_bookNameWindow
  73.     end
  74.    
  75.     if @information_window.visible==true
  76.       update_informationWindow
  77.     end
  78.    
  79.    
  80.     if Input.trigger?(Input::B)
  81.        Sound.play_cancel
  82.       if @book_name_window.active==false
  83.         @book_name_window.active=true
  84.         @information_window.visible=false
  85.       else
  86.         $scene=Scene_Menu.new
  87.       end
  88.     end
  89.   
  90.   end
  91.   
  92.   def update_bookNameWindow
  93.     @indexOfPages=0
  94.     @book_name_window.update
  95.     if Input.trigger?(Input::C)
  96.       Sound.play_decision
  97.       if @nameArray[@book_name_window.index]=="未解锁"
  98.         @information_window.visible=false
  99.       else
  100.         @information_window.visible=true
  101.         @information_window.draw_page(@indexOfPages,@book[@book_name_window.index],@nameArray[@book_name_window.index])
  102.         @book_name_window.active=false
  103.       end
  104.     end
  105.    
  106.   end
  107.   
  108.   def infor_to_linesAndPages(information)
  109.     @inforlines=[]
  110.     @pages=[]
  111.     inforline=""
  112.     page=[]
  113.     wordCount=0
  114.     lineCount=0
  115.     loop do
  116.       c=information.slice!(/./m)
  117.       if c==nil
  118.         break
  119.       end
  120.       
  121.       if c!="\n"
  122.         
  123.         
  124.           if wordCount<MAX_ROW_WORDS
  125.             wordCount+=1
  126.           else
  127.             @inforlines.push(inforline)
  128.             wordCount=1
  129.             inforline=""
  130.           end
  131.             inforline+=c
  132.         
  133.       else
  134.         if wordCount==1
  135.           wordCount+=3
  136.         else
  137.           @inforlines.push(inforline)
  138.           wordCount=0
  139.           inforline=""
  140.         end
  141.       end
  142.    
  143.     end
  144.     @inforlines.push(inforline)
  145.     for i in [email protected]
  146.       if lineCount<9
  147.         lineCount+=1
  148.       else
  149.         @pages.push(page)
  150.         page=[]
  151.         lineCount=1
  152.       end
  153.        page.push(@inforlines[i])
  154.       
  155.     end
  156.     @pages.push(page)
  157.    
  158.   end
  159.   def update_informationWindow
  160.     if Input.trigger?(Input::LEFT)&&@indexOfPages>0
  161.       @indexOfPages-=1
  162.       @information_window.contents.clear
  163.        @information_window.draw_page(@indexOfPages,@book[@book_name_window.index],@nameArray[@book_name_window.index])
  164.     end
  165.     if Input.trigger?(Input::RIGHT)&&@indexOfPages<@book[@book_name_window.index].size
  166.       @indexOfPages+=1
  167.           if @indexOfPages>@book[@book_name_window.index].size-1
  168.             @indexOfPages=@book[@book_name_window.index].size-1
  169.           end
  170.       @information_window.contents.clear   
  171.        @information_window.draw_page(@indexOfPages,@book[@book_name_window.index],@nameArray[@book_name_window.index])
  172.     end
  173.    
  174.   end
  175.   
  176.   
  177.   
  178. end








  179. class Window_Information<Window_Base
  180.   TEXTHEIGHT=24                        #信息窗口中文字行高
  181.   
  182.   
  183.   def initialize(x,y,width,height)
  184.     super(x,y,width,height)
  185.   end
  186.   
  187.   
  188.   def draw_page(numberOfPages,pages,bookname) #画文字的函数每次画一页文字
  189.     text_x=0
  190.     text_y=24

  191.     self.contents.draw_text(160,0,444,TEXTHEIGHT,bookname)
  192.     for i in 0..pages[numberOfPages].size-1
  193.       self.contents.draw_text(text_x,text_y,444,TEXTHEIGHT,pages[numberOfPages][i])
  194.       text_y+=TEXTHEIGHT
  195.     end
  196.    
  197.   end
  198.   
  199. 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 设置每本书的具体内容。
有需要帮助的请联系我

效果图.PNG (304.45 KB, 下载次数: 19)

效果图.PNG

图书馆.rar

240.58 KB, 下载次数: 122

Lv1.梦旅人

梦石
0
星屑
47
在线时间
366 小时
注册时间
2012-10-6
帖子
221
2
 楼主| 发表于 2013-2-28 12:05:14 | 只看该作者
这个脚本的可以用来显示一些可搜集的信息,设置对应的开关可以控制这些信息的显示,
回复 支持 反对

使用道具 举报

Lv1.梦旅人

萌萌的小笼包

梦石
0
星屑
50
在线时间
193 小时
注册时间
2012-4-30
帖子
652
3
发表于 2013-2-28 20:26:16 | 只看该作者
来张效果图吧
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
45 小时
注册时间
2012-11-19
帖子
10
4
发表于 2013-3-3 11:44:19 | 只看该作者
求问这脚本插入在哪里...
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
47
在线时间
366 小时
注册时间
2012-10-6
帖子
221
5
 楼主| 发表于 2013-3-3 15:09:15 | 只看该作者
8954675 发表于 2013-3-3 11:44
求问这脚本插入在哪里...

新建一个空白的插入,其实还有一个地方要改动我没发出来,就是菜单那里要加入图鉴的场景切换
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
45 小时
注册时间
2012-11-19
帖子
10
6
发表于 2013-3-3 20:30:59 | 只看该作者
电锤斧王 发表于 2013-3-3 15:09
新建一个空白的插入,其实还有一个地方要改动我没发出来,就是菜单那里要加入图鉴的场景切换 ...

不好意思... 能说得具体点吗? 我脚本小白啥都不懂。 比如具体的位置
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-5-24 06:28

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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