每次玩家进入新关卡时,我如何添加声音效果?我正在试图解决这个今晚到期的项目,我已经开展了数周的工作,我的项目对项目的不同方面使用了不同的类。
等级类代码:
package {
public class LevelData {
public var backgroundImage:String;
public var pointsToReachNextLevel:Number;
public var enemySpawnRate:Number;
public var levelNum:Number;
public function LevelData(levelNumber:Number) {
levelNum = levelNumber;
if ( levelNumber % 2 == 1 )
{
backgroundImage = "Cosmic";
pointsToReachNextLevel = 150;
enemySpawnRate = 0.05;
}
else if ( levelNumber == 2 )
{
backgroundImage = "Mystic";
pointsToReachNextLevel = 350;
enemySpawnRate = 0.1;
}
else if ( levelNumber == 3 )
{
backgroundImage = "Cosmic";
pointsToReachNextLevel = 600;
enemySpawnRate = 0.15;
}
else if ( levelNumber == 4 )
{
backgroundImage = "Mystic";
pointsToReachNextLevel = 5820; // roughly 3 minutes enemies stop appearing
enemySpawnRate = 0.6 - ( 2 / levelNumber );
}
}
}
}
来自Engine类的片段:
public function setBackgroundImage(): void //background change
{
if (currentLevelData.backgroundImage == "Cosmic") {
backgroundContainer.addChild(new CosmicBackground());
} else if (currentLevelData.backgroundImage == "Mystic")
{
backgroundContainer.addChild(new MysticBackground());
}
}
答案 0 :(得分:0)
Flash中有多种播放声音的方式。老实说,使用代码最可靠的方法是为自己编写一个专用类,实现SoundChannel,管理所有声音加载,回放和转换(音量,声音等)。它需要一些工作,但从长远来看,它会得到回报。
当然,看起来你的最后期限比那更严格。如果你需要一个快速而肮脏的解决方案,这里就是。
将您的声音添加到Flash库中。 (这应该加快速度,否则你必须oad it from an external file constantly.)
设置库中的声音,以便从ActionScript 3中访问。Here's an answer detailing how to do that.为此,我将其称为" sndLevelUp。"
< / LI>在课程顶部创建一个声音实例:var levelUp:sndLevelUp = new sndLevelUp();
每次播放器升级时播放声音。 levelUp.play();
如果您有更多时间,可能需要设置SoundChannel,这样可以更好地控制播放,音量和平移。否则,这是快速的方法。