public void Render(int index)
{
//background
g = Graphics.FromImage(picShow);
g.DrawImage(background, new Rectangle(0, 0, 640, 480));
//Font myfont = new Font("Arial Rounded MT Bold", 30.0f);
/*
g.DrawString("LIFE:" + myplayer.Life.ToString(), myfont, Brushes.Yellow, new PointF(10, 10));
//Draw game time
g.DrawString("TIME " + playtime.ToString(), myfont, Brushes.Red, new PointF(300, 10));*/
//Draw life bar and game info
Font myfont = new Font("Arial Rounded MT Bold", 23.0f);
Font name=new Font("Arial Bold",15.0f);
//player drawing
if (index == -1)
{
enemy.draw(g, 0);
}
else
{
enemy.draw(g, index);
}
//flash big move
if (big_flash > 0)
{
if (big_flash % 6 < 3)
{
g.FillRectangle(new SolidBrush(Color.FromArgb(175, Color.Black)), 0, 0, 640, 480);
}
big_flash--;
}
else if (hit_flash>0)
{
if (hit_flash % 6 < 3)
{
g.FillRectangle(new SolidBrush(Color.FromArgb(175, Color.Red)), 0, 0, 640, 480);
}
hit_flash--;
}
g.FillPolygon((myplayer.Life<big_threshold)?Brushes.Red:Brushes.LimeGreen, new PointF[4] { p1[0], new PointF(p1[1].X - (100 - myplayer.Life) * (float)(2.8), p1[1].Y), new PointF(p1[2].X - (100 - myplayer.Life) * (float)(2.8), p1[2].Y), p1[3] });
g.DrawPolygon(new Pen(Brushes.Yellow, 3), p1);
g.FillPolygon((enemy.Life < big_threshold) ? Brushes.Red : Brushes.LimeGreen, new PointF[4] { new PointF(p2[0].X + (100 - enemy.Life) * (float)(2.8), p2[0].Y), p2[1], p2[2], new PointF(p2[3].X + (100 - enemy.Life) * (float)(2.8), p2[3].Y) });
g.DrawPolygon(new Pen(Brushes.Yellow, 3), p2);
g.DrawString(playtime.ToString(), myfont, Brushes.Blue, new PointF(286, 10));
g.DrawString(username, name, Brushes.Black, new PointF(17, 37));
g.DrawString(username, name, Brushes.HotPink, new PointF(15, 35));
g.DrawString(enemyname, name, Brushes.Black, new PointF(522, 37));
g.DrawString(enemyname, name, Brushes.DeepSkyBlue, new PointF(520, 35));
fpu_mutex.WaitOne();
if (fpu_container.have_left_punch)
g.DrawImage(Resources.Bang, 640 - fpu_container.center[1].X - 115, fpu_container.center[1].Y - 115,300,260);
if (fpu_container.have_right_punch)
g.DrawImage(Resources.Bang, 640 - fpu_container.center[0].X - 115, fpu_container.center[0].Y - 115, 300, 260);
//Draw left hand
if(fpu_container.have_left)
myplayer.drawLeft(g,640-fpu_container.center[1].X-80,fpu_container.center[1].Y-80);
//Draw right hand
if(fpu_container.have_right)
myplayer.drawRight(g, 640 - fpu_container.center[0].X-80, fpu_container.center[0].Y-80);
//Draw head
fpu_mutex.ReleaseMutex();
myplayer.drawHead(g);
gamebox.Image = picShow;
gamebox.Refresh();
gamebox.Show();
}