Beispiel #1
0
        //Die Methode mit dem ein Objekt vom Typ Spieler initialisiert wird und dessen Startwerte eingestellt werden
        public void Initialize(float f_xStartPosition, float f_yStartPosition, float f_xStartVelocity, float f_yStartVelocity, float speed, short health, Animation startAnimation, int screenWidth, ScreenManager screenmanager)
        {
            base.Initialize(f_xStartPosition, f_yStartPosition, f_xStartVelocity, f_yStartVelocity, speed, health, startAnimation, screenWidth);
            m_mouth = new Mouth();
            m_mouth.Initialize(screenmanager.imageFileSystem.mouth, 48, 50);


            m_playerIsJumping   = false;
            m_playerStartedJump = false;
            m_playerJumpHeight  = 250;
            m_jumpWuhu          = screenmanager.audioFileSystem.wuhu;


            screenManager = screenmanager;
            m_movefloor   = false;

            m_projectileList = new List <Projectile>();

            m_canShoot = true;
            m_lastShot = 0;
            m_playerAnimationMirror = SpriteEffects.None;


            m_score            = 0;
            m_currenProjectile = 0;
            m_shootVector      = new Vector2();

            leftCollision = rightCollision = false;

            initializeProjectiles(150, new Vector2(1, 1));
            m_active = true;

            #region Ermitter
            m_ermitterSettings         = new ParticleSystemSettings();
            m_ermitterSettings.IsBurst = false;
            m_ermitterSettings.SetLifeTimes(0.5f, 1.0f);
            m_ermitterSettings.SetScales(0.1f, 0.6f);
            m_ermitterSettings.ParticlesPerSecond   = 15.0f;
            m_ermitterSettings.InitialParticleCount = (int)(m_ermitterSettings.ParticlesPerSecond * m_ermitterSettings.MaximumLifeTime);
            m_ermitterSettings.SetDirectionAngles(0, 180);
            m_ermitterSettings.color = Color.White;
            m_ermitter = new ParticleEmitter.ParticleSystem(screenmanager.Game, m_ermitterSettings, screenmanager.imageFileSystem.DustParticle);
            m_ermitter.OriginPosition    = f_Position;
            m_ermitterSettings.emitterOn = false;
            #endregion
        }
Beispiel #2
0
        public void Initialize(Texture2D texture, int x_Start, int y_Start, ScreenManager screenmanager)
        {
            f_position   = new Vector2(x_Start, y_Start);
            this.y_Start = y_Start;
            m_texture    = texture;
            x_speed      = 10;
            y_speed      = 2;

            #region Ermitter
            m_ermitterSettings = new ParticleSystemSettings();
            m_ermitterSettings.ParticleTextureFileName = "ParticleStar";
            m_ermitterSettings.IsBurst = false;
            m_ermitterSettings.SetLifeTimes(1.0f, 3.5f);
            m_ermitterSettings.SetScales(0.1f, 0.8f);
            m_ermitterSettings.ParticlesPerSecond   = 200.0f;
            m_ermitterSettings.InitialParticleCount = (int)(m_ermitterSettings.ParticlesPerSecond * m_ermitterSettings.MaximumLifeTime);
            m_ermitterSettings.SetDirectionAngles(0, 360);
            m_ermitterSettings.emitterOn = true;
            m_ermitterSettings.color     = Color.White;

            m_ermitter = new ParticleEmitter.ParticleSystem(screenmanager.Game, m_ermitterSettings, screenmanager.imageFileSystem.smokeParticle);
            m_ermitter.OriginPosition = f_position;
            #endregion
        }
        public LevelWonScreen(ScreenManager manager, Helper h, bool b)
        {
            screenManager        = manager;
            helper               = h;
            listOfTouchLocations = new List <TouchLocation>();
            b_touchState         = b;
            myTick               = 0;

            #region Ermitter

            m_ermitterSettings         = new ParticleSystemSettings();
            m_ermitterSettings.IsBurst = false;
            m_ermitterSettings.color   = Color.Red;
            m_ermitterSettings.SetLifeTimes(5f, 10.0f);
            m_ermitterSettings.SetScales(1.0f, 1.5f);
            m_ermitterSettings.ParticlesPerSecond   = 1000.0f;
            m_ermitterSettings.InitialParticleCount = (int)(m_ermitterSettings.ParticlesPerSecond * m_ermitterSettings.MaximumLifeTime);
            m_ermitterSettings.SetDirectionAngles(0, 360);
            m_ermitterSettings.SetSpeeds(200, 800);
            m_ermitter = new ParticleEmitter.ParticleSystem(screenManager.Game, m_ermitterSettings, screenManager.imageFileSystem.redPixel);
            m_ermitter.OriginPosition    = new Vector2(UIConstants.screenWidth / 2, UIConstants.screenHeight / 2);
            m_ermitterSettings.emitterOn = true;
            #endregion
        }
Beispiel #4
0
        //Die Methode die in regelmäßigen Zeitintervallen aufgerufen wird um die Spieler Positionen und ggf. Animationen anzupassen
        public override void Update(GameTime gameTime)
        {
            if (m_active)
            {
                checkProjectilePosition(gameTime);
                lastShot(gameTime);

                m_Animation.shiftRectangle((int)getTMPX(), (int)f_yVelocity, m_playerAnimationMirror);
                base.Update(gameTime);

                if (screenManager.endBossActive)
                {
                    m_movefloor = false;
                }

                if (m_playerIsJumping)
                {
                    if (f_Position.Y <= m_playerJumpMaximum || !m_playerStartedJump)
                    {
                        f_yVelocity        += 2f;
                        m_playerStartedJump = false;
                    }
                }
                updateWeaponRotation();
                m_playerCurrentWeapon.Update(gameTime, f_Position, m_playerAnimationMirror);
                if ((f_xVelocity > 0 && !m_playerIsJumping))
                {
                    m_ermitterSettings.emitterOn = true;
                    m_ermitterSettings.SetDirectionAngles(140, 180);
                    m_ermitterSettings.SetSpeeds(50, 100);
                }
                else
                {
                    if ((f_xVelocity < 0 && !m_playerIsJumping))
                    {
                        m_ermitterSettings.SetDirectionAngles(0, 40);
                        m_ermitterSettings.emitterOn = true;
                        m_ermitterSettings.SetSpeeds(50, 100);
                    }
                    else
                    {
                        if (m_movefloor && !m_playerIsJumping)
                        {
                            m_ermitterSettings.emitterOn = true;
                            m_ermitterSettings.SetDirectionAngles(140, 180);
                            m_ermitterSettings.SetSpeeds(150, 200);
                        }


                        else
                        {
                            m_ermitterSettings.emitterOn = false;
                        }
                    }
                }



                m_ermitter.Update(gameTime);
                m_ermitter.OriginPosition = f_Position + new Vector2(m_Animation.getFrameWidth() / 2f, m_Animation.getFrameHeight());
                m_mouth.Update(gameTime, f_Position, m_playerAnimationMirror);
            }

            foreach (Projectile projectile in m_projectileList)
            {
                projectile.Update(gameTime);
            }
        }