Пример #1
0
        public void Update(Terrain terrain)
        {
            X += MovementX;
            Y += MovementY;

            if (IsJumping)
            {
                MovementY += 1;
            }

            if (!IsJumping && (
                    !terrain.IsLedgeAt(X, Y + ImageSelector.IMAGE_HEIGHT) &&
                    !terrain.IsLedgeAt(X + ImageSelector.IMAGE_WIDTH / 2, Y + ImageSelector.IMAGE_HEIGHT) &&
                    !terrain.IsLedgeAt(X + ImageSelector.IMAGE_WIDTH, Y + ImageSelector.IMAGE_HEIGHT)
                    ))
            {
                IsJumping = true;
            }

            if (terrain.IsLedgeAt(X, Y + ImageSelector.IMAGE_HEIGHT))
            {
                IsJumping = false;
                MovementY = 0;
            }

            if (MovementY == 0 && terrain.IsLedgeAt(X, Y + ImageSelector.IMAGE_HEIGHT - 1))
            {
                Y = (int)(Y / ImageSelector.IMAGE_HEIGHT) * ImageSelector.IMAGE_HEIGHT;
            }

            if (IsDead())
            {
                EnemyRemainsOnScreen--;
            }
        }
Пример #2
0
        internal void Update(Terrain terrain)
        {
            this.Projectiles = this.Projectiles.FindAll(
                projectile => projectile.TimeToLive > 0
                );

            if (TimeTilNextShot > 0)
            {
                TimeTilNextShot--;
            }

            if (Y > 800)
            {
                IsDead = true;
            }

            if (IsDead)
            {
                HeroRemainsOnScreen--;
            }

            X += MovementX;
            Y += MovementY;

            if (IsJumping && MovementY <= JumpSpeed)
            {
                MovementY += 1;
            }

            if (!IsJumping && !terrain.IsLedgeAt(X, Y + ImageSelector.IMAGE_HEIGHT) &&
                !terrain.IsLedgeAt(X + ImageSelector.IMAGE_WIDTH / 2, Y + ImageSelector.IMAGE_HEIGHT) &&
                !terrain.IsLedgeAt(X + ImageSelector.IMAGE_WIDTH, Y + ImageSelector.IMAGE_HEIGHT))
            {
                IsJumping = true;
            }

            if (MovementY >= 0 && terrain.IsLedgeAt(X, Y + ImageSelector.IMAGE_HEIGHT))
            {
                IsJumping = false;
                MovementY = 0;
            }

            if (MovementY == 0 && terrain.IsLedgeAt(X, Y + ImageSelector.IMAGE_HEIGHT - 1))
            {
                Y = (int)(Y / ImageSelector.IMAGE_HEIGHT) * ImageSelector.IMAGE_HEIGHT;
            }

            foreach (var projectile in Projectiles)
            {
                projectile.Update();
            }
        }
Пример #3
0
        internal void Update(Terrain terrain)
        {
            Projectiles.UpdateProjectiles();

            if (TimeTillNextShot > 0)
            {
                TimeTillNextShot--;
            }

            if (IsDead)
            {
                HeroRemainsOnScreen--;
            }

            X += MovementX;
            Y += MovementY;

            if (Y > 800)
            {
                IsDead = true;
            }

            if (IsJumping && MovementY <= JumpSpeed)
            {
                MovementY += 1;
            }

            if (!IsJumping && !terrain.IsLedgeAt(X, Y + ImageSelector.IMAGE_HEIGHT) &&
                !terrain.IsLedgeAt(X + ImageSelector.IMAGE_WIDTH / 2, Y + ImageSelector.IMAGE_HEIGHT) &&
                !terrain.IsLedgeAt(X + ImageSelector.IMAGE_WIDTH, Y + ImageSelector.IMAGE_HEIGHT))
            {
                IsJumping = true;
            }

            if (MovementY >= 0 && terrain.IsLedgeAt(X, Y + ImageSelector.IMAGE_HEIGHT))
            {
                IsJumping = false;
                MovementY = 0;
            }

            if (MovementY == 0 && terrain.IsLedgeAt(X, Y + ImageSelector.IMAGE_HEIGHT - 1))
            {
                Y = (int)(Y / ImageSelector.IMAGE_HEIGHT) * ImageSelector.IMAGE_HEIGHT;
            }
        }