C#游戏《飞机大战》开发之重点总结



              1     在三种敌人飞机的实例化(绘制)和move方式中,我采用的方式是:在singleobject中声明一个一个move方法,然后通过单例类的这个方法与敌机类中move

           方法进行对接,在主函数中再与单例类中的move方法对接的方式进行绘绘制之后的move。


                  而老师是在敌机类中的Draw方法中直接调用自己的move方法(绘制出飞机之后,就调用move方法进行移动)。两种方式都可以,针对这个例子老师采用了简便方法


       

   public override void Draw(Graphics g)//敌机类
        {
            //this.Move();//画出飞机之后,就让飞机开始移动
            //可以这样写?g.DrawImage(GetImage(this.EnemyType), this.X, this.Y, this.Width / 2, this.Height / 2);
            switch(this.EnemyType)
            {
                case 0:
                    g.DrawImage(img1, this.X, this.Y, this.Width / 2, this.Height / 2);break;
                case 1:
                    g.DrawImage(img2,this.X, this.Y, this.Width / 2, this.Height / 2);break;
                case 2:
                    g.DrawImage(img3,this.X, this.Y, this.Width / 2, this.Height / 2);break;
            }
         }

         public override void Move()
         {
             switch (Dir)。。。


public void MoveGameObject()//单例类
        {
            for (int i = 0; i < 10; i++)
                listPlaneEnemy[i].Move();
        }

//下面这个方法是主函数中调用的
private void DiJiFollow_Tick(object sender, EventArgs e)//这个计时器的时间间隔是50毫秒,就是说系统用50秒调用完成里面的方法,这个是move方法,时间越长,下降速度越慢
        {
            SingleObject.GetSingle().MoveGameObject();
        }


         2:在整个游戏中,不管之后有什么创意需要再添加什么对象,都是与GameObject和SingleObject两个类联系的。GameObject作为父类,封装了共性。

 

     在本例中,父类的绘制方法被声明为abstract,每一个最终类都要具体实现的。也有声明为virtual的方法,最终类选择实现。










你可能感兴趣的:(Game,and,APP,by,the,C#)