// Use this for initialization
 void Start()
 {
     DangerTag = transform.parent.GetComponent<FloorRythm>().DangerTag;
     audioSys = GameObject.Find("Audio System").GetComponent<AudioSystem>();
     scoreManager = GameObject.Find("Score Manager").GetComponent<ScoreManager>();
     BPM = 280;// GameObject.Find("Main Camera").GetComponent<SceneSetup>().BPM;
 }
示例#2
0
        public static void Initialize( Game game )
        {
            // Create essential system instances
            g_AudioSystem = new AudioSystem( game );

            // Register systems
            game.Components.Add(g_AudioSystem);
        }
示例#3
0
 public static AudioSystem Get()
 {
     if (audioSystem == null)
     {
         audioSystem = GameObject.FindGameObjectWithTag("AudioSystem").GetComponent<AudioSystem>();
     }
     return audioSystem;
 }
        public override void OnClosed(EventArgs e)
        {
            AudioSystem.Shutdown();

            base.OnClosed(e);
        }
示例#5
0
        public void StartSFMLProgram()
        {
            #region Initialization
            Map Map = new Map(_m.GetLength(0), _m.GetLength(1));

            for (int y = 0; y < _m.GetLength(1); y++)
            {
                for (int x = 0; x < _m.GetLength(0); x++)
                {
                    switch (_m[y, x])
                    {
                    case 1:
                        Map[x, y] = new Tile
                        {
                            Solid      = true,
                            DownAtlas  = new Vector2i(1, 0),
                            UpAtlas    = new Vector2i(1, 0),
                            LeftAtlas  = new Vector2i(1, 0),
                            RightAtlas = new Vector2i(1, 0)
                        };
                        break;

                    case 2:
                        Map[x, y] = new CircleTile
                        {
                            Solid      = true,
                            DownAtlas  = new Vector2i(1, 0),
                            UpAtlas    = new Vector2i(1, 0),
                            LeftAtlas  = new Vector2i(1, 0),
                            RightAtlas = new Vector2i(1, 0),
                            CeilAtlas  = new Vector2i(0, 0),
                            FloorAtlas = new Vector2i(2, 0),
                            //IsCeilMap = true
                        };
                        break;

                    case 5:
                        Map[x, y] = new Tile
                        {
                            Solid      = false,
                            DownAtlas  = new Vector2i(0, 0),
                            UpAtlas    = new Vector2i(0, 0),
                            LeftAtlas  = new Vector2i(1, 0),
                            RightAtlas = new Vector2i(1, 0),
                            CeilAtlas  = new Vector2i(0, 0),
                            FloorAtlas = new Vector2i(5, 0)
                        };
                        break;

                    case 0:
                        Map[x, y] = new Tile
                        {
                            Solid      = false,
                            DownAtlas  = new Vector2i(0, 0),
                            UpAtlas    = new Vector2i(0, 0),
                            LeftAtlas  = new Vector2i(1, 0),
                            RightAtlas = new Vector2i(1, 0),
                            CeilAtlas  = new Vector2i(0, 0),
                            FloorAtlas = new Vector2i(5, 0)
                        };
                        break;

                    case 6:
                        Map[x, y] = new Tile
                        {
                            Solid      = false,
                            DownAtlas  = new Vector2i(0, 0),
                            UpAtlas    = new Vector2i(0, 0),
                            LeftAtlas  = new Vector2i(1, 0),
                            RightAtlas = new Vector2i(1, 0),
                            CeilAtlas  = new Vector2i(0, 0),
                            FloorAtlas = new Vector2i(5, 0),
                            IsCeilMap  = true
                        };
                        break;
                    }
                }
            }


            window = new RenderWindow(new VideoMode(800, 600), "SFML window", Styles.Default);
            window.SetVisible(true);
            window.Closed     += new EventHandler(OnClosed);
            window.KeyPressed += new EventHandler <KeyEventArgs>(OnKeyPressed);
            window.MouseMoved += Window_MouseMoved;

            //Vector2f screen = new Vector2f(200, 100);

            Vector2f screen = new Vector2f(window.Size.X, window.Size.Y);
            screen *= 0.3f;
            rs      = new RenderTexture((uint)screen.X, (uint)screen.Y);

            caster = new RayCaster(Map, 32);

            Renderer ren = new Renderer(caster, window, rs, Map, fov, new Color(16, 16, 16));
            ren.Textures.Add(new Texture("Texture.png"));
            ren.MapAtlasInUse = 0;
            #endregion

            Vector2f player = new Vector2f(caster.CellSize * 6 + 8, caster.CellSize * 5 + 8);
            Vector2f sp1    = player + new Vector2f(70, 15);
            Vector2f sp2    = player + new Vector2f(50, 70);

            Vector2f sp3  = new Vector2f(caster.CellSize * 6 + 8, caster.CellSize * 5 + 8) + new Vector2f(30, -30);
            Vector2f scen = sp1 + new Vector2f(60, 60);

            Vector2f M;

            font = new Font("Perfect DOS VGA 437 Win.ttf");
            Text t          = new Text("Fps: ", font, 16);
            int  fps        = 0;
            int  fpsCounter = 0;
            int  ticks      = Environment.TickCount;
            int  ticksFps   = Environment.TickCount;


            int timeDelta = 0;

            var lamps = new List <Light>();
            //{
            //    new Light (
            //        new Vector2f(sp1.X,sp1.Y),
            //        new Color(255,255,255)
            //    ),
            //    new Light (
            //        new Vector2f(sp2.X,sp2.Y),
            //        new Color(128,128,0)
            //    )
            //};



            List <Sprite> sprites = new List <Sprite>();
            Random        r       = new Random();

            for (int i = 0; i < 5; i++)
            {
                sprites.Add(new Sprite
                            (
                                new Vector2f((float)r.NextDouble() * caster.CellSize * Map.Tiles.GetLength(0), (float)r.NextDouble() * caster.CellSize * Map.Tiles.GetLength(1)),
                                new Vector2i(3, 0)
                            ));
            }
            Random rand = new Random();
            lamps = sprites.Select(s => new Light(s.Position, new Color((byte)(rand.NextDouble() * 80), 0, (byte)(rand.NextDouble() * 80)))).ToList();


            ren.GenerateLightMap(lamps, 0.5f);
            //sprites.Add(new Sprite
            //(
            //    sp2,
            //    new Vector2i(3, 0)
            //));

            //Sprite p = new Sprite
            //(
            //    sp1,
            //    new Vector2i(3, 0)
            //);
            //sprites.Add(p);

            AudioSystem audio        = new AudioSystem(32, Map, caster);
            Sprite      playerSprite = new Sprite(player, new Vector2i(0, 0));
            audio.Listener = playerSprite;
            int a = audio.LoadSound("ts.wav");
            audio.PlaySound(a, true, sp1);

            float look   = rs.Size.Y / 2;
            float height = caster.CellSize / 2;
            ren.SkyPosition = new Vector2f(5, 5);
            ren.SkyAtlas    = new Vector2i(6, 0);

            window.MouseWheelScrolled += (o, e) =>
            {
                height += e.Delta / 1;
                if (height > caster.CellSize)
                {
                    height = caster.CellSize;
                }

                if (height < 0)
                {
                    height = 0;
                }
            };

            while (window.IsOpen)
            {
                if (Environment.TickCount - ticksFps >= timeDelta)
                {
                    ticksFps = Environment.TickCount;
                    if (Environment.TickCount - ticks >= 1000)
                    {
                        fps        = fpsCounter;
                        fpsCounter = 0;
                        ticks      = Environment.TickCount;
                    }

                    angle -= (window.Size.X / 2 - Mouse.GetPosition(window).X) / 4f;
                    look  += (window.Size.Y / 2 - Mouse.GetPosition(window).Y) / 3f;

                    if (look < 0)
                    {
                        look = 0;
                    }
                    if (look > rs.Size.Y)
                    {
                        look = rs.Size.Y;
                    }

                    ren.SkyPosition += new Vector2f(0.01f, 0.05f);


                    if (Keyboard.IsKeyPressed(Keyboard.Key.P))
                    {
                        lamps.Add(
                            new Light(player, new Color(255, 255, 255)));
                    }

                    angle -= Keyboard.IsKeyPressed(Keyboard.Key.Left) ? 2 : 0;
                    angle += Keyboard.IsKeyPressed(Keyboard.Key.Right) ? 2 : 0;

                    M = new Vector2f(0, 0);

                    if (Keyboard.IsKeyPressed(Keyboard.Key.W))
                    {
                        M += new Vector2f(CosD(angle) * 2, SinD(angle) * 2);
                    }

                    if (Keyboard.IsKeyPressed(Keyboard.Key.S))
                    {
                        M -= new Vector2f(CosD(angle) * 2, SinD(angle) * 2);
                    }

                    if (Keyboard.IsKeyPressed(Keyboard.Key.D))
                    {
                        M += new Vector2f(CosD(angle + 90) * 2, SinD(angle + 90) * 2);
                    }

                    if (Keyboard.IsKeyPressed(Keyboard.Key.A))
                    {
                        M += new Vector2f(CosD(angle - 90) * 2, SinD(angle - 90) * 2);
                    }


                    RayResult R = caster.RayCast(player, 0);
                    if (R.Magnitude < Math.Abs(M.X) + 10 && Math.Sign(M.X) == 1)
                    {
                        M.X = 0;
                    }

                    R = caster.RayCast(player, 180);
                    if (R.Magnitude < Math.Abs(M.X) + 10 && Math.Sign(M.X) == -1)
                    {
                        M.X = 0;
                    }

                    R = caster.RayCast(player, 90);
                    if (R.Magnitude < Math.Abs(M.Y) + 10 && Math.Sign(M.Y) == 1)
                    {
                        M.Y = 0;
                    }

                    R = caster.RayCast(player, 270);
                    if (R.Magnitude < Math.Abs(M.Y) + 10 && Math.Sign(M.Y) == -1)
                    {
                        M.Y = 0;
                    }

                    player += M;



                    Mouse.SetPosition(new Vector2i((int)window.Size.X / 2, (int)window.Size.Y / 2), window);

                    window.DispatchEvents();
                    rs.Clear(Color.Black);



                    playerSprite.Position = player;
                    playerSprite.Angle    = angle;
                    audio.UpdateAudio();
                    ren.Render(player, angle, height, look, sprites, lamps);
                    t.DisplayedString = $"Fps: {fps} - Lights: {lamps.Count}";
                    rs.Draw(t);
                    ren.ShowBuffer();
                    Thread.Sleep(0);

                    fpsCounter++;
                }
            }
        }
示例#6
0
 private void OnDestroy()
 {
     AudioSystem.Unsubscribe("ZOOMIN_STARTED", MixSnapshots);
     AudioSystem.Unsubscribe("ZOOMOUT_STARTED", MixSnapshots);
 }
示例#7
0
        //-----------------------------------------------------------------------------
        // Overridden Methods
        //-----------------------------------------------------------------------------

        public override void OnCollect(GameControl gameControl)
        {
            gameControl.Inventory.GetAmmo(ammoID).Amount += amount;
            AudioSystem.PlaySound(GameData.SOUND_GET_ITEM);
        }
示例#8
0
 //Input
 public override void Invoke()
 {
     base.Invoke();
     AudioSystem.PlaySound(AudioSystem.Setting.soundClips[sound], data);
 }
        //-----------------------------------------------------------------------------
        // Overridden Methods
        //-----------------------------------------------------------------------------

        public override void OnSwingBegin()
        {
            base.OnSwingBegin();
            AudioSystem.PlaySound(GameData.SOUND_SWORD_SPIN);
        }
示例#10
0
 private void GoToLeaderBoardState()
 {
     AudioSystem.Play(AudioLabel.Click);
     StateManager.UpdateGameState(States.LeaderBoards);
 }
 public override void OnSwingBegin()
 {
     AudioSystem.PlaySound(GameData.SOUND_FIRE_ROD);
 }
 // Use this for initialization
 void Start()
 {
     // gameObject.renderer.sortingLayerName = "";
     audioSys = GameObject.Find("Audio System").GetComponent<AudioSystem>();
     scoreManager = GameObject.Find("Score Manager").GetComponent<ScoreManager>();
 }
示例#13
0
 protected override void Attached(SystemRegistry registry)
 {
     _audioSystem = registry.GetSystem <AudioSystem>();
 }
示例#14
0
 public override void Invoke()
 {
     base.Invoke();
     AudioSystem.ChangeMusic(AudioSystem.Setting.musicClips[clipIndex], data);
 }
示例#15
0
 private void Start()
 {
     audioSystem = GameObject.FindWithTag("AudioSystem").GetComponent <AudioSystem>();
     rb          = GetComponent <Rigidbody2D>();
     isAttacking = false;
 }
示例#16
0
        //-----------------------------------------------------------------------------
        // Lever Methods
        //-----------------------------------------------------------------------------

        public override void OnToggle(bool switchState)
        {
            AudioSystem.PlaySound(GameData.SOUND_SWITCH);
        }
示例#17
0
 public void PlayJingle(string soundFile)
 {
     musicInstance?.Stop(0.5f);
     jingleInstance?.Stop(0.5f);
     jingleInstance = AudioSystem.PlayMusic("Audio/Music/" + soundFile, false);
 }
示例#18
0
 // Bump the monster.
 public static void Bump(Monster monster, Entity sender, EventArgs args)
 {
     AudioSystem.PlaySound(GameData.SOUND_BOMB_BOUNCE);
     monster.Bump(sender.Center);
 }
示例#19
0
 public override void OnHurt(DamageInfo damage)
 {
     AudioSystem.PlaySound(GameData.SOUND_MONSTER_HURT);
 }
示例#20
0
 protected override void Attached(SystemRegistry registry)
 {
     _assetSystem = registry.GetSystem <AssetSystem>();
     _sls         = registry.GetSystem <SceneLoaderSystem>();
     _audioSystem = registry.GetSystem <AudioSystem>();
 }
示例#21
0
 void Start()
 {
     AudioSystem.ChangeMusic(audioCode);
 }
示例#22
0
        public void EnableGame(AudioSystem system)
        {
            m_system = system;

            m_FSM.SetState(new TRRunningState(this));
        }
示例#23
0
    /*** Script Methods ***/
    // Use this for initialization
    void Start()
    {
        /*** Init. Game System ***/

        // Default camera zoom
        Camera.main.orthographicSize = Globals.MinCameraSize + (Globals.MaxCameraSize - Globals.MinCameraSize) / 2.0f;

        // Instantiate all game-level objects
        SManager = gameObject.AddComponent(typeof(SpriteManager)) as SpriteManager;
        ProjManager = gameObject.AddComponent(typeof(ProjectileManager)) as ProjectileManager;
        ShipManager = gameObject.AddComponent(typeof(ShipsManager)) as ShipsManager;
        SceneManager = gameObject.AddComponent(typeof(SceneryManager)) as SceneryManager;
        ResManager = gameObject.AddComponent(typeof(ResourceManager)) as ResourceManager;
        BuildingManager = gameObject.AddComponent(typeof(BuildingManager)) as BuildingManager;
        AManager = gameObject.AddComponent(typeof(AudioManager)) as AudioManager;
        SongManager = gameObject.AddComponent(typeof(AudioSystem)) as AudioSystem;
        OverlayView = gameObject.AddComponent(typeof(GameOverlay)) as GameOverlay;
        ContextMenuView = gameObject.AddComponent(typeof(GameContextMenu)) as GameContextMenu;

        /*** Background System ***/

        // Allocate the background sprites
        BackgroundSprites = new Sprite[BackgroundLayerCount];
        for(int i = 0; i < BackgroundLayerCount; i++)
        {
            // Alloc and retain
            Sprite Background = new Sprite("Textures/BGLayer" + i);
            BackgroundSprites[i] = Background;

            // Make the sprite geometry as big as the max camera, and center it on the camera
            BackgroundSprites[i].SetGeometrySize(new Vector2(Globals.MaxCameraSize, Globals.MaxCameraSize) * 2.5f * Camera.main.aspect);
            BackgroundSprites[i].SetPosition(-BackgroundSprites[i].GetGeometrySize() / 2.0f);
            BackgroundSprites[i].SetDepth(Globals.BackgroundDepth - i); // Each layet is closer to the camera

            // Register sprite
            SManager.AddSprite(Background);
        }

        /*** Add Scene Elements & Load Enemey Spawn List ***/

        // Load the level gen. (note that we finish loading in the "OnLevelWasLoaded" because
        // of a Unity3D-specific design issue
        LevelLoaded = false;
        LevelGen = new LevelManager(TargetLevel);

        /*** TESTING: Add temp ships ***/

        // Create a few ships destroyers bottom right
        for(int i = 0; i < 6; i++)
        {
            int x = UnityEngine.Random.Range(-500, 500);
            int y = UnityEngine.Random.Range(-500, 500);

            BaseShip Friendly = null;
            if(i == 0)
                Friendly = new CarrierShip();
            else if(i == 1)
                Friendly = new DestroyerShip();
            else
                Friendly = new FighterShip();
            Friendly.SetPos(new Vector2(x, y));
            ShipManager.ShipsList.Add(Friendly);
        }
    }
示例#24
0
 private void StartNewGame()
 {
     AudioSystem.Play(AudioLabel.Click);
     Main.StartNewGame();
 }
示例#25
0
 private void OnDestroy()
 {
     AudioSystem.Unsubscribe(FadeOutEvent, OnFadeOut);
 }
示例#26
0
        public override void Update()
        {
            if (isLifting)
            {
            }
            else if (isReturning)
            {
                AudioSystem.LoopSoundWhileActive(GameData.SOUND_SWITCH_HOOK_LOOP);

                // Return to player.
                Vector2F trajectory = (RoomControl.Player.Center + new Vector2F(0, 3)) - Center;
                if (trajectory.Length <= speed)
                {
                    if (collectible != null)
                    {
                        collectible.Collect();
                    }
                    Destroy();
                }
                else
                {
                    physics.Velocity = trajectory.Normalized * speed;
                }
            }
            else if (isHooked)
            {
                // This is the state when latched on to on object, before lifting up.
                timer++;
                if (timer >= GameSettings.SWITCH_HOOK_LATCH_DURATION)
                {
                    // Start lifting if object is still alive.
                    if (IsHookedObjectAlive())
                    {
                        BeginSwitching();
                    }
                    else
                    {
                        BeginReturn(true);
                    }
                }
            }
            else
            {
                AudioSystem.LoopSoundWhileActive(GameData.SOUND_SWITCH_HOOK_LOOP);

                // Check for collectibles to pick up.
                foreach (Collectible c in Physics.GetEntitiesMeeting <Collectible>(CollisionBoxType.Soft))
                {
                    if (c.IsPickupable && c.IsCollectibleWithItems)
                    {
                        collectible = c;
                        c.Destroy();
                        BeginReturn(true);
                    }
                }

                // Return after extending to the maximum distance.
                distance += speed;
                if (distance >= length)
                {
                    BeginReturn(false);
                }
            }

            base.Update();

            // This should handle room edge collisions.
            if (!isReturning && !isHooked && !isLifting && physics.IsColliding)
            {
                BeginReturn(false);
            }
        }
示例#27
0
        private void SetupCombat(Player player, BaseEnemy enemy)
        {
            GetNode <TextureRect>("Background").Texture = Backgrounds.RandomElement();
            AudioSystem.StopAllMusic();
            _playerCombat.CharacterInstance = player;
            _enemyCombat.CharacterInstance  = enemy;

            _combatMenu.currentMenu = CombatMenu.Menu.Main;
            _combatMenu.ResetUI();

            _playerInstance = player;
            _enemyInstance  = enemy;

            if (!_playerInstance.IsConnected(nameof(BaseEntity.HealthChanged),
                                             _combatMenu,
                                             nameof(_combatMenu.UpdatePlayerHealthValue)))
            {
                _playerInstance.Connect(nameof(BaseEntity.HealthChanged), _combatMenu,
                                        nameof(_combatMenu.UpdatePlayerHealthValue));
            }

            if (!_enemyInstance.IsConnected(nameof(BaseEntity.HealthChanged),
                                            _combatMenu,
                                            nameof(_combatMenu.UpdateEnemyHealthValue)))
            {
                _enemyInstance.Connect(nameof(BaseEntity.HealthChanged), _combatMenu,
                                       nameof(_combatMenu.UpdateEnemyHealthValue));
            }

            if (!_enemyCombat.IsConnected(nameof(CombatChar.DamageTaken), this,
                                          nameof(OnEnemy_TakeDamage)))
            {
                _enemyCombat.Connect(nameof(CombatChar.DamageTaken), this,
                                     nameof(OnEnemy_TakeDamage));
            }

            _combatMenu.SetPlayerHealthValue(_playerInstance.maxHealth,
                                             _playerInstance.Health);
            _combatMenu.SetEnemyHealthValue(_enemyInstance.Stat.MaxHealth,
                                            _enemyInstance.Health);

            var weaponName    = _playerInstance.EquippedWeapon;
            var weaponTexture =
                GD.Load <Texture>(string.Format(WeaponTexturePath,
                                                weaponName.ToLower()));

            if (weaponTexture == null)
            {
                GD.PushWarning($"Weapon Battle sprite for {weaponName} not found");
            }

            _combatMenu.playerWeapon.Texture = weaponTexture;
            ((AtlasTexture)_combatMenu.enemyImage.Texture).Atlas =
                _enemyInstance.battleTexture;
            ((AtlasTexture)_combatMenu.enemyImage.Texture).Region = new Rect2(
                CombatAnimationUtil.AnimationStateRegionPositionX[
                    CombatAnimationUtil.AnimationState.Normal],
                CombatAnimationUtil.BattleTexturePosY,
                CombatAnimationUtil.BattleTextureWidth,
                CombatAnimationUtil.BattleTextureHeight);
            StartCombat();
        }
示例#28
0
 //    private float cooldown = 1.0f;
 //   private float timer;
 // Use this for initialization
 void Start()
 {
     random = new System.Random();
     audioSys = GameObject.Find("Audio System").GetComponent<AudioSystem>();
     //    timer = 0.0f;
 }
示例#29
0
 public override void ApplyData()
 {
     AudioSystem.SetMusicVolume(musicVolume);
     AudioSystem.SetSoundVolume(soundVolume);
 }
示例#30
0
        private async void StartCombat()
        {
            var introPlayer =
                AudioSystem.PlayMusic(AudioSystem.MusicCollection.BattleIntro);

            introPlayer.Connect("finished", this, nameof(PlayBattleMusic));
            var combat = true;

            while (combat)
            {
                _combatMenu.UpdateParticle(_enemyInstance);
                combat = await TakeTurn();

                if (combat)
                {
                    foreach (var statusEffectsKey in _playerInstance.statusEffects.Keys.ToList())
                    {
                        var statusEffect =
                            _playerInstance.statusEffects[statusEffectsKey];
                        statusEffect.OnTurnEnd(_playerCombat);
                        if (statusEffect.expired)
                        {
                            _playerInstance.statusEffects.Remove(statusEffectsKey);
                        }
                    }

                    foreach (var statusEffectsKey in _enemyInstance.statusEffects.Keys.ToList())
                    {
                        var statusEffect =
                            _enemyInstance.statusEffects[statusEffectsKey];
                        statusEffect.OnTurnEnd(_enemyCombat);
                        if (statusEffect.expired)
                        {
                            _enemyInstance.statusEffects.Remove(statusEffectsKey);
                        }
                    }

                    if (CheckCombatEnd())
                    {
                        if (_playerInstance.Health <= 0)
                        {
                            await _combatMenu.ShowCombatLabel("YOU DIED", 2);

                            await _combatMenu.ShowCombatLabel("GAME OVER", 2);

                            _combatMenu.combatLabel.Visible = true;
                            EndCombat(CombatUtil.CombatOutcome.CombatLose);
                        }
                        else if (_enemyInstance.Health <= 0)
                        {
                            await _combatMenu.ShowCombatLabel("YOU WON", 2);

                            await _combatMenu.ShowCombatLabel("CONGRATULATION", 2);

                            _combatMenu.combatLabel.Visible = true;
                            EndCombat(CombatUtil.CombatOutcome.CombatWin);
                        }

                        combat = false;
                    }
                }

                if (combat)
                {
                    _combatMenu.ResetUI();
                }
            }
        }
示例#31
0
 public PlayAudio(ITaskIdBuilder id, AudioSystem audioSystem)
     : base(id)
 {
     this.audioSystem = audioSystem;
 }