Project1

标题: 赠予新手简单自制标题菜单教程(高手请无视) [打印本页]

作者: 恐惧剑刃    时间: 2011-5-8 11:55
标题: 赠予新手简单自制标题菜单教程(高手请无视)
本帖最后由 恋′挂机 于 2013-7-12 12:30 编辑

一.标题
1.效果截图

很简单,这个是最简单的仅仅只是修改了选择窗口的坐标
  1.     @command_window.x = 300 - @command_window.width / 2
  2.     @command_window.y = 200
复制代码
  1. #X,300  Y200  就是窗口坐标
复制代码
2.效果截图

很简单,只是多了“制作”选项,这个在本站已经有了,我只不过再简单说明一下
  1. #将脚本37行至41行替换为一下内容
复制代码
  1.     s1 = "新游戏"
  2.     s2 = "继续"
  3.     s3 = "制作"
  4.     s4 = "退出"
  5.     @command_window = Window_Command.new(192, [s1, s2, s3, s4])
复制代码
测试时,已经有了制作选项,接着说,下面有两种方法:
第一种:不执行场所移动直接在标题场景中显示制作者或制作群
效果截图:
  1. #将脚本99行极其以下替换为一下内容
复制代码
  1.       when 0  # 新游戏
  2.         command_new_game
  3.       when 1  # 继续
  4.         command_continue
  5.       when 2  # 制作
  6.         command_maker
  7.       when 3  # 退出
  8.         command_shutdown
  9.       end
  10.     end
  11.   end
  12.   #----
复制代码
  1. #再在脚本161行继续与退出之间加入一下脚本
复制代码
  1.   #--------------------------------------------------------------------------
  2.   # ● 命令 : 制作
  3.   #--------------------------------------------------------------------------
  4.   def command_maker
  5.     p"游戏制作:————"
  6.   end
复制代码
这是第一种方法
第二种方法:场所移动通过事件说明
效果截图
  1. #再在脚本161行继续与退出之间加入一下脚本
复制代码
  1.   #--------------------------------------------------------------------------
  2.   # ● 命令 : 制作
  3.   #--------------------------------------------------------------------------
  4.   def command_maker
  5.     # 演奏确定 SE
  6.     $game_system.se_play($data_system.decision_se)
  7.     # 停止 BGM
  8.     Audio.bgm_stop
  9.     # 重置测量游戏时间用的画面计数器
  10.     Graphics.frame_count = 0
  11.     # 生成各种游戏对像
  12.     $game_temp          = Game_Temp.new
  13.     $game_system        = Game_System.new
  14.     $game_switches      = Game_Switches.new
  15.     $game_variables     = Game_Variables.new
  16.     $game_self_switches = Game_SelfSwitches.new
  17.     $game_screen        = Game_Screen.new
  18.     $game_actors        = Game_Actors.new
  19.     $game_party         = Game_Party.new
  20.     $game_troop         = Game_Troop.new
  21.     $game_map           = Game_Map.new
  22.     $game_player        = Game_Player.new
  23.     # 设置初期同伴位置
  24.     $game_party.setup_starting_members
  25.     # 设置初期位置的地图
  26.     $game_map.setup(2)
  27.     # 主角向初期位置移动
  28.     $game_player.moveto(10, 10)
  29.     # 刷新主角
  30.     $game_player.refresh
  31.     # 执行地图设置的 BGM 与 BGS 的自动切换
  32.     $game_map.autoplay
  33.     # 刷新地图 (执行并行事件)
  34.     $game_map.update
  35.     # 切换地图画面
  36.     $scene = Scene_Map.new
  37.   end
复制代码
场所移动到地图2,坐标无所谓,然后在地图2上编辑事件即可

3.效果截图

很简单,在Scene_Title43行下加入
  1. @command_window.opacity = 0
复制代码
使其框透明
把脚本40行改为
  1. @command_window = Window_Command.new(720, [s1, s2, s3])
复制代码
把选择条拉长
4.纯事件标题
这个本站上已经很多了,不再说明。我再补充一点想法。
想法1.将标题图制成图块优先级设为5,选择一张雾图形,在数据库中设置移动,这就是一个很简单的动态标题
想法2.巧用自动原件
在本站我下的某自动原件就是这个

用它在工程里画图:

再利用PS或其他软件,在下边四个矩形中加入"开始游戏"等等
在此之前还可以利用远景或雾图形,使其更加美观

二.菜单
菜单主要是发挥自己的想象力
下面我主要介绍一些简单的脚本:
在所有窗口下都可以加入:

  1.     @command_window.x = 0
  2.     @command_window.y = 0
  3.     @command_window.opacity = 0
复制代码
分别是X,Y坐标以及窗口透明度,这里以Scene_Menu中的窗口为例
  1. super(0, 0, 640, 480)
复制代码
这个是窗口的X,Y坐标和窗口大小可以任意来调
在Scene_Menu44行左右
下边分别有每个窗口的坐标:
例如
  1. @playtime_window.x = 0
  2.     @playtime_window.y = 0
复制代码
这个就是时间窗口的XY坐标,同样也可以在他下面加入
  1. @playtime_window.opacity = 150
复制代码
使其窗口半透明
调了之后可能会发现菜单中有黑色区域以时间窗口为例在
  1. @playtime_window.opacity = 150
复制代码
其之下可以加入
  1. @playtime = Spriteset_Map.new
复制代码
这样便可以显示地图

最后就是公共事件自制菜单了,这个柳柳有视频我也不多说了




==========补充==========
跳过标题画面:
主站上是有这个脚本的在http://rpg.blue/article-40257.html但是我试用了一下,发现了一个问题 就是当你执行战斗测试时,就会进入地图,就是不会执行战斗测试 所以……………………………………
  1.     #[url=home.php?mod=space&uid=114926]@sprite[/url] = Sprite.new
  2.     #@sprite.bitmap = RPG::Cache.title($data_system.title_name)
复制代码
将原脚本中这两行#掉
  1. $game_system.bgm_play($data_system.title_bgm)
复制代码
同样把上面的脚本#掉
  1.     #@sprite.bitmap.dispose
  2.     #@sprite.dispose
复制代码
同样把上面的脚本#掉
  1. $game_system.se_play($data_system.decision_se)
复制代码
同样把上面的脚本#掉
在脚本32行下加上
  1. command_new_game
复制代码
这时候测试时就已经有效果了
接着改!
把原窗口XY坐标调整一下
  1.     @command_window.x = 500 - @command_window.width / 2
  2.     @command_window.y = 500
复制代码
其实很简单,在生成生成系统对像之后调用新游戏的内容(就是command_new_game)
再把相关生成标题图形、释放标题图形、演奏标题 BGM全部#掉,其实
  1. $game_system.se_play($data_system.decision_se)
复制代码
可以不#掉。很简单吧!
你也许会问
  1.     # 生成命令窗口
  2.     s1 = "新游戏"
  3.     s2 = "继续"
  4.     s3 = "退出"
  5.     @command_window = Window_Command.new(192, [s1, s2, s3])
  6.     @command_window.back_opacity = 160
  7.     @command_window.x = 500 - @command_window.width / 2
  8.     @command_window.y = 500
复制代码
等此类脚本都在怎么还会跳过标题画面呢?
其实在脚本76行左右的
  1.       # 如果画面被切换就中断循环
  2.       if $scene != self
  3.         break
  4.       end
  5.     end
复制代码
就已经告诉你答案了,在生成系统对象等等之后场所移动
因为画面被切换所以中断循环,之前改了窗口的XY坐标(调出屏幕)
这次补充就到这里吧!
[attach]55643[/attach]

未命名.jpg (107.52 KB, 下载次数: 37)

未命名.jpg

作者: 耶和华    时间: 2011-5-8 12:44
不错 。。那个LOGO很好看 ,
作者: 510035021    时间: 2011-10-4 22:36
选择条拉长的可以设为左右边缘渐渐消失吗
作者: 各种压力的猫君    时间: 2011-10-5 03:27
2.方法一 p换成print就可以不输出双引号了……(话说我对ruby的了解就是从早这里开始的lol)
曾经有人问过如何在标题画面调用公共事件,因为小黄鸡说标题画面没有事件解释器所以我照着新游戏的方法稍微改动了一下。(搜索:“标题画面调用公共事件”)

关于那个综合范例呢…… = = b 我只想说windows自带的计算器还是挺有用的。

最后回楼上的 - - : 可以,分割成N份然后透明度递减。具体方法自己摸索一下吧 =W= 看你注册时间也不算早了
作者: 忧雪の伤    时间: 2011-10-6 21:39
= =,我只是尴尬这么简单的东西何以见得能写得这么长……也许这也算一种能力。
作者: 隐藏主角    时间: 2011-10-11 17:37
还没懂,慢慢消化····
作者: 曹天一    时间: 2014-2-23 22:11
范例呢????????
作者: 欧式小白龙    时间: 2014-4-26 23:22
好东西,先马克,以后慢慢学!




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1