예제 #1
0
        private void DrawFrame()
        {
            try
            {
                Bobber.PerformFrame();
                Bobber2.PerformFrame();
                //panImage.Update();
                Graphics g = ImageBackBufferCanvas;
                lock (g)
                {
                    g.Clear(Color.Transparent);
                    g.ResetTransform();
                    //g.DrawImage(panImage.BackgroundImage, 0, 0, panImage.ClientSize.Width, panImage.ClientSize.Height);
                    Bobber.Draw(g, 346, 157);
                    g.ResetTransform();
                    Bobber2.Draw(g, 45, 157);
                    List <Particle> removeparts = new List <Particle>();
                    foreach (Particle drawpart in DrawParticles)
                    {
                        if (drawpart.PerformFrame(null))
                        {
                            removeparts.Add(drawpart);
                        }
                    }
                    lock (DrawParticles)
                    {
                        foreach (Particle removeit in removeparts)
                        {
                            DrawParticles.Remove(removeit);
                        }
                    }
                    //BobberVersion.Draw(g, (int)g.MeasureString(BobberVersion.DrawString,BobberVersion.DrawFont).Width, 157);
                    panImage.Invoke((MethodInvoker)(() =>
                    {
                        panImage.Invalidate();
                        panImage.Update();
                    }));


                    //panImage.Update();
                }
            }
            catch (Exception ex)
            {
                Debug.Print("Unexpected Exception (DrawFrame)" + ex.Message);
            }
        }