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

Project1

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

[已经解决] 一个脚本问题请教。

[复制链接]

Lv1.梦旅人

梦石
0
星屑
174
在线时间
88 小时
注册时间
2009-4-4
帖子
25
跳转到指定楼层
1
发表于 2013-11-26 22:22:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
在6R找了一个脚本,是在游戏里弄电子书的,因为比较适合新手,就拿来自己用了,现在有以下问题。
1、脚本中选择页面时,只能以1、3、5、2、4的顺序选择页面,此为问题一。
2、选择页面后,只能看到图片,再次按空格就是黑屏。1到5页的图片都能显示,音乐也没问题,黑屏我自己感觉是不是因为我没有编辑每一页的内容,但是我不知道在哪里编辑内容。希望有人帮我解决一下。
附原脚本地址:http://www.66rpg.com/articles/4905

我自己修改的脚本原文如下:
#-------------------------------------------------------------------------------
#                               《电子书脚本》
#其主要用途就是用来介绍怪物、我方、建设和地图,当然也可以做养成RPG的每月杂志!
#制作者;STUPID  ANT
#QQ;1660618519
###############################################################################
##########################《使用说明》#########################################
#本脚本由STUPID  PIG工作室自行研制,其制作权归本工作室所有,当然大家可以尽情的
#使用,但是所有的备注都不能删除,呵呵~~就算你加密,我们也不怕,很轻松就能看到!
#在使用过程中如果有什么漏洞或新的想法,可以联系我们,QQ;1660618519
#当然,我不经常在线,所以你们还可以打我手机;13977375101
#祝你们做游戏愉快!~~~~
#########################《使用方法》##########################################
#在地图中建立一个事件,在事件编辑中,添加脚本,写上$scene = Scene_Book.new,就可以打开
#如果想添加更多的页码,请在30行、31行、98行进行编辑!
#-------------------------------------------------------------------------------
class Scene_Book
  ############################################################################
  ####################《第一部分的总处理》####################################
  ############################################################################
  def main #主要的处理
    #---------《封面处理》-------------------------------------
    @sprite = Sprite.new #生成新的图片
    @sprite.bitmap = RPG::Cache.title("背景一" )  #这里你可以更改。
    #-----------《页码选择处理;中级》--------------------------
    s1 = "第一页:简介"#这里你可以改名称
    s2 = "第二页:物品相关"#这里你可以改名称
    s3 = "第三页:技能相关"#这里你可以改名称
    s4 = "第四页:怪物相关"#这里你可以改名称
    s5 = "第五页:任务相关"#这里你可以改名称
    #你可以再加S5、S6、S7等,不过下面的也有两处要跟着改
    @command_window = Window_Command.new(192, [s1, s2, s3, s4, s5])
    #上面的 @command_window当你加了S5、S6等时,要改的第一处,加[s1, s2, s3, s4,s5,s6],写多少加多少!!
    @command_window.back_opacity = 255#透明度
    @command_window.x = 320 - @command_window.width / 2#x坐标
    @command_window.y = 288#y坐标
    @command_window.visible = false #一开始页码状态为关闭状态
    @command_window.active = false #一开始页码状态为关闭状态

    #----------《音乐处理》-------------------------------------
    Audio.se_play("Audio/BGM/命运之夜.mp3")  #这里是处理音乐的,可以更改!
    #----------《显示的图片位置处理》---------------------------
     @sprite.x = (640 - @sprite.bitmap.width) / 2  #这是X坐标
     @sprite.y = (480 - @sprite.bitmap.height) / 2 #这是Y坐标
    #----------《图片的主处理》---------------------------------
    @sprite.opacity = 255  #透明度,255为不透明,0是完全透明。
    #----------《必要的场景处理》-------------------------------
    Graphics.transition   # 执行过渡
    loop do   # 主循环
    Graphics.update      # 刷新游戏画面
    Input.update      # 刷新输入信息
    update      # 刷新画面
    if $scene != self     # 如果画面被切换就中断循环
        break
      end
    end
    #-------------《过渡及图片释放的必要处理》------------------
     Graphics.freeze   # 准备过渡
    @sprite.bitmap.dispose    #释放图形
    @sprite.dispose   #释放图形处理
    @command_window.dispose #释放窗口
    end  
  ############################################################################
  ####################《第二部分;刷新》######################################
  ############################################################################
  def update #刷新
  #------------------《页码窗口的终极处理》--------------------
      if Input.trigger?(Input::A) #当按下Shift键时发生以下事件
        @update_phase = 2
        Audio.se_play("Audio/SE/001-System01") #播放SE
        @command_window.visible = true #页码窗口打开
        @command_window.active = true  #正式打开
      end  
      @command_window.update #窗口刷新
      @command_window.update #窗口刷新
    if Input.trigger?(Input::B) #当按下ESC键时发生以下事件
      $game_system.se_play($data_system.cancel_se) #播放系统SE
      @command_window.visible = false #窗口关闭
      @command_window.active = false #窗口关闭
      @update_phase = 1
      @command_window.index = 0 #窗口的计数回到0
    end
    if Input.trigger?(Input::C) #当按下ESC键时发生以下事件
      case @command_window.index #这个我也说不清~~
      when 0 #选择S1
      $game_system.se_play($data_system.cancel_se)#播放选择系统SE
      @sprite.bitmap.clear #清除所有图片
      @sprite = Sprite.new #显示新的图片
      @sprite.bitmap = RPG::Cache.title("1" ) #图片名称
        @command_window.visible = false #窗口关闭
        @command_window.active = false #窗口关闭
        @update_phase = 3
      when 1 #选择S2
      $game_system.se_play($data_system.cancel_se)#播放选择系统SE
      @sprite.bitmap.clear #清除所有图片
      @sprite = Sprite.new #显示新的图片
      @sprite.bitmap = RPG::Cache.title("2" ) #图片名称
        @command_window.visible = false #窗口关闭
        @command_window.active = false #窗口关闭
        @update_phase = 3
      when 2 #选择S3
      $game_system.se_play($data_system.cancel_se)#播放选择系统SE
      @sprite.bitmap.clear #清除所有图片
      @sprite = Sprite.new #显示新的图片
      @sprite.bitmap = RPG::Cache.title("3" ) #图片名称
        @command_window.visible = false #窗口关闭
        @command_window.active = false #窗口关闭
        @update_phase = 3
      when 3 #选择S4
      $game_system.se_play($data_system.cancel_se)#播放选择系统SE
      @sprite.bitmap.clear #清除所有图片
      @sprite = Sprite.new #显示新的图片
      @sprite.bitmap = RPG::Cache.title("4" ) #图片名称
        @command_window.visible = false #窗口关闭
        @command_window.active = false #窗口关闭
        @update_phase = 3
         
      when 4 #选择S5
      $game_system.se_play($data_system.cancel_se)#播放选择系统SE
      @sprite.bitmap.clear #清除所有图片
      @sprite = Sprite.new #显示新的图片
      @sprite.bitmap = RPG::Cache.title("5" ) #图片名称
        @command_window.visible = false #窗口关闭
        @command_window.active = false #窗口关闭
        @update_phase = 3
      #when   
      #当你改了S1、S2那些东西时,这里就是要改的第二处,看到when了吗?
      #你加了的话就再加一个when,减就减一个when!~~
      end
     
    end     
#-----------------------《退出电子书的处理》------------------------
    if Input.trigger?(Input::L) #当按下Q键时就发生以下事件
      Graphics.freeze  #图片过渡
      Graphics.transition(20)  #过渡时间
      Audio.se_stop  #所有音乐停止
      $scene = Scene_Map.new  #返回地图
    end
  end
end
##############################################################################
#STUPID PIG工作室,里面的人不是笨猪,而是一群充满梦想的年轻人!~~~~
##############################################################################

Project1.rar

189.54 KB, 下载次数: 41

点评

吐槽: “case @command_window.index #这个我也说不清~~” 。说不清就不用注释了啊  发表于 2013-11-27 08:45

评分

参与人数 2星屑 +30 收起 理由
RyanBern + 10 童年的回忆
芯☆淡茹水 + 20 身份证头像?

查看全部评分

Lv2.观梦者

梦石
0
星屑
555
在线时间
111 小时
注册时间
2013-11-22
帖子
301
2
发表于 2013-11-27 06:36:13 | 只看该作者
真是受不了这种脚本,内容没多少,自己加了一个类,就写这么多没用的注释…
回复 支持 反对

使用道具 举报

Lv4.逐梦者 (版主)

梦石
0
星屑
9532
在线时间
5073 小时
注册时间
2013-6-21
帖子
3580

开拓者贵宾剧作品鉴家

3
发表于 2013-11-27 09:47:12 | 只看该作者
本帖最后由 RyanBern 于 2013-11-29 15:38 编辑

我喜欢最后一句话:STUPID PIG工作室,里面的人不是笨猪,而是一群充满梦想的年轻人!~~~~
新手脚本应该鼓励,这样的脚本虽然简单,但是实现的功能却比较人性化。而且LZ让我记起了4年前我上初中时候写出的第一个RMXP脚本就是这个,利用显示图片来制作游戏帮助,不过那时候的脚本写得比这个麻烦多了……

原来的脚本有很多问题,语言不简洁这倒不说,关键是,有些关键更新的步骤没有了。建议你参考这个脚本,会好一些。
  1. class Scene_Book
  2.   def main
  3.     # 生成显示图片的精灵
  4.     @sprite = Sprite.new
  5.     @sprite.bitmap = RPG::Cache.title("封面") # 这里是封面的图形
  6.     s1 = "第一页:简介"
  7.     s2 = "第二页:物品相关"
  8.     s3 = "第三页:技能相关"
  9.     s4 = "第四页:怪物相关"
  10.     s5 = "第五页:任务相关"
  11.     # 生成命令窗口,注意它的两个参数,192表示宽,后面那个表示命令的数组,作用是决定窗口的高和命令的内容
  12.     @command_window = Window_Command(192, [s1, s2, s3, s4, s5])
  13.     # 设置命令窗口的位置,默认原点在窗口的左上角,实际设置的是原点的位置,现在设置的位置是画面中下方
  14.     @command_window.x = 320 - @command_window.width / 2
  15.     @command_window.y = 288
  16.     # 设置活跃状态:不活动,只有在该窗口活动的情况下才能调用更新方法
  17.     @command_window.active = false
  18.     # 设置可见状态:不可见,如果一个窗口不可见,那么你在屏幕上看不到它
  19.     @command_window.visible = false
  20.     # 利用音频模块Audio演奏背景音乐
  21.      Audio.se_play("Audio/BGM/命运之夜.mp3")
  22.     # 准备过渡
  23.     Graphics.transition
  24.     # 主循环
  25.     loop do
  26.       # 刷新画面信息,这里包括所有可见的对象
  27.       Graphics.update
  28.       # 刷新输入信息,这里是为了接受玩家的输入
  29.       Input.update
  30.       # 刷新画面,这里是进行该场景的私有刷新,重要
  31.       update
  32.       # 如果画面中断就切断循环
  33.       if $scene != self
  34.         break
  35.       end
  36.     end
  37.     # 准备过渡
  38.     Graphics.freeze
  39.     # 释放,窗口和精灵用过之后一定要释放
  40.     @sprite.bitmap.dispose
  41.     @sprite.dispose
  42.     @command_window.dispose
  43.   end
  44.   # 刷新画面
  45.   def update
  46.     # 如果命令窗口激活的情况下,就调用update_command
  47.     if @command_window.active
  48.       update_command
  49.       # 结束update方法,注意,这个执行时必须的,因为防止方法进入到后面去
  50.       return
  51.     end
  52.     # 如果命令窗口没被激活,才能进行到这里
  53.     if Input.trigger?(Input::B) # 按下ESC
  54.       $game_system.se_play($data_system.cancel_se)
  55.       $scene = Scene_Map.new
  56.       return
  57.     end
  58.     if Input.trigger?(Input::A) # 按下Z
  59.       $game_system.se_play($data_system.decision_se)
  60.       @command_window.active = true
  61.       @command_window.visible = true
  62.       return
  63.   end
  64.   # 刷新输入窗口
  65.   def update_command
  66.     # 输入窗口的刷新,这一步是执行光标的闪烁和移动,必须执行
  67.     @command_window.update
  68.     if Input.trigger?(Input::B)
  69.       $game_system.se_play($data_system.cancel_se)
  70.       @sprite.bitmap.dispose
  71.       @sprite.bitmap = RPG::Cache.title("封面")
  72.       @command_window.active = false
  73.       @command_window.visible = false
  74.       return
  75.     end
  76.     if Input.trigger?(Input::C) # 按下空格
  77.       $game_system.se_play($data_system.decision_se)
  78.       # 释放当前精灵的位图
  79.       @sprite.bitmap.dispose
  80.       # 设置新位图,在这里用了内嵌表达式的结构,具体内容请打开RMXP帮助,搜索“内嵌表达式”,来明白它的意思
  81.       @sprite.bitmap = RPG::Cache.title("#{@command_window.index + 1}")
  82.       return
  83.     end
  84.   end
  85. end
复制代码

评分

参与人数 1星屑 +60 收起 理由
myownroc + 60 塞糖

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
174
在线时间
88 小时
注册时间
2009-4-4
帖子
25
4
 楼主| 发表于 2013-11-27 12:20:25 | 只看该作者
额。都是来吐槽的吗?没人解决问题吗?
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
174
在线时间
88 小时
注册时间
2009-4-4
帖子
25
5
 楼主| 发表于 2013-11-27 12:24:25 | 只看该作者
凝望·流年 发表于 2013-11-27 06:36
真是受不了这种脚本,内容没多少,自己加了一个类,就写这么多没用的注释… ...

求指教,吐完嘈也帮忙解释下呀!在RM界,我们就像幼儿园的学生,而你已经大学毕业,不知道这么比喻恰当不,虽然问题幼稚,但是请亲帮忙用幼儿园小朋友可以理解的语言帮忙解答一下,万分感激。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
174
在线时间
88 小时
注册时间
2009-4-4
帖子
25
6
 楼主| 发表于 2013-11-27 12:27:57 | 只看该作者
RyanBern 发表于 2013-11-27 09:47
我喜欢最后一句话:STUPID PIG工作室,里面的人不是笨猪,而是一群充满梦想的年轻人!~~~~
新手脚本应该鼓 ...

求指教问题呀!吐槽很贴切,问题未解决,亲,指导下。
因为只有从最简单的脚本改起,才能慢慢摸索出脚本的含义。
如果每一个脚本只是借用别人的,不经过自己修饰,何时才能做自己的脚本啊,
授人以鱼不如授人以渔。谢谢,
回复 支持 反对

使用道具 举报

Lv4.逐梦者 (版主)

梦石
0
星屑
9532
在线时间
5073 小时
注册时间
2013-6-21
帖子
3580

开拓者贵宾剧作品鉴家

7
发表于 2013-11-27 12:53:11 | 只看该作者
a516816333 发表于 2013-11-27 12:27
求指教问题呀!吐槽很贴切,问题未解决,亲,指导下。
因为只有从最简单的脚本改起,才能慢慢摸索出脚本 ...

不好意思,我刚才以为是一个技术发布帖,相关内容已经放在3L
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
174
在线时间
88 小时
注册时间
2009-4-4
帖子
25
8
 楼主| 发表于 2013-11-27 13:17:05 | 只看该作者
RyanBern 发表于 2013-11-27 09:47
我喜欢最后一句话:STUPID PIG工作室,里面的人不是笨猪,而是一群充满梦想的年轻人!~~~~
新手脚本应该鼓 ...

恩,是简单了,如果我要编辑每一条的:
比如第二条:物品相关,我选择第二条,之后会有一大段我自己加的描述,我要在脚本中的那个地方自己编辑文字呢?

点评

好像已经解决了...  发表于 2013-11-27 16:41
我的签名下方已经挂上了链接,要想知道更多就点进去看看吧  发表于 2013-11-27 15:04
你想把那段描述放在屏幕的什么位置?  发表于 2013-11-27 15:03
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
174
在线时间
88 小时
注册时间
2009-4-4
帖子
25
9
 楼主| 发表于 2013-11-28 16:46:58 | 只看该作者
a516816333 发表于 2013-11-27 13:17
恩,是简单了,如果我要编辑每一条的:
比如第二条:物品相关,我选择第二条,之后会有一大段我自己加的 ...

没解决,光复制一段代码给我,和我复制别人的代码有何区别。
高手解决问题就喜欢复制代码,素不知,给我们新手代码,不就是相当于让我没从问一个问题的解决方案到去寻找一个新的问题的解决方案吗?自己问的问题没解决,有给我们出个新问题。越问越迷茫。然后要不就给一堆教程,头都大了。
所有能不能这样呢?你就用我给你的代码?帮我做一个最简单的范例。就是在第二条中,帮我加点物品介绍,随便乱写几个字,让我知道那几个字,是在脚本中那个地方编辑的,然后我就可以照着学了,给我一段代码完全是没有用的。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
197 小时
注册时间
2011-6-10
帖子
231
10
发表于 2013-11-28 20:54:01 | 只看该作者
a516816333 发表于 2013-11-28 09:46
没解决,光复制一段代码给我,和我复制别人的代码有何区别。
高手解决问题就喜欢复制代码,素不知,给我 ...

222200mlxl4nznnclmig9r.zip (199.62 KB, 下载次数: 27)

脚本中是让你在titles文件夹里放上对应的1-5图片来显示内容……
也就是说,titles里有一个1.jpg的图片,那么选择第一选项就会出现1这个图片,你把你想表达的在图片上弄好就行了……
特点:懒
特性:懒
爱好:潜水

《巴雅前奏曲》目前已完成,正在挖学美工……
新坑:目前正制作中0 0
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-18 02:29

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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