Beispiel #1
0
        private void CreatePlayerAndBackground()
        {
            _player = new Player();
            _player.Initialize(_contentManager);

            _playerCollisionTimerRate = GameInfo.PlayerTimerChangeRate;

            Texture2D backgroundTexture   = _contentManager.Load <Texture2D>(AssetManager.GameBG);
            Texture2D wrestlingBackground = _contentManager.Load <Texture2D>(AssetManager.WrestingBackground);

            _backgroundSprite = new Sprite(backgroundTexture, true);
            _backgroundSprite.SetOriginCenter();
            _backgroundSprite.SetSize(GameInfo.FixedWindowWidth, GameInfo.FixedWindowHeight);
            _backgroundSprite.Position =
                new Vector2(GameInfo.FixedWindowWidth / 2.0f, GameInfo.FixedWindowHeight / 2.0f);

            _backgroundAudience = new ScrollingBackground();
            _backgroundAudience.Initialize(wrestlingBackground, GameInfo.MaxBackgroundElements,
                                           new Vector2(GameInfo.FixedWindowWidth / 2.0f, GameInfo.FixedWindowHeight), 1, true);
            _backgroundAudience.SetSize(GameInfo.FixedWindowWidth, GameInfo.FixedWindowHeight);

            Texture2D scrollingBackgroundTexture = _contentManager.Load <Texture2D>(AssetManager.BackgroundRopes);

            _scrollingBackground = new ScrollingBackground();
            _scrollingBackground.Initialize(scrollingBackgroundTexture, GameInfo.MaxBackgroundElements,
                                            new Vector2(GameInfo.FixedWindowWidth / 2.0f, GameInfo.FixedWindowHeight), 0.5f);

            Texture2D stage       = _contentManager.Load <Texture2D>(AssetManager.Stage);
            Sprite    stageSprite = new Sprite(stage)
            {
                Scale = GameInfo.StageScale
            };

            stageSprite.SetOriginCenter();
            _stage = new GameObject(stageSprite, stageSprite.Width, stageSprite.Height)
            {
                Position = new Vector2(GameInfo.FixedWindowWidth / 2.0f, GameInfo.FixedWindowHeight + 300)
            };

            Texture2D winWrestler = _contentManager.Load <Texture2D>(AssetManager.WinWrestler);
            Sprite    winSprite   = new Sprite(winWrestler)
            {
                Scale = GameInfo.WrestlerScale
            };

            winSprite.SetOriginCenter();
            _winWrestler = new GameObject(winSprite, winSprite.Width, winSprite.Height)
            {
                Position = new Vector2(GameInfo.FixedWindowWidth / 2.0f, GameInfo.FixedWindowHeight + 250)
            };

            _starSpriteSheetAnimationManager = new SpriteSheetAnimationManager();
            _starSpriteSheetAnimationManager.Initialize(_contentManager, AssetManager.StarBase,
                                                        AssetManager.StarTotalCount, 0, true);
            _starSpriteSheetAnimationManager.FrameTime = AssetManager.StarAnimationSpeed;
            _starSprite       = _starSpriteSheetAnimationManager.Sprite;
            _starSprite.Scale = 0.4f;
            _starsOffset      = new Vector2(_winWrestler.Sprite.Width - 50, 70);
        }
        public override void Initialize(ContentManager contentManager)
        {
            _contentManager = contentManager;

            Texture2D stageTexture        = _contentManager.Load <Texture2D>(AssetManager.Stage);
            Texture2D playerTexture       = _contentManager.Load <Texture2D>(AssetManager.PlayerFlipped);
            Texture2D scrollerRope        = _contentManager.Load <Texture2D>(AssetManager.BackgroundRopes);
            Texture2D winWrestler         = _contentManager.Load <Texture2D>(AssetManager.WinWrestler);
            Texture2D backgroundTexture   = _contentManager.Load <Texture2D>(AssetManager.GameBG);
            Texture2D wrestlingBackground = _contentManager.Load <Texture2D>(AssetManager.WrestingBackground);

            _stage = new Sprite(stageTexture)
            {
                Scale = GameInfo.StageScale
            };
            _stage.SetOriginCenter();

            _playerSprite = new Sprite(playerTexture)
            {
                Scale = GameInfo.PlayerAssetScale
            };
            _playerSprite.SetOriginCenter();

            _playerFlasher = new ColorFlashSwitcher()
            {
                StartFlash         = false,
                StartColor         = Color.White * 1,
                EndColor           = Color.White * 0,
                FlashCount         = GameInfo.PlayerFlashCount,
                LerpRate           = GameInfo.PlayerFlashRate,
                ResetAutomatically = true
            };

            _backgroundSprite = new Sprite(backgroundTexture, true);
            _backgroundSprite.SetOriginCenter();
            _backgroundSprite.SetSize(GameInfo.FixedWindowWidth, GameInfo.FixedWindowHeight);

            _audienceScrolling = new ScrollingBackground();
            _audienceScrolling.Initialize(wrestlingBackground, GameInfo.MaxBackgroundElements,
                                          new Vector2(GameInfo.FixedWindowWidth / 2.0f, GameInfo.FixedWindowHeight), 1, true);
            _audienceScrolling.SetSize(GameInfo.FixedWindowWidth, GameInfo.FixedWindowHeight);

            _cinematicBackgroundScroller = new CinematicBackgroundScroller();
            _cinematicBackgroundScroller.Initialize(scrollerRope, 0.5f, GameInfo.TotalCinematicRopes,
                                                    GameInfo.CinematicStageInitialPosition, GameInfo.CinematicRowFinalPosition);

            _winWrestler = new Sprite(winWrestler)
            {
                Scale = GameInfo.WrestlerScale
            };
            _winWrestler.SetOriginCenter();

            _starSpriteSheetAnimationManager = new SpriteSheetAnimationManager();
            _starSpriteSheetAnimationManager.Initialize(_contentManager, AssetManager.StarBase,
                                                        AssetManager.StarTotalCount, 0, true);
            _starSpriteSheetAnimationManager.FrameTime = AssetManager.StarAnimationSpeed;
            _starSprite       = _starSpriteSheetAnimationManager.Sprite;
            _starSprite.Scale = 0.4f;
            _starsOffset      = new Vector2(_winWrestler.Width - 50, 70);

            _dummyPlayer = new Player();
            _dummyPlayer.Initialize(_contentManager);
            _dummyPlayer.OnPlayerHitNotification += HandlePlayerHit;

            CreateAudiences();
            CreateSounds();
        }