如何为我的游戏制作选项菜单?

时间:2013-11-11 20:24:51

标签: actionscript-3 flash

我正在尝试为我的游戏制作一个选项菜单,其中有2个设置。一个设置禁用游戏中的所有音乐,另一个设置禁用所有音效。如果用户选择禁用所有声音效果而不是音乐,那么当他退出游戏并返回游戏时,它应该记住他的设置。我已经多次尝试创建这种系统,但它根本不适用于我。我不知道如何创建它。有人可以帮忙吗?我在动作脚本上相当新。

从库中访问所有声音

2 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

答案是使用声音管理器类的静态功能,它将具有两个公共布尔属性,然后您可以使用选项菜单单独设置。然后,每次你想要播放声音时,班级都会检查这些布尔值(为此,使用它的功能来播放声音)。一个例子:

public class SoundManager {
    private var _musicOn:Boolean;
    private var _soundOn:Boolean;
    private var _currentMusicChannel:SoundChannel;
    private var _currentMusicSelected:Sound; // what to start when music is enabled
    public static function get musicOn():Boolean { return _musicOn; }
    public static function set musicOn(value:Boolean):void {
        if (value==_musicOn) return;
        _musicOn=value;
        if (_musicOn) _currentMusicChannel=_currentMusicSelected.play();
        else if (_currentMusicChannel) {
            _currentMusicChannel.stop();
            _currentMusicChannel=null;
        }
    }
    public static function get soundOn():Boolean { return _soundOn; }
    public static function set soundOn(value:Boolean):void { _soundOn=value; } 
    // a simple version, as this is an example
    public static function playSound(someSound:String):void {
        var aSound:Sound=getSoundFromString(someSound); // TODO
        // ^ you have to devise a method to convert strings to sounds
        if (isMusic(aSound)) {
            // TODO, you should have either one music or a set of em, so if you're
            // trying to play a music, this should return true, otherwise false
            _currentMusicSelected=aSound;
            if (_musicOn) _currentMusicChannel=aSound.play();
        } else {
            // a simpler version, the more advanced version should allow instant mute
            if (_soundOn) aSound.play();
        }
    }
    // some other functions are missing from here, as well as sound library and support stuff
}