我看了下类似的教程,LOGO标题很多都是依靠事件来完成的。
另外癫狂侠客的标题教程不是很完善,我再补充一下。
有了这个基础就应该能制作出任意复杂的动态标题了
先说LOGO
很多人把他想得复杂了,举个例子:新建一个脚本页直接输入
大家都明白测试的话会有什么效果。
那为什么不直接调用图片呢?
脚本:
- logo = Sprite.newlogo.bitmap = Bitmap.new("操作指南.jpg")logo.opacity = 0for s in 0..50 Graphics.updateendfor i in 0..20 logo.opacity += 10 for s in 0..2 Graphics.update end logo.opacity = 255 if i == 20end for s in 0..100 Graphics.updateendfor i in 0..20 logo.opacity -= 10 for s in 0..2 Graphics.update end logo.opacity = 0 if i == 20endlogo.bitmap.disposelogo.dispose复制代码
复制代码由于某些原因……
脚本第一行应该是这样的(如果没错无视)
logo = Sprite.new
想要多张LOGO就直接复制就好了,很简单吧?
天气(漂浮物)
实话说,这种脚本也很多。使用的方法稍复杂(至少对于新人而言)。
怎么做呢?
也很简单,脚本:[code]#==============================================================================# ■ Scene_Title#------------------------------------------------------------------------------# 处理标题画面的类。#==============================================================================class Scene_Title #-------------------------------------------------------------------------- # ● 主处理 #-------------------------------------------------------------------------- def main # 战斗测试的情况下 if $BTEST battle_test return end # 载入数据库 $data_actors = load_data("Data/Actors.rxdata") $data_classes = load_data("Data/Classes.rxdata") $data_skills = load_data("Data/Skills.rxdata") $data_items = load_data("Data/Items.rxdata") $data_weapons = load_data("Data/Weapons.rxdata") $data_armors = load_data("Data/Armors.rxdata") $data_enemies = load_data("Data/Enemies.rxdata") $data_troops = load_data("Data/Troops.rxdata") $data_states = load_data("Data/States.rxdata") $data_animations = load_data("Data/Animations.rxdata") $data_tilesets = load_data("Data/Tilesets.rxdata") $data_common_events = load_data("Data/CommonEvents.rxdata") $data_system = load_data("Data/System.rxdata") # 生成系统对像 $game_system = Game_System.new # 生成标题图形 @sprite = Sprite.new @sprite.bitmap = RPG::Cache.title($data_system.title_name) @picture = [] for i in 0..19 @picture
= Sprite.new @picture.bitmap = Bitmap.new("Title_star.png") @picture.x, @picture.y = rand(640 - @picture.bitmap.width) + 1, rand(480 - @picture.bitmap.height) + 1 end # 生成命令窗口 s1 = "新游戏" s2 = "继续" s3 = "退出" @command_window = Window_Command.new(192, [s1, s2, s3]) @command_window.back_opacity = 160 @command_window.x = 320 - @command_window.width / 2 @command_window.y = 288 # 判定继续的有效性 # 存档文件一个也不存在的时候也调查 # 有効为 @continue_enabled 为 true、无效为 false @continue_enabled = false for i in 0..3 if FileTest.exist?("Save#{i+1}.rxdata") @continue_enabled = true end end # 继续为有效的情况下、光标停止在继续上 # 无效的情况下、继续的文字显示为灰色 if @continue_enabled @command_window.index = 1 else @command_window.disable_item(1) end # 演奏标题 BGM $game_system.bgm_play($data_system.title_bgm) # 停止演奏 ME、BGS Audio.me_stop Audio.bgs_stop # 执行过渡 Graphics.transition # 主循环 loop do # 刷新游戏画面 Graphics.update # 刷新输入信息 Input.update # 刷新画面 update # 如果画面被切换就中断循环 if $scene != self break end end # 装备过渡 Graphics.freeze # 释放命令窗口 @command_window.dispose # 释放标题图形 @sprite.bitmap.dispose @sprite.dispose for i in 0..19 @picture.bitmap.dispose @picture.dispose end end #-------------------------------------------------------------------------- # ● 刷新画面 #-------------------------------------------------------------------------- def update for i in 0..19 @picture.x -= 3;@picture.y += 3 @picture.opacity -= rand(10) + 1 if @picture.opacity