Project1
标题:
如何设置随机GAME OVER和随机遇敌渐变
[打印本页]
作者:
calvin0703
时间:
2009-10-4 13:37
标题:
如何设置随机GAME OVER和随机遇敌渐变
遇敌渐变和GAMVE OVER图只有1个太单调了
怎么弄多个?
作者:
「旅」
时间:
2009-10-4 14:11
module RPG
class System
def gameover_name
#——@gameover_name为默认结束图,可在后面添加别的。
a = [@gameover_name,"其他1","其他2"]
i = rand(a.size)
return a[i]
end
def battle_transition
#——@battle_transition为默认战斗渐变图,可在后面添加别的。
a = [@battle_transition,"002-Blind02","003-Blind03"]
i = rand(a.size)
return a[i]
end
end
end
复制代码
注意必须在目录下放好设定的图片哦~~~~
作者:
calvin0703
时间:
2009-10-4 18:16
2#
「旅」
请问这个脚本加在哪里啊
作者:
奶油Da蛋糕
时间:
2009-10-4 19:02
本帖最后由 奶油Da蛋糕 于 2009-10-4 19:09 编辑
旅的脚本中module是什么?
然后,class System这个类有么
好深奥的样子。
我来写个简单的吧。
class Scene_Gameover
def main
sprite = ["第一张图片相对路径","第二张图片相对路径","第三张图片相对路径"]
#GAMEOVER的图片地址,可以随便你直接往后面加几张都行,中间用","隔开
i = rand(sprite.size)
@sprite = Sprite.new
@sprite.bitmap = RPG::Cache.gameover(sprite[i])
# 停止 BGM、BGS
$game_system.bgm_play(nil)
$game_system.bgs_play(nil)
# 演奏游戏结束 ME
$game_system.me_play($data_system.gameover_me)
# 执行过渡
Graphics.transition(120)
# 主循环
loop do
# 刷新游戏画面
Graphics.update
# 刷新输入信息
Input.update
# 刷新画面情报
update
# 如果画面被切换的话就中断循环
if $scene != self
break
end
end
# 准备过渡
Graphics.freeze
# 释放游戏结束图形
@sprite.bitmap.dispose
@sprite.dispose
# 执行过度
Graphics.transition(40)
# 准备过渡
Graphics.freeze
# 战斗测试的情况下
if $BTEST
$scene = nil
end
end
end
复制代码
class Scene_Battle
def main
sprite = ["第一张图片相对路径","第二张图片相对路径","第三张图片相对路径"]
#渐变图的图片地址,可以随便你直接往后面加几张都行,中间用","隔开
#不用加Graphics/Transitions/了。
i = rand(sprite.size)
# 初始化战斗用的各种暂时数据
$game_temp.in_battle = true
$game_temp.battle_turn = 0
$game_temp.battle_event_flags.clear
$game_temp.battle_abort = false
$game_temp.battle_main_phase = false
$game_temp.battleback_name = $game_map.battleback_name
$game_temp.forcing_battler = nil
# 初始化战斗用事件解释器
$game_system.battle_interpreter.setup(nil, 0)
# 准备队伍
@troop_id = $game_temp.battle_troop_id
$game_troop.setup(@troop_id)
# 生成角色命令窗口
s1 = $data_system.words.attack
s2 = $data_system.words.skill
s3 = $data_system.words.guard
s4 = $data_system.words.item
@actor_command_window = Window_Command.new(160, [s1, s2, s3, s4])
@actor_command_window.y = 160
@actor_command_window.back_opacity = 160
@actor_command_window.active = false
@actor_command_window.visible = false
# 生成其它窗口
@party_command_window = Window_PartyCommand.new
@help_window = Window_Help.new
@help_window.back_opacity = 160
@help_window.visible = false
@status_window = Window_BattleStatus.new
@message_window = Window_Message.new
# 生成活动块
@spriteset = Spriteset_Battle.new
# 初始化等待计数
@wait_count = 0
# 执行过渡
if sprite[i] == ""
Graphics.transition(20)
else
Graphics.transition(40, "Graphics/Transitions/" +
sprite[i])
end
# 开始自由战斗回合
start_phase1
# 主循环
loop do
# 刷新游戏画面
Graphics.update
# 刷新输入信息
Input.update
# 刷新画面
update
# 如果画面切换的话就中断循环
if $scene != self
break
end
end
# 刷新地图
$game_map.refresh
# 准备过渡
Graphics.freeze
# 释放窗口
@actor_command_window.dispose
@party_command_window.dispose
@help_window.dispose
@status_window.dispose
@message_window.dispose
if @skill_window != nil
@skill_window.dispose
end
if @item_window != nil
@item_window.dispose
end
if @result_window != nil
@result_window.dispose
end
# 释放活动块
@spriteset.dispose
# 标题画面切换中的情况
if $scene.is_a?(Scene_Title)
# 淡入淡出画面
Graphics.transition
Graphics.freeze
end
# 战斗测试或者游戏结束以外的画面切换中的情况
if $BTEST and not $scene.is_a?(Scene_Gameover)
$scene = nil
end
end
end
复制代码
直接插入到MAIN前面就可以了。
作者:
「旅」
时间:
2009-10-4 20:39
4#
奶油Da蛋糕
module是模块~~F1里面有一个 RPGXP 数据结构 就是定义这个的。主要是来支持$data_xxxxx的这些变量~~~
建议直接修改返回值,这样的话几乎不可能有冲突出现~~~
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1