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

Project1

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

随机战斗音乐

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
145
在线时间
23 小时
注册时间
2006-9-15
帖子
15
跳转到指定楼层
1
发表于 2007-3-31 05:03:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
RMXP虽然有设置战斗音乐,不过只能设置一种。每次战斗都是用一个音乐,听不了几遍就会腻了。尤其是像我这样的新手做的游戏,本来就没什么好图片,要是音乐在太单调,做出来的游戏就没法玩了。所以,我利用随技数的功能,制作了这个小系统,在一般战斗中,有几种不同的音乐可以播放。

(当然,改脚本的话也许会有更好的效果,但对新手来说难了点……{/gg})

现在假设有3个战斗音乐,分别为音乐1、音乐2和音乐3。

首先,需要一个接受随机数的变量,取名为“随机数”。
然后在公共事件中设置一个公共事件,取名为“随机战斗音乐”,目标无。

变量操作:[随机数] = 随机数 (1..3)
条件分歧:变量 [随机数] == 1
  演奏BGM:'音乐1', 100, 100

  除此以外的场合
    条件分歧:变量 [随机数] == 2
      演奏BGM:'音乐2', 100, 100

      除此以外的场合
        演奏BGM:'音乐1', 100, 100

        分歧结束

     分歧结束

接下来,在队伍中设置需要随机战斗音乐的敌人队伍。
条件:回合0    距离:战斗
公共事件:随机战斗音乐

另外,在系统中,将战斗音乐设为“无”,否则在战斗开始前会先播放1秒钟左右的系统战斗音乐,才会开始随机战斗音乐。

这样,在遇敌时就可以随机播放某个战斗音乐。当然战斗音乐个数还可以增加。

(虽然每一个队伍都要设置一次显得麻烦了点,不过我个人觉得还是值得的)

Lv1.梦旅人

梦石
0
星屑
145
在线时间
23 小时
注册时间
2006-9-15
帖子
15
2
 楼主| 发表于 2007-3-31 05:03:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
RMXP虽然有设置战斗音乐,不过只能设置一种。每次战斗都是用一个音乐,听不了几遍就会腻了。尤其是像我这样的新手做的游戏,本来就没什么好图片,要是音乐在太单调,做出来的游戏就没法玩了。所以,我利用随技数的功能,制作了这个小系统,在一般战斗中,有几种不同的音乐可以播放。

(当然,改脚本的话也许会有更好的效果,但对新手来说难了点……{/gg})

现在假设有3个战斗音乐,分别为音乐1、音乐2和音乐3。

首先,需要一个接受随机数的变量,取名为“随机数”。
然后在公共事件中设置一个公共事件,取名为“随机战斗音乐”,目标无。

变量操作:[随机数] = 随机数 (1..3)
条件分歧:变量 [随机数] == 1
  演奏BGM:'音乐1', 100, 100

  除此以外的场合
    条件分歧:变量 [随机数] == 2
      演奏BGM:'音乐2', 100, 100

      除此以外的场合
        演奏BGM:'音乐1', 100, 100

        分歧结束

     分歧结束

接下来,在队伍中设置需要随机战斗音乐的敌人队伍。
条件:回合0    距离:战斗
公共事件:随机战斗音乐

另外,在系统中,将战斗音乐设为“无”,否则在战斗开始前会先播放1秒钟左右的系统战斗音乐,才会开始随机战斗音乐。

这样,在遇敌时就可以随机播放某个战斗音乐。当然战斗音乐个数还可以增加。

(虽然每一个队伍都要设置一次显得麻烦了点,不过我个人觉得还是值得的)

Lv1.梦旅人

梦石
0
星屑
145
在线时间
23 小时
注册时间
2006-9-15
帖子
15
3
 楼主| 发表于 2007-3-31 05:19:46 | 只看该作者
发表感言:
这个思路,使我在学习VB的时候学到的。
VB中常用到的语句大概就是

VB中的语言              RMXP中的语言
Dim ... as ...         (变量操作:[...] =...)
If ... Then ...        (条件分歧:[...] =...)
Else                   (除此之外的场合)
   If...Then...          (条件分歧:[...] =...)
   End If                (分歧结束)
End If                 (分歧结束)


感觉上差不多,于是就拿来用了。
我知道改脚本一定能做得更好,但我对脚本还不太熟悉,就先凑合着用。

另外,这个随机系统不一定要应用到战斗音乐上,还可以用来制作随机战斗,随机事件,随机获得物品等,总之跟随机有关的都可以试一下。

尤其是随机战斗,RMXP的“踩地雷”式遇敌不是很方便,想躲也躲不掉,但单纯的在地图上设置敌人,毕竟没有随即遇到敌人感觉好。于是就可以稍微废点时间,设置一下,遇到同一个人可能会有几个不同的战斗队伍,才不会显得那么单调。
回复 支持 反对

使用道具 举报

Lv2.观梦者

湛蓝的深海子<

梦石
0
星屑
600
在线时间
188 小时
注册时间
2006-12-5
帖子
1105

贵宾

4
发表于 2007-3-31 05:26:21 | 只看该作者
其实把调用战斗那一部分改成这样就可以了……
#--------------------------------------------------------------------------
# ● 调用战斗
#--------------------------------------------------------------------------
def call_battle
   # 清除战斗调用标志
   $game_temp.battle_calling = false
   # 清除菜单调用标志
   $game_temp.menu_calling = false
   $game_temp.menu_beep = false
   # 生成遇敌计数
   $game_player.make_encounter_count
   # 记忆地图 BGM 、停止 BGM
   $game_temp.map_bgm = $game_system.playing_bgm
   $game_system.bgm_stop
   # 演奏战斗开始 SE
   $game_system.se_play($data_system.battle_start_se)
   # 演奏战斗 BGM
   randbgm = rand(4)
   case randbgm
   when 0
      Audio.bgm_play("Audio/BGM/001-Battle01.mid")
   when 1
     Audio.bgm_play("Audio/BGM/002-Battle02.mid")
   when 2
     Audio.bgm_play("Audio/BGM/003-Battle03.mid")
   when 3
     Audio.bgm_play("Audio/BGM/004-Battle04.mid")
    end
   # 矫正主角姿势
   $game_player.straighten
   # 切换到战斗画面
   $scene = Scene_Battle.new
end
end
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2007-1-31
帖子
53
5
发表于 2007-3-31 05:30:49 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv2.观梦者

湛蓝的深海子<

梦石
0
星屑
600
在线时间
188 小时
注册时间
2006-12-5
帖子
1105

贵宾

6
发表于 2007-3-31 05:38:42 | 只看该作者
以下引用Oo蝶儿oO于2007-3-30 21:30:49的发言:

  1. class Scene_Map
  2. #--------------------------------------------------------------------------
  3. # ● 调用战斗
  4. #--------------------------------------------------------------------------
  5. def call_battle
  6.   # 清除战斗调用标志
  7.   $game_temp.battle_calling = false
  8.   # 清除菜单调用标志
  9.   $game_temp.menu_calling = false
  10.   $game_temp.menu_beep = false
  11.   # 生成遇敌计数
  12.   $game_player.make_encounter_count
  13.   # 记忆地图 BGM 、停止 BGM
  14.   $game_temp.map_bgm = $game_system.playing_bgm
  15.   $game_system.bgm_stop
  16.   # 演奏战斗开始 SE
  17.   $game_system.se_play($data_system.battle_start_se)
  18.   # 演奏战斗 BGM
  19.   randbgm = rand(6)
  20.   case randbgm
  21. when 1
  22.     Audio.bgm_play("Audio/BGM/001-Battle01.mid")
  23. when 1
  24.    Audio.bgm_play("Audio/BGM/002-Battle02.mid")
  25. when 2
  26.    Audio.bgm_play("Audio/BGM/003-Battle03.mid")
  27. when 3
  28.    Audio.bgm_play("Audio/BGM/004-Battle04.mid")
  29.    end
  30.   # 矫正主角姿势
  31.   $game_player.straighten
  32.   # 切换到战斗画面
  33.   $scene = Scene_Battle.new
  34. end
  35. end
复制代码

应该还要加上class Scene_Map在第一行


加上之后就可以直接插入到MAIN前面调用了,我只是说一下在“Scene_Map”怎么修改而已……


你改的有几个错误……
randbgm = rand(6)


这个应该和随机播放音乐的总数相等……
when 0
     Audio.bgm_play("Audio/BGM/战斗-草原")
    when 0  

1、编号不能一样……
2、音乐文件名要包括扩展名,例如MP3、WAV什么的

回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

圣魔

梦石
0
星屑
50
在线时间
0 小时
注册时间
2007-1-12
帖子
3395
7
发表于 2007-3-31 05:49:00 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2007-1-31
帖子
53
8
发表于 2007-3-31 05:51:37 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv2.观梦者

湛蓝的深海子<

梦石
0
星屑
600
在线时间
188 小时
注册时间
2006-12-5
帖子
1105

贵宾

9
发表于 2007-3-31 05:52:02 | 只看该作者
以下引用永劫的咎人于2007-3-30 21:49:00的发言:

我已经放弃的修改……被弄出来了......
这样做大游戏容量会让人受不了的。


{/fd}
这句话什么意思?一个游戏战斗音乐不用放太多啊,4个就差不多了,容量也不会怎么大啊
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
270
在线时间
1373 小时
注册时间
2005-10-16
帖子
5113

贵宾

10
发表于 2007-3-31 05:53:29 | 只看该作者
{/hx}{/hx}{/hx}{/hx}

  1.   # 演奏战斗 BGM
  2.   randbgm = rand(4)
  3.   case randbgm
  4.   when 0
  5.      Audio.bgm_play("Audio/BGM/001-Battle01.mid")
  6.   when 1
  7.     Audio.bgm_play("Audio/BGM/002-Battle02.mid")
  8.   when 2
  9.     Audio.bgm_play("Audio/BGM/003-Battle03.mid")
  10.   when 3
  11.     Audio.bgm_play("Audio/BGM/004-Battle04.mid")
  12.    end
复制代码


可以再邪恶一些~~~

  1.   # 演奏战斗 BGM
  2.   randbgm = rand(4) + 1
  3.   bgmname = sprintf("%03d-Battle%02d",randbgm,randbgm)
  4.   Audio.bgm_play("Audio/BGM/#{bgmname}")
复制代码


{/hx}{/hx}{/hx}{/hx}

另外,容量会很大么?金庸RM20首mid也才209K而已
我只个搬答案的
叔叔我已经当爹了~
婚后闪人了……
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-5-22 02:33

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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