rmxp团队吧 关注:810贴子:10,012
  • 14回复贴,共1

[教程+脚本]标题画面美化

只看楼主收藏回复

一楼喂百度,学习本教程后你可以学会:滚动背景,流星雨,图片选项


IP属地:江苏1楼2015-01-08 19:49回复
    【Part 1 滚动背景】
    分析:将标题画面的Sprite类替换为Plane类,刷新ox就行了。
    步骤①:替换标题画面为一张无缝衔接的图,这里可以导入默认的远景图。
    步骤②:Scene_Title里面第34行,@sprite = Sprite.new 改为 @sprite = Plane.new,这就将图片类改为平面类了。
    步骤③:91行后加上@sprite.ox += 10,这就让每一次刷新都移动10个x坐标,从而达到滚动的效果。
    效果应该还可以吧?因为是动态的所以我就不截图了。


    IP属地:江苏2楼2015-01-08 19:57
    回复
      【Part 2 图片选项】
      分析:利用原有的选择框刷新,图片的选中与未选中就是显示或不显示。
      步骤①:准备名为start1 start2 load1 load2 exit1 exit2的图片,放到Titles文件夹下。
      步骤②:修改Scene_Title默认的选择窗口为不可见。在41行下面加上@command_window.visible = false 。这里解释一下,visible是窗口的父类(Window)的一个属性,代表的是是否可见。
      步骤③:建立名为@buttons的数组,生成6个Sprite类的实例,代表6个按钮。 在44行后插入以下内容。
      # 生成选择图片
      @buttons = []
      for i in 1..6
      @buttons[i] = Sprite.new
      @buttons[i].x = @command_window.x
      end
      @buttons[1].bitmap = RPG::Cache.title("start1")
      @buttons[1].y = 288
      @buttons[2].bitmap = RPG::Cache.title("start2")
      @buttons[2].y = 288
      @buttons[2].visible = false
      @buttons[3].bitmap = RPG::Cache.title("load1")
      @buttons[3].y = 288 + 55
      @buttons[4].bitmap = RPG::Cache.title("load2")
      @buttons[4].y = 288 + 55
      @buttons[4].visible = false
      @buttons[5].bitmap = RPG::Cache.title("exit1")
      @buttons[5].y = 288 + 110
      @buttons[6].bitmap = RPG::Cache.title("exit2")
      @buttons[6].y = 288 + 110
      @buttons[6].visible = false
      全都是赋值语句,虽然长,但是非常简单。使用一个for循环来直接创建。其实还有更简便的方法。
      步骤④:添加释放这些图片的语句,也就是一堆dispose。使用for循环来减少工作量。108行后插入以下。
      # 释放选择图片
      for i in 1..6
      @buttons[i].bitmap.dispose
      @buttons[i].dispose
      end
      步骤⑤:添加刷新的语句。通过判断@command_window的index来显示与不显示图片选项,这里采用最笨的方法来制作。133行后插入以下内容。我用了Input.trigger?来减少图片显示次数,只有当按下上下键时才刷新。
      # 刷新图片选项
      if Input.trigger?(Input::UP) or Input.trigger?(Input::DOWN)
      case @command_window.index
      when 0
      @buttons[2].visible = true
      @buttons[4].visible = false
      @buttons[6].visible = false
      when 1
      @buttons[2].visible = false
      @buttons[4].visible = true
      @buttons[6].visible = false
      when 2
      @buttons[2].visible = false
      @buttons[4].visible = false
      @buttons[6].visible = true
      end
      end
      步骤⑥:由于一开始进入时没有刷新,因此补上一些内容。81行后加入以下。
      if @command_window.index == 0 then @buttons[2].visible = true end
      if @command_window.index == 1 then @buttons[4].visible = true end
      这样就完成了,效果应该还可以,流星雨坑太大所以明天做吧……
      截图等流星雨好之后再发吧……


      IP属地:江苏3楼2015-01-08 20:28
      回复
        对了,因为百度直接把缩进给吞掉了,所以请尽量自己打进去代码并处理好缩进。


        IP属地:江苏4楼2015-01-08 20:29
        回复
          发现一处错误,请将137行的trigger换成press,不然的话会导致按住某键图片不刷新。


          IP属地:江苏5楼2015-01-08 20:33
          回复


            IP属地:英国6楼2015-01-08 22:38
            回复


              IP属地:山东来自Android客户端7楼2015-01-09 10:07
              回复
                今晚太忙,明天更把……


                IP属地:江苏8楼2015-01-09 22:58
                回复
                  【Part 3 流星雨效果】
                  前言:这个效果已经有了现成的脚本了,我没看原脚本复刻了一下,现在分享出来。
                  分析:利用数组来储存图片,刷新时移动xy坐标,更改透明度,最后统一释放。
                  步骤①:准备名为star的流星雨的图片,放到Titles文件夹下。
                  步骤②:编写初始化的内容,这里我建议定义一个方法。在265行后插入这些。我使用了一个参数num,用来决定流星雨的数量。
                  # 流星雨初始化
                  def star_init(num)
                  @stars = []
                  for i in 1..num
                  @stars[i] = Sprite.new
                  @stars[i].bitmap = RPG::Cache.title("star")
                  @stars[i].x = 480 + rand(120)
                  @stars[i].y = rand(120)
                  @stars[i].opacity = 160 + rand(96)
                  end
                  end


                  IP属地:江苏9楼2015-01-10 07:41
                  回复
                    小周可以去大师吧活动下啊


                    IP属地:英国来自Android客户端10楼2015-01-10 23:06
                    收起回复
                      本教程宣告破产…………


                      IP属地:江苏11楼2015-03-14 22:17
                      回复
                        有木有图片,或视频?


                        IP属地:江苏12楼2016-04-27 08:22
                        回复
                          教我做游戏标题


                          来自Android客户端13楼2016-10-28 20:29
                          回复