Ejemplo n.º 1
0
        public override void Draw(Graphics g)
        {
            switch (this.Type)
            {
            case 0:
                for (int i = 0; i < imgs1.Length; i++)
                {
                    g.DrawImage(imgs1[i], this.X, this.Y);
                }
                break;

            case 1:
                for (int i = 0; i < imgs2.Length; i++)
                {
                    g.DrawImage(imgs2[i], this.X, this.Y);
                }
                break;

            case 2:
                for (int i = 0; i < imgs3.Length; i++)
                {
                    g.DrawImage(imgs3[i], this.X, this.Y);
                }
                break;
            }
            SingleObject.GetSingle().RemoveGameObject(this);
        }
Ejemplo n.º 2
0
 public override void MoveBorder()
 {
     if (this.Y <= 0 || this.Y >= 812)
     {
         //将子弹对象移除
         SingleObject.GetSingle().RemoveGameObject(this);
     }
 }
Ejemplo n.º 3
0
 public static SingleObject GetSingle()
 {
     if (_single == null)
     {
         _single = new SingleObject();
     }
     return(_single);
 }
Ejemplo n.º 4
0
        public override void Draw(Graphics g)
        {
            for (int i = 0; i < heroImage.Length; i++)
            {
                g.DrawImage(heroImage[i], this.X, this.Y);

                SingleObject.GetSingle().RemoveGameObject(this);
            }
        }
Ejemplo n.º 5
0
 public void InitialGame()
 {
     //初始化游戏背景
     SingleObject.GetSingle().AddGameObject(new Background(0, -850, 20));
     //初始化游戏玩家
     SingleObject.GetSingle().AddGameObject(new HeroPlane(200, 200, 20, 1, Direction.Up));
     //初始化敌人飞机
     InitialEnemyPlane();
 }
Ejemplo n.º 6
0
 public override void IsOver()
 {
     if (this.Lift == 0)
     {
         //爆炸效果
         SingleObject.GetSingle().AddGameObject(new EnemyBoom(this.X, this.Y, this.EnemyType));
         //移除敌人飞机
         SingleObject.GetSingle().RemoveGameObject(this);
     }
 }
Ejemplo n.º 7
0
 private void timer1_Tick(object sender, EventArgs e)
 {
     this.Invalidate();
     //不停地判断当前飞机的数量
     if (SingleObject.GetSingle().listEnemyPlane.Count <= 1)
     {
         InitialEnemyPlane();
     }
     SingleObject.GetSingle().PZJC();
 }
Ejemplo n.º 8
0
 /// <summary>
 /// 初始化敌人飞机
 /// </summary>
 private void InitialEnemyPlane()
 {
     for (int i = 0; i < 4; i++)
     {
         SingleObject.GetSingle().AddGameObject(new EnemyPlane(r.Next(0, this.Width), -100, r.Next(0, 2)));
     }
     //给百分之10的机率
     if (r.Next(0, 101) > 90)
     {
         SingleObject.GetSingle().AddGameObject(new EnemyPlane(r.Next(0, this.Width), -100, 2));
     }
 }
Ejemplo n.º 9
0
 private void timer2_Tick(object sender, EventArgs e)
 {
     if (IsStar)
     {
         PlayTime++;//如果开始游戏,则开始计时
         if (PlayTime == 20)
         {
             IsStar = false;//到达时间则停止游戏
             //将结果发送给服务器
             //把分数转换成字节数组发送给客户端
             byte[] buffer = Encoding.Default.GetBytes(SingleObject.GetSingle().Score.ToString());
             socket.Send(buffer);
         }
     }
 }
Ejemplo n.º 10
0
        bool IsPaintResult = false;   //是否绘制结果字符串

        private void Form1_Paint(object sender, PaintEventArgs e)
        {
            SingleObject.GetSingle().BG.Draw(e.Graphics);

            if (IsStar)
            {
                SingleObject.GetSingle().DrawGameObject(e.Graphics);
            }
            //绘制各种游戏对象
            //背景的 玩家飞机的 敌人飞机 子弹的

            string s = SingleObject.GetSingle().Score.ToString();

            //绘制游戏的分数
            e.Graphics.DrawString(s, new Font("微软雅黑", 20, FontStyle.Bold), Brushes.Red, new Point(0, 0));
            if (IsPaintResult)
            {
                e.Graphics.DrawString(result, new Font("宋体", 20, FontStyle.Bold), Brushes.Red, new Point(0, 200));
            }
        }
Ejemplo n.º 11
0
 public override void MoveBorder()
 {
     if (this.Y >= 812)
     {
         //将敌人飞机销毁
         SingleObject.GetSingle().RemoveGameObject(this);
     }
     //小飞机的坐标>200后
     if (this.EnemyType == 0 && this.Y >= 200)
     {
         //表示小飞机在左边
         if (this.X >= 0 && this.X <= 240)
         {
             this.X += r.Next(0, 200);
         }
         else
         {
             this.X -= r.Next(0, 50);
         }
     }
 }
Ejemplo n.º 12
0
 public override void IsOver()
 {
     //玩家死亡
     SingleObject.GetSingle().AddGameObject(new HeroBoom(this.X, this.Y));
 }
Ejemplo n.º 13
0
 public override void Fire()
 {
     //玩家发射子弹
     SingleObject.GetSingle().AddGameObject(new HeroZiDan(this, 20, 1));
 }
Ejemplo n.º 14
0
 public override void Fire()
 {
     //敌人发射子弹
     SingleObject.GetSingle().AddGameObject(new EnempyZiDan(this, this.EnemyType));
 }
Ejemplo n.º 15
0
 private void Form1_MouseMove(object sender, MouseEventArgs e)
 {
     //将鼠标的坐标赋值给玩家坐标
     SingleObject.GetSingle().HP.MoveWithMouse(e);
 }
Ejemplo n.º 16
0
 private void Form1_MouseClick(object sender, MouseEventArgs e)
 {
     SingleObject.GetSingle().HP.MouseDownLeft(e);
 }