コード例 #1
0
        public override void Update(ContentManager Content, GameTime gameTime)
        {
            switch (level)
            {
            case Level.W1_L1:
                map = Content.Load <TiledMap>("Level_1");
                break;

            case Level.W1_L2:
                map = Content.Load <TiledMap>("Level_2");
                break;

            case Level.W1_L3:
                map = Content.Load <TiledMap>("Level_3");
                break;
            }

            if (isLoaded == false)
            {
                isLoaded    = true;
                ventureFont = Content.Load <SpriteFont>("3Dventure");
                psFont      = Content.Load <SpriteFont>("ps2p");
                //bgm = Content.Load<Song>("sacrifice");
                heart = Content.Load <Texture2D>("heart_x16");

                var viewportAdapter = new BoxingViewportAdapter(game.Window, game.GraphicsDevice, ScreenWidth, ScreenHeight);
                camera          = new Camera2D(viewportAdapter);
                camera.Position = new Vector2(0, ScreenHeight);

                foreach (TiledTileLayer layer in map.TileLayers)
                {
                    if (layer.Name == "collision")
                    {
                        collisionLayer = layer;
                    }
                }

                foreach (TiledObjectGroup group in map.ObjectGroups)
                {
                    if (group.Name == "player_spawn")
                    {
                        foreach (TiledObject obj in group.Objects)
                        {
                            player = new Player(this);
                            player.Load(Content);
                            player.Position = new Vector2(obj.X, obj.Y);
                        }
                    }

                    if (group.Name == "enemy_spawn")
                    {
                        foreach (TiledObject obj in group.Objects)
                        {
                            Enemy enemy = new Enemy(this);
                            enemy.Load(Content);
                            enemy.Position = new Vector2(obj.X, obj.Y);
                            enemies.Add(enemy);
                        }
                    }

                    if (group.Name == "goal")
                    {
                        foreach (TiledObject obj in group.Objects)
                        {
                            goal = new Goal(this);
                            goal.Load(Content);
                            goal.Position = new Vector2(obj.X, obj.Y);
                        }
                    }

                    if (group.Name == "key")
                    {
                        foreach (TiledObject obj in group.Objects)
                        {
                            key = new Key(this);
                            key.Load(Content);
                            key.Position = new Vector2(obj.X, obj.Y);
                        }
                    }

                    if (group.Name == "lock")
                    {
                        foreach (TiledObject obj in group.Objects)
                        {
                            LockedWall lockedWall = new LockedWall(this);
                            lockedWall.Load(Content);
                            lockedWall.Position = new Vector2(obj.X, obj.Y);
                            lockedWalls.Add(lockedWall);
                        }
                    }

                    if (group.Name == "extralife")
                    {
                        foreach (TiledObject obj in group.Objects)
                        {
                            extralife = new ExtraLife(this);
                            extralife.Load(Content);
                            extralife.Position = new Vector2(obj.X, obj.Y);
                        }
                    }
                }
            }

            if (musicLoad == false)
            {
                musicLoad = true;
                //MediaPlayer.Play(bgm);
            }

            keyS      = Content.Load <SoundEffect>("keys");
            splat     = Content.Load <SoundEffect>("splat");
            keyInst   = keyS.CreateInstance();
            splatInst = splat.CreateInstance();

            float deltaTime = (float)gameTime.ElapsedGameTime.TotalSeconds;

            camera.Position = player.Position - new Vector2(ScreenWidth / 2, ScreenHeight / 1.5f);
            CameraMechanics();

            timer -= deltaTime;

            CheckCollisions();
            goal.Update(deltaTime);
            player.Update(deltaTime);
            key.Update(deltaTime);
            extralife.Update(deltaTime);
            foreach (Enemy e in enemies)
            {
                e.Update(deltaTime);
                e.ParticleUpdate(gameTime);
            }
            foreach (LockedWall lw in lockedWalls)
            {
                lw.Update(deltaTime);
            }

            if (game.AllowInput && game.AllowMenu == true)
            {
                if (Keyboard.GetState().IsKeyDown(Keys.Enter))
                {
                    AIE.StateManager.PushState("PauseState");
                    game.ResetInputTimer();
                }
            }

            if (game.AllowMenu == false)
            {
                if (Keyboard.GetState().IsKeyUp(Keys.Enter))
                {
                    game.AllowMenu = true;
                }
            }
        }