以下是对我们最新升级版的程序的form主体文件的编写,今天我们非常努力,但是程序还应该进一步改善。

  1 using System;
  2 using System.Collections.Generic;
  3 using System.ComponentModel;
  4 using System.Data;
  5 using System.Drawing;
  6 using System.Linq;
  7 using System.Text;
  8 using System.Windows.Forms;
  9 using System.Xml;
 10 using System.Media;
 11 using PlayPlane_01.BLL;
 12 
 13 namespace PlayPlane_01
 14 {
 15     public partial class Form1 : Form
 16     {
 17         Plane plane;
 18 
 19         Timer t_draw;
 20 
 21         List<Enemy> enemy_lsit = new List<Enemy>();
 22         List<Bullet> bullet_lsit = new List<Bullet>();
 23         List<Explosion> explosion_list = new List<Explosion>();
 24         List<Reward> reward_list = new List<Reward>();
 25         int score = 0;
 26         int boom_count = 5;
 27         bool pause = false;
 28         Bitmap background;
 29 
 30         public Form1()
 31         {
 32             //this.SetStyle(ControlStyles.UserPaint, true);
 33             //this.SetStyle(ControlStyles.AllPaintingInWmPaint, true); // 禁止擦除背景.
 34             //this.SetStyle(ControlStyles.OptimizedDoubleBuffer, true); // 双缓冲
 35             this.StartPosition = FormStartPosition.CenterScreen;
 36             this.Load += new System.EventHandler(this.Form1_Load);
 37             this.MouseMove += new MouseEventHandler(Form1_MouseMove);
 38             this.MouseClick += new MouseEventHandler(Form1_MouseClick);
 39             this.KeyPress += new KeyPressEventHandler(Form1_KeyPress);
 40             InitializeComponent();
 41         }
 42 
 43         private void Form1_Load(object sender, EventArgs e)
 44         {
 45             //this.FormBorderStyle = FormBorderStyle.None;
 46             //this.WindowState = FormWindowState.Maximized;
 47             EntityFactory.InitFactory("resource/plane.xml");
 48             background = new Bitmap(Image.FromFile(@"resource/bg_02.jpg"));
 49             plane = EntityFactory.GenPlane("normal");
 50             this.Cursor.Dispose();
 51             Cursor.Position = new Point(plane.X + this.Location.X, plane.Y + this.Location.Y);
 52             t_draw = new Timer();
 53             t_draw.Interval = 20;
 54             send_interval = 100 / t_draw.Interval;
 55             block_interval = 260 / t_draw.Interval;
 56             reward_interval = 5000 / t_draw.Interval;
 57             t_draw.Tick += new EventHandler(t_draw_Tick);
 58             t_draw.Start();
 59         }
 60 
 61         void Form1_MouseClick(object sender, MouseEventArgs e)
 62         {
 63             if (!pause && e.Button == MouseButtons.Right)
 64             {
 65                 if (boom_count > 0)
 66                 {
 67                     boom_count--;
 68                     for (int i = 0; i < enemy_lsit.Count; i++)
 69                     {
 70                         //socre ++
 71                         if (enemy_lsit[i].Name == "small") score += 1000;
 72                         else if (enemy_lsit[i].Name == "mid") score += 6000;
 73                         else if (enemy_lsit[i].Name == "big") score += 25000;
 74                         //add to explosion
 75                         explosion_list.Add(EntityFactory.GenExplosion("small", enemy_lsit[i].X, enemy_lsit[i].Y));
 76 
 77                         new DXPlay(this, @"resource/BOMB3.wav").ThreadPlay();
 78                     }
 79                     enemy_lsit.Clear();
 80                 }
 81             }
 82         }
 83 
 84         void Form1_MouseMove(object sender, MouseEventArgs e)
 85         {
 86             if (!pause)
 87             {
 88                 plane.X = e.X;
 89                 plane.Y = e.Y;
 90             }
 91         }
 92 
 93         void Form1_KeyPress(object sender, KeyPressEventArgs e)
 94         {
 95             if (e.KeyChar == ' ')
 96             {
 97                 pause = !pause;
 98                 if (pause)
 99                 {
100                     this.Cursor = new Cursor (Cursors.Arrow.CopyHandle());
101                 }
102                 else
103                 {
104                     this.Cursor.Dispose();
105                     Cursor.Position = new Point(plane.X + this.Location.X, plane.Y + this.Location.Y);
106                 }
107             }
108             /*else if (e.KeyChar == 27)
109             {
110                 this.WindowState = FormWindowState.Normal;
111             }
112             else if (e.KeyChar == '\r')
113             {
114                 this.WindowState = FormWindowState.Maximized;
115             }*/
116         }