private void DrawCreature(Creature c, Vector2 offset = new Vector2()) { for (int i = 0; i < c.AmountOfFeelers; i++) { spriteBatch.DrawLine(c.Pos.ToXNA() + offset, c.Feelers[i].FeelerPos.ToXNA() + offset, Color.White); } spriteBatch.Draw(bodyTex, new Rectangle((int)(c.Pos.X + offset.X - Creature.CREATURESIZE / 2), (int)(c.Pos.Y + offset.Y - Creature.CREATURESIZE / 2), Creature.CREATURESIZE, Creature.CREATURESIZE), c.Color_inv.ToXNA()); spriteBatch.Draw(bodyTex, new Rectangle((int)(c.Pos.X + offset.X - (Creature.CREATURESIZE - 4) / 2), (int)(c.Pos.Y + offset.Y - (Creature.CREATURESIZE - 4) / 2), Creature.CREATURESIZE - 4, Creature.CREATURESIZE - 4), c.Color.ToXNA()); var displayString = string.Format("id:{0}\nG:{1}", c.Id, c.Generation); spriteBatch.DrawString(Fonts.FontArialSmall, displayString, c.Pos.ToXNA() + offset - Fonts.FontArialSmall.MeasureString(displayString) / 2, Color.White); for (int i = 0; i < c.AmountOfFeelers; i++) { spriteBatch.Draw(feelerTex, new Rectangle((int)(c.Feelers[i].FeelerPos.X + offset.X - 5), (int)(c.Feelers[i].FeelerPos.Y + offset.Y - 5), 10, 10), c.Feelers[i].TimeSinceLastAttack > Feeler.TIMEBETWEENATTACKS ? Color.Blue : Color.Red); } EvoSim.Vector2 eyePos = c.Pos + c.Forward * 15; int eyeSize = 10; spriteBatch.Draw(bodyTex, new Rectangle((int)(eyePos.X - eyeSize / 2), (int)(eyePos.Y - eyeSize / 2), eyeSize, eyeSize), Color.Black); }
public static Microsoft.Xna.Framework.Vector2 ToXNA(this EvoSim.Vector2 vec) { return(new Microsoft.Xna.Framework.Vector2(vec.X, vec.Y)); }