一、类建立的思路脑图:
总体思路:
1.三大类:GameOject为构建游戏所有对象的类,每个对象包含其二维坐标和对应图片;GameFramework类在游戏主进程中不断被调用Update方法维持游戏逻辑运算的进行;GameObjectManager类管理绘制游戏画面的各种方法,比如方法CreateWall()方法负责绘制普通墙体
2.分类思路:将需要绘制的对象分为两部分,可以在游戏过程中移动物体,已经在游戏过程中不能移动的物体,可以移动的物体需要同时输入上下左右四种方向的图片。
二、代码实现结果:
三、其他细节总结:
1.WINFORM如何禁止调整窗体大小:
从属性窗口设置Font:FormBorderStyle为FixedSingle,并禁用最大化;
2.生成地图发生闪烁:
原因:直接通过窗体画布进行绘制
先由一张bitmap声明一张与窗体大小相同的新的图片tempBmp,由此生成画布bmpG,此后所有绘制过程均位于画布bmpG中,最后将绘制好的图片通过方法WindowG.DrawImage(tempBmp, 0, 0),将图片绘制在窗体画布WindowG上。
3.FPS的理解:
进程GameMainThread中,存在一个while循环,其中的GameFramework.Update()方法不断被循环调用,每次循环后进程通过Thread.Sleep(SleepTime)进行一段时间的休眠
4.属性的快速生成代码:public int X { get; set; }
5.生成的墙体位置数据可以先集中存放在一个List中,然后在DrawMap方法中对列表中所有对象进行绘制,绘制过程调用.DrawSelf()方法。