public override void OnDrawSprite(QSpriteRenderer renderer) { if (QVec.Distance(Transform.Position, Camera.Position) < Scene.Window.Width) { renderer.Draw(Sprite, Transform); } }
public void OnDrawSprite(QSpriteRenderer spriteRenderer) { if (QVec.Distance(Position, Camera.Position) < Scene.Window.Width) { spriteRenderer.Draw(sprite, Transform); } }
public override void OnDrawSprite(QSpriteRenderer spriteRenderer) { if (CheckDistance || QVec.Distance(Position, Camera.Position) < 1000) { spriteRenderer.Draw(sprite, Transform); } }
public override void OnDrawSprite(QSpriteRenderer renderer) { if (QVec.Distance(Transform.Position, Camera.Position) < Scene.Window.Width) { //TODO Sprite.Source = Mushroom; //DrawSource(renderer, Position + mushPos); //FIX DIS renderer.Draw(Sprite, Transform, Transform.Position + mushPos); Sprite.Source = Tile; //DrawSource(renderer); renderer.Draw(Sprite, Transform); } }
public void OnDrawSprite(QSpriteRenderer renderer) { //copy here so less references var renderWidth = Scene.Window.Width; Sprite.Color = QColor.White; var cpos = Camera.Position; for (int i = 0; i < BackgroundTiles.Count; ++i) { if (QVec.Distance(BackgroundTiles[i].Position, cpos) < renderWidth) { renderer.Draw(BackgroundTiles[i].Source, Sprite, Transform, BackgroundTiles[i].Position); } } Sprite.Color *= 0.3f; for (int i = 0; i < LevelTiles.Count; ++i) { if (QVec.Distance(LevelTiles[i].Position, cpos) < renderWidth) { renderer.Draw(LevelTiles[i].Source, Sprite, Transform, LevelTiles[i].Position); } } //quad tree rendering // // // for(int i = 0; i < tiles.Count; i++) // { // List<QRect> t = new List<QRect>(); // quad.Retrieve(t, new QRect(tiles[i].Position, new QVec(64, 64))); // //quad.Retrieve(t, tiles[i].Source); // // for(int j = 0; j < t.Count; j++) // { // renderer.Draw(tiles[i].Source, Sprite, Transform, tiles[i].Position); // } // } }
public override void OnUpdate(QTime time) { var s = Speed; if (Health < 1) { Scene.Destroy(this); } if (!CanTakeDamage && Accumulator.CheckAccum("BatCanTakeDamage", 0.2f, time)) { CanTakeDamage = true; } if (Health < MaxHealth) { s = Speed * 2; } if (Health == 1) { s = Speed * 3; } var distanceFromPlayer = QVec.Distance(player.Transform.Position, Transform.Position); if (player.Position.Y > Position.Y) { WillAttack = true; } if (!WillAttack) { return; } //flies to player if (distanceFromPlayer < 800) // && player.Transform.Position.Y > Transform.Position.Y) { if (player.Position.X > Position.X) { Sprite.Effect = QRenderEffects.FlipHorizontally; } else { Sprite.Effect = QRenderEffects.None; } Position += QVec.MoveTowards(Position, player.Position) * time.Delta * s; Sprite.Source = BatFlap.Play(time.Delta); } else { //runs back to spawn if (QVec.Distance(Transform.Position, spawnerPosition) > 1) { if (spawnerPosition.X > Position.X) { Sprite.Effect = QRenderEffects.FlipHorizontally; } else { Sprite.Effect = QRenderEffects.None; } Position += QVec.MoveTowards(Position, spawnerPosition) * time.Delta * Speed; Sprite.Source = BatFlap.Play(time.Delta); } else if (distanceFromPlayer > 1000) { //closes eyes Sprite.Effect = QRenderEffects.FlipVertically; Sprite.Source = Frames[30]; } else if (distanceFromPlayer < 1000) { //opens eyes Sprite.Effect = QRenderEffects.FlipVertically; Sprite.Source = Frames[28]; } } }