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

Project1

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

【教学】纯事件title制作教学 Part.1

 关闭 [复制链接]

Lv1.梦旅人

有事烧纸

梦石
0
星屑
154
在线时间
509 小时
注册时间
2005-10-22
帖子
6982

贵宾VX城市地图大赛冠军第1届RMTV比赛冠军第1届TG大赛冠军

跳转到指定楼层
1
发表于 2008-10-13 18:20:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
这是一个比较老的教学,今天上班无聊于是再写一篇系统一些的教程吧~
如果你已经脱离菜鸟阶段,那么本片教学不适合你,你可以离开鸟~

如果你是刚入门的小朋友,又想成为一个会自己做title画面的高手,那么请耐心的看下去


首先,Part1部分会讲到一些准备事项
如果你希望一进入游戏,就马上处理自己的纯事件title,那么第一部要做的就是把系统默认的title去掉
方法其实很简单,打开脚本编辑器,用以下这段脚本替换掉原来的Scene_Title脚本就行了

  1. #==============================================================================
  2. # ■ Scene_Title
  3. #------------------------------------------------------------------------------
  4. #  处理标题画面的类。
  5. #==============================================================================

  6. class Scene_Title
  7.   #--------------------------------------------------------------------------
  8.   # ● 住处理
  9.   #--------------------------------------------------------------------------
  10.   def main
  11.     # 战斗测试的情况下
  12.     if $BTEST
  13.       battle_test
  14.       return
  15.     end
  16.     # 载入数据库
  17.     $data_actors        = load_data("Data/Actors.rxdata")
  18.     $data_classes       = load_data("Data/Classes.rxdata")
  19.     $data_skills        = load_data("Data/Skills.rxdata")
  20.     $data_items         = load_data("Data/Items.rxdata")
  21.     $data_weapons       = load_data("Data/Weapons.rxdata")
  22.     $data_armors        = load_data("Data/Armors.rxdata")
  23.     $data_enemies       = load_data("Data/Enemies.rxdata")
  24.     $data_troops        = load_data("Data/Troops.rxdata")
  25.     $data_states        = load_data("Data/States.rxdata")
  26.     $data_animations    = load_data("Data/Animations.rxdata")
  27.     $data_tilesets      = load_data("Data/Tilesets.rxdata")
  28.     $data_common_events = load_data("Data/CommonEvents.rxdata")
  29.     $data_system        = load_data("Data/System.rxdata")
  30.     # 生成系统对像
  31.     $game_system = Game_System.new
  32.    
  33. #———————————王道分割线—————————————   
  34. #———————————王道分割线—————————————   
  35.    
  36.     # 判定继续的有效性
  37.     # 存档文件一个也不存在的时候也调查
  38.     # 有効为 @continue_enabled 为 true、無効为 false
  39.     $continue_enabled = false
  40.     for i in 0..3
  41.       if FileTest.exist?("Save#{i+1}.rxdata")
  42.         $continue_enabled = true
  43.       end
  44.     end
  45.     # 继续为有效的情况下、光标停止在继续上
  46.     # 无效的情况下、继续的文字显示为灰色

  47. #———————————王道分割线—————————————        
  48.    
  49.     # 演奏标题 BGM

  50. #———————————王道分割线—————————————   

  51.     # 停止演奏 ME、BGS
  52.     Audio.me_stop
  53.     Audio.bgs_stop
  54.     # 执行过渡
  55.     Graphics.transition
  56.     # 主循环
  57.     loop do
  58.       # 刷新游戏画面
  59.       Graphics.update
  60.       # 刷新输入信息
  61.       Input.update
  62.       # 刷新画面
  63.       update
  64.       # 如果画面被切换就中断循环
  65.       if $scene != self
  66.         break
  67.       end
  68.     end
  69.     # 装备过渡
  70.     Graphics.freeze
  71.     # 释放命令窗口

  72. #———————————王道分割线—————————————        
  73.    
  74.     # 释放标题图形

  75. #———————————王道分割线—————————————        
  76.    
  77.     end
  78.   
  79. #--------------------------------------------------------------------------
  80. # ● 刷新画面
  81. #--------------------------------------------------------------------------

  82. def update
  83. command_new_game
  84. end
  85. #--------------------------------------------------------------------------  
  86.    
  87.   
  88.   #--------------------------------------------------------------------------
  89.   # ● 命令 : 新游戏
  90.   #--------------------------------------------------------------------------
  91.   def command_new_game
  92.     # 演奏确定 SE

  93. #———————————王道分割线—————————————        
  94.         
  95.     # 停止 BGM
  96.     Audio.bgm_stop
  97.     # 重置测量游戏时间用的画面计数器
  98.     Graphics.frame_count = 0
  99.     # 生成各种游戏对像
  100.     $game_temp          = Game_Temp.new
  101.     $game_system        = Game_System.new
  102.     $game_switches      = Game_Switches.new
  103.     $game_variables     = Game_Variables.new
  104.     $game_self_switches = Game_SelfSwitches.new
  105.     $game_screen        = Game_Screen.new
  106.     $game_actors        = Game_Actors.new
  107.     $game_party         = Game_Party.new
  108.     $game_troop         = Game_Troop.new
  109.     $game_map           = Game_Map.new
  110.     $game_player        = Game_Player.new
  111.     # 设置初期同伴位置
  112.     $game_party.setup_starting_members
  113.     # 设置初期位置的地图
  114.     $game_map.setup($data_system.start_map_id)
  115.     # 主角向初期位置移动
  116.     $game_player.moveto($data_system.start_x, $data_system.start_y)
  117.     # 刷新主角
  118.     $game_player.refresh
  119.     # 执行地图设置的 BGM 与 BGS 的自动切换
  120.     $game_map.autoplay
  121.     # 刷新地图 (执行并行事件)
  122.     $game_map.update
  123.     # 切换地图画面
  124.     $scene = Scene_Map.new
  125.   end
  126.   #--------------------------------------------------------------------------
  127.   # ● 命令 : 继续
  128.   #--------------------------------------------------------------------------
  129.   def command_continue
  130.     # 继续无效的情况下
  131.     unless @continue_enabled
  132.       # 演奏无效 SE
  133.       $game_system.se_play($data_system.buzzer_se)
  134.       return
  135.     end
  136.     # 演奏确定 SE
  137.     $game_system.se_play($data_system.decision_se)
  138.     # 切换到读档画面
  139.     $scene = Scene_Load.new
  140.   end
  141.   #--------------------------------------------------------------------------
  142.   # ● 命令 : 退出
  143.   #--------------------------------------------------------------------------
  144.   def command_shutdown
  145.     # 演奏确定 SE
  146.     $game_system.se_play($data_system.decision_se)
  147.     # BGM、BGS、ME 的淡入淡出
  148.     Audio.bgm_fade(800)
  149.     Audio.bgs_fade(800)
  150.     Audio.me_fade(800)
  151.     # 退出
  152.     $scene = nil
  153.   end
  154.   #--------------------------------------------------------------------------
  155.   # ● 战斗测试
  156.   #--------------------------------------------------------------------------
  157.   def battle_test
  158.     # 载入数据库 (战斗测试用)
  159.     $data_actors        = load_data("Data/BT_Actors.rxdata")
  160.     $data_classes       = load_data("Data/BT_Classes.rxdata")
  161.     $data_skills        = load_data("Data/BT_Skills.rxdata")
  162.     $data_items         = load_data("Data/BT_Items.rxdata")
  163.     $data_weapons       = load_data("Data/BT_Weapons.rxdata")
  164.     $data_armors        = load_data("Data/BT_Armors.rxdata")
  165.     $data_enemies       = load_data("Data/BT_Enemies.rxdata")
  166.     $data_troops        = load_data("Data/BT_Troops.rxdata")
  167.     $data_states        = load_data("Data/BT_States.rxdata")
  168.     $data_animations    = load_data("Data/BT_Animations.rxdata")
  169.     $data_tilesets      = load_data("Data/BT_Tilesets.rxdata")
  170.     $data_common_events = load_data("Data/BT_CommonEvents.rxdata")
  171.     $data_system        = load_data("Data/BT_System.rxdata")
  172.     # 重置测量游戏时间用的画面计数器
  173.     Graphics.frame_count = 0
  174.     # 生成各种游戏对像
  175.     $game_temp          = Game_Temp.new
  176.     $game_system        = Game_System.new
  177.     $game_switches      = Game_Switches.new
  178.     $game_variables     = Game_Variables.new
  179.     $game_self_switches = Game_SelfSwitches.new
  180.     $game_screen        = Game_Screen.new
  181.     $game_actors        = Game_Actors.new
  182.     $game_party         = Game_Party.new
  183.     $game_troop         = Game_Troop.new
  184.     $game_map           = Game_Map.new
  185.     $game_player        = Game_Player.new
  186.     # 设置战斗测试用同伴
  187.     $game_party.setup_battle_test_members
  188.     # 设置队伍 ID、可以逃走标志、战斗背景
  189.     $game_temp.battle_troop_id = $data_system.test_troop_id
  190.     $game_temp.battle_can_escape = true
  191.     $game_map.battleback_name = $data_system.battleback_name
  192.     # 演奏战斗开始 BGM
  193.     $game_system.se_play($data_system.battle_start_se)
  194.     # 演奏战斗 BGM
  195.     $game_system.bgm_play($game_system.battle_bgm)
  196.     # 切换到战斗画面
  197.     $scene = Scene_Battle.new
  198.   end
  199. end
复制代码


替换完毕,运行一次游戏,看看是不是直接进入了你设置的“主角初始位置”而没有看到XP默认的那个title呢?如果是的,说明你的第一步成功了

接着我们开始着手事件部分
首先,我们新建一张地图,取名为title,然后将主角的初始位置设置在这张地图上
建完后你应该看到这样的情形


运行下游戏,看看是不是一开始主角就站在一张纯黑的地图上?
但是显然,我们在title是看不到主角的!
所以,接着我们要打开数据库,翻到“系统”页,将“初期同伴”全部删除
然后运行游戏,这回看不到主角阿尔西斯了吧?

呵呵,然后我们准备部分就结束了,可以开始制作自己的title了
首先我们建立第一个事件
如图

这个事件的触发条件为“自动执行”,没有行走图
然后我们先让事件显示一张图片,这里暂时就用默认title的那张图鸟~
接着我们出现3个选项,当然对选项我们暂不做任何处理操作

好了运行下游戏,看看我们是不是已经模拟出XP默认title的那种效果了?
我运行的效果图:


到这里,一个title需要有的所有最基础的功能我们已经都有了
啥?不够华丽?不要紧,我们一步一步来

----------华丽的分割线-----------------------------------------------------


好了我们继续打开第一个事件

看到不?我将这个事件大致的划分了一下,变成两个大块
一个叫做“准备部分”,一个叫做“控制部分”
我来解释一下这两个部分的内容区别
在准备部分,我们可以做一些前期的工作
比如秀一个logo啊,说几段废话啊,播一个动画之类的
很多厂商都会在这部分显示自己的商标,比如EA就会跳个球出来,说“EA Games 插林洁爱瑞心!”等等
在控制阶段,一般就有“新游戏、读存档、离开游戏”这类的选项出现了,这时整个控制就应该释放给玩家鸟,玩家通过按键盘选择一个操作,然后才能继续下去。

写到这里,第一部分就完结了
不知道有没有看懂呢?先自己做一个44吧
稍后Part.2部分,我们将详细深入到如何用图片做出华丽丽的title效果~
神隐中,偶尔诈尸

Lv1.梦旅人

炎发灼眼的讨伐者

梦石
0
星屑
50
在线时间
1707 小时
注册时间
2007-8-4
帖子
904
2
发表于 2008-10-13 18:42:05 | 只看该作者
{/hx}快华丽的建立MFC工程去吧= =
RMXP&RMVX通用Web化完成- -|||
回复 支持 反对

使用道具 举报

Lv1.梦旅人

有事烧纸

梦石
0
星屑
154
在线时间
509 小时
注册时间
2005-10-22
帖子
6982

贵宾VX城市地图大赛冠军第1届RMTV比赛冠军第1届TG大赛冠军

3
 楼主| 发表于 2008-10-13 19:03:18 | 只看该作者
以下引用灼眼的夏娜于2008-10-13 10:42:05的发言:

快华丽的建立MFC工程去吧= =


不要,难得偷懒全天计划{/hx}
神隐中,偶尔诈尸
回复 支持 反对

使用道具 举报

Lv1.梦旅人

穿越一季:朔

梦石
0
星屑
50
在线时间
333 小时
注册时间
2007-4-11
帖子
5369

贵宾

4
发表于 2008-10-14 00:13:19 | 只看该作者
..................囧

我以为我能学习下..结果看完才发现我不算菜鸟

算了...飞走..让新人学习
6R复活?别扯淡了.

柳柳一旦接手66RPG,我果断呵呵啊。
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-9-14
帖子
155
5
发表于 2008-10-14 00:45:59 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (暗夜天使)

名侦探小柯

梦石
0
星屑
3299
在线时间
3619 小时
注册时间
2006-9-6
帖子
37400

开拓者贵宾第3届短篇游戏大赛主流游戏组亚军第5届短篇游戏比赛亚军

6
发表于 2008-10-14 01:14:42 | 只看该作者
这不是最原始的事件标题么…… = =(而且这个还是选项做的……)
回复 支持 反对

使用道具 举报

Lv1.梦旅人

青天

梦石
0
星屑
86
在线时间
232 小时
注册时间
2007-12-15
帖子
2091

开拓者

7
发表于 2008-10-14 04:48:47 | 只看该作者
囧,虽然我也知道了,不过也要顶两下。
开坑准备中
回复 支持 反对

使用道具 举报

Lv1.梦旅人

粉蜘蛛秀秀

梦石
0
星屑
76
在线时间
39 小时
注册时间
2007-6-4
帖子
384

贵宾第1届Title华丽大赛新人奖

8
发表于 2008-10-15 20:45:05 | 只看该作者
哈哈?炸弹有空来写教程拉 {/cy}
补充下插入那段脚本的作用:
原先的Scene_Title是3个选项 新游戏 继续游戏 退出
这个Scene_Title一进入Scene_Title 程序自动运行 新游戏 那个方法 所有就不出现选项
立刻跳转到Scene_Map了 接着 执行地图上的事件(如title)
http://rpg.blue/upload_program/files/hide_xiu_96911465.png
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-16 14:45

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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