Project1
标题:
如何在游戏开始标题前添加一个画面
[打印本页]
作者:
wuchen880823
时间:
2009-7-10 23:07
标题:
如何在游戏开始标题前添加一个画面
打开游戏后先看到一个画面比如某某人制作 然后再进入选择标题。
顺便问下XP和VX得脚本是不是通用的。
作者:
nijiaxiaodong
时间:
2009-7-11 01:08
提示:
作者被禁止或删除 内容自动屏蔽
作者:
kakarot
时间:
2009-7-11 02:01
本帖最后由 kakarot 于 2009-7-11 02:04 编辑
首先VX和XP脚本貌似不是通用的~
然后LOGO的问题,转来脚本一枚供参考~
#==============================================================================
# 本脚本来自www.66RPG.com,使用和转载请保留此信息
#==============================================================================
#--------------------------------------------------------------------------
# 开始菜单前加入图片
#--------------------------------------------------------------------------
class Scene_logo
#--------------------------------------------------------------------------
# ● 住处理
#--------------------------------------------------------------------------
def main
# 播放LOGO音效
Audio.se_play("Audio/ME/ED6407.ogg")
# 生成标题图形
@sprite = Sprite.new
@sprite.bitmap = RPG::Cache.picture("logo.png")
# 生成位置为画面中央
@sprite.x = (640 - @sprite.bitmap.width) / 2
@sprite.y = (480 - @sprite.bitmap.height) / 2
# 透明度(0为完全透明)
@sprite.opacity = 255
# 执行过渡
Graphics.transition
# 主循环
loop do
# 刷新游戏画面
Graphics.update
# 刷新输入信息
Input.update
# 刷新画面
update
# 如果画面被切换就中断循环
if $scene != self
break
end
end
# 装备过渡
Graphics.freeze
# 释放标题图形
@sprite.bitmap.dispose
@sprite.dispose
end
#--------------------------------------------------------------------------
# ● 刷新画面
#--------------------------------------------------------------------------
def update
# 按下 A,B,C,下,上,左,右 键的情况下
if Input.trigger?(Input::A)
refresh
end
if Input.trigger?(Input::B)
refresh
end
if Input.trigger?(Input::C)
refresh
end
if Input.trigger?(Input::DOWN)
refresh
end
if Input.trigger?(Input::UP)
refresh
end
if Input.trigger?(Input::RIGHT)
refresh
end
if Input.trigger?(Input::LEFT)
refresh
end
def refresh
$scene = Scene_Title.new
Audio.se_stop
end
end
end
#==============================================================================
# ■ Main
#------------------------------------------------------------------------------
# 各定义结束后、从这里开始实际处理。
#==============================================================================
begin
# 准备过渡
# 设置系统默认字体
Font.default_name = (["黑体"])
Graphics.freeze
# 生成场景对像 (标题画面)
$scene = Scene_logo.new
# $scene 为有效的情况下调用 main 过程
while $scene != nil
$scene.main
end
# 淡入淡出
Graphics.transition(20)
rescue Errno::ENOENT
# 补充 Errn:ENOENT 以外错误
# 无法打开文件的情况下、显示信息后结束
filename = $!.message.sub("No such file or directory - ", "")
print("找不到文件 #{filename}。 ")
end
#==============================================================================
# 本脚本来自www.66RPG.com,使用和转载请保留此信息
#==============================================================================
复制代码
替换掉MAIN脚本就好了,默认logo图片名为logo.png,放在pictures文件夹下~
作者:
huajun123
时间:
2009-7-11 06:30
提示:
作者被禁止或删除 内容自动屏蔽
作者:
玄月
时间:
2009-7-11 06:33
本帖最后由 玄月 于 2009-7-11 06:36 编辑
没这么麻烦………………我的方便一点,脚本流新人动用么?
同替换Mian。只需要改动60行和61行就行了,自定义开始地图的ID和坐标
他在进入标题之前会先进入一副地图,然后你就用事件吧。
在事件的最后只需要用事件编辑器最后一个功能——脚本调用$scene = Scene_Title.new就能进入脚本标题了,事件标题的话可以用场所移动切换到事件标题所在的场景
#==============================================================================
# ■ Scene_LOGO
#------------------------------------------------------------------------------
# 处理标题画面的类。
#==============================================================================
class Scene_Logo
#--------------------------------------------------------------------------
# ● 住处理
#--------------------------------------------------------------------------
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")
$continue_enabled = false
for i in 0..19
if FileTest.exist?("Save/Save#{i}.rxdata")
$continue_enabled = true
end
end
# 如果不是从梦境过来就演奏标题 BGM
if $from_dream_to_title == false
$game_system.bgm_play($data_system.title_bgm)
else
$from_dream_to_title = false
end
Audio.me_stop; Audio.bgs_stop
command_goto_title_map
end
def command_goto_title_map # 生成各种游戏对像并转到Title地图
$game_temp = Game_Temp.new
$game_system = Game_System.new
$game_switches = Game_Switches.new
$game_variables = Game_Variables.new
$game_self_switches = Game_SelfSwitches.new
$game_screen = Game_Screen.new
$game_actors = Game_Actors.new
$game_party = Game_Party.new
$game_troop = Game_Troop.new
$game_map = Game_Map.new
$game_player = Game_Player.new
$game_party.setup_starting_members # 设置初期同伴位置
$game_map.setup() # 设置Title的地图
$game_player.moveto(0,0) # 主角向初期位置移动
$game_player.refresh # 刷新主角
$game_map.update # 刷新地图 (执行并行事件)
$title_selecting = true
$scene = Scene_Map.new # 切换地图画面
end
def battle_test
# 载入数据库 (战斗测试用)
$data_actors = load_data("Data/BT_Actors.rxdata")
$data_classes = load_data("Data/BT_Classes.rxdata")
$data_skills = load_data("Data/BT_Skills.rxdata")
$data_items = load_data("Data/BT_Items.rxdata")
$data_weapons = load_data("Data/BT_Weapons.rxdata")
$data_armors = load_data("Data/BT_Armors.rxdata")
$data_enemies = load_data("Data/BT_Enemies.rxdata")
$data_troops = load_data("Data/BT_Troops.rxdata")
$data_states = load_data("Data/BT_States.rxdata")
$data_animations = load_data("Data/BT_Animations.rxdata")
$data_tilesets = load_data("Data/BT_Tilesets.rxdata")
$data_common_events = load_data("Data/BT_CommonEvents.rxdata")
$data_system = load_data("Data/BT_System.rxdata")
# 重置测量游戏时间用的画面计数器
Graphics.frame_count = 0
# 生成各种游戏对像
$game_temp = Game_Temp.new
$game_system = Game_System.new
$game_switches = Game_Switches.new
$game_variables = Game_Variables.new
$game_self_switches = Game_SelfSwitches.new
$game_screen = Game_Screen.new
$game_actors = Game_Actors.new
$game_party = Game_Party.new
$game_troop = Game_Troop.new
$game_map = Game_Map.new
$game_player = Game_Player.new
# 设置战斗测试用同伴
$game_party.setup_battle_test_members
# 设置队伍 ID、可以逃走标志、战斗背景
$game_temp.battle_troop_id = $data_system.test_troop_id
$game_temp.battle_can_escape = true
$game_map.battleback_name = $data_system.battleback_name
# 演奏战斗开始 BGM
$game_system.se_play($data_system.battle_start_se)
# 演奏战斗 BGM
$game_system.bgm_play($game_system.battle_bgm)
# 切换到战斗画面
$scene = Scene_Battle.new
end
end
#==============================================================================
# ■ Main
#------------------------------------------------------------------------------
# 各定义结束后、从这里开始实际处理。
#==============================================================================
begin
# 准备过渡
# 设置系统默认字体
Font.default_name = (["黑体"])
Graphics.freeze
# 生成场景对像 (标题画面)
$DEBUG = true
$scene = Scene_Logo.new
# $scene 为有效的情况下调用 main 过程
while $scene != nil
$scene.main
end
# 淡入淡出
Graphics.transition(20)
rescue Errno::ENOENT
# 补充 Errno::ENOENT 以外错误
# 无法打开文件的情况下、显示信息后结束
filename = $!.message.sub("No such file or directory - ", "")
print("找不到文件 #{filename}。 ")
end
复制代码
作者:
huajun123
时间:
2009-7-11 07:45
提示:
作者被禁止或删除 内容自动屏蔽
作者:
风中承诺
时间:
2009-7-11 13:10
如果把游戏中播放flash改一下。能不能行呢?
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1