C#游戏《飞机大战》开发中的错误



             项目是:飞机大战


            首先,背景和玩家对象,在SingleObject中都是用一个属性存储,在Form1中我们初始化游戏对象用单例类中的:SingleObject.GetSingle().AddGameObject(GameObject go) 方法,go就是你想创建的对象,调用完成之后,单例类中的对应属性,就被给予了赋值。那么在form1中再调用单例类中的其他方法,就能能够实现相应的操作。


         然后对于敌机,我也想按照玩家飞机的做法,在单例类中设置属性,和玩家飞机一样进行后续编码,然后在form1中写三个初始化敌人飞机
         语句,每次调用AddGameObject的时候,都将传递进来的对象赋值给属性Enemy,再继续后续操作
         结果发现只能绘制出一个对象来,才知道错了,是因为,一个属性只能存储一个对象,当你再
         次创建对象调AddGameObject的时候,第一个属性Enemy其实已经被替换了,所以只能绘制出你
         最后一个创建的那个对象。


        而我想要的效果是:将三个不同的飞机都存储起来,实现draw,move方法。


       那么,为了绘制出同一类型(敌机)的三个不同飞机(0,1,2),我们用一个集合来存储,你调
        一次add函数,我就将此对象放进集合中,进行后续绘制操作,再调,就放进集合的第二个位置
        马上又进行绘制操作,依次类推。。。

       

    //声明一个集合对象来存储敌人飞机对象
       public List listPlaneEnemy = new List();

          后续draw方法的设计为:

 

 //绘制三种不同的敌人飞机
            for(int i=0;i
               

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