예제 #1
0
        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);
        }
예제 #2
0
 public static Microsoft.Xna.Framework.Vector2 ToXNA(this EvoSim.Vector2 vec)
 {
     return(new Microsoft.Xna.Framework.Vector2(vec.X, vec.Y));
 }