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--; } }
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(); } }
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; } }