【用C#写游戏-XNA游戏编程】坦克大战(二) 磨刀不误砍柴工
来源:互联网 发布:射手 mac 编辑:程序博客网 时间:2024/05/17 07:16
俗话说得好"磨刀不误砍柴工",刀磨得锋利了,砍起柴来才显得利索;程序也一样,前期没有把准备工作做充分的话,后面更会有一种写不下去的感觉。而我们的准备工作就是使用UML建模、画类图。把各种的关系理清楚后,咱再动手完成《坦克大战》,好废话不多说,开始画图!
上一篇文章的做法我们都是直接把游戏贴图的加载、坦克的控制、移动都写在Game1.cs这个类里面,虽说这样写不是不行,但随着游戏逐渐的形成,你会发现代码会慢慢得变得冗余、耦合度也随着上涨、代码变得难易维护甚至是难于阅读。所以我们要把之前学到的面向对象设计知识运用到游戏里面,先来画UML类图吧,把大概的结构清理出来。
初步大概的结构就是这样。
首先是TankeSprite类,这是一个抽象类; 把玩家坦克和电脑坦克相同的地方抽出来。
然后是继承TankeSprite的两个子类,PlayerSprite和EmemySprite,虽然玩家坦克和电脑坦克有大部分的共同之处,但也有它们各自个性化的一些东西。例如玩家坦克的移动是由手柄或者键盘进行操作,而电脑的移动则是由AI来控制,还有玩家坦克可以使用"道具",而电脑坦克则没有这一设定等等,所以通过子类继承抽象类的方式把它们个性化的东西区分开来。
接着就是SpriteManager类,这个类的作用主要是为了管理所有的游戏精灵(包括坦克精灵、子弹精灵、道具精灵)对象的添加、摧毁。
最后就是IGameLogic接口,这里使用接口是因为想后面能加入网络对战的功能,所有分为本地处理游戏逻辑和服务器端处理游戏逻辑这两种实现。
这样大概一个小坦克游戏的骨架就搭起来,当然还缺少场景,音乐这些。但先别管那么多,先让小坦克能发射子弹、能移动以后再慢慢完善。
- 【用C#写游戏-XNA游戏编程】坦克大战(二) 磨刀不误砍柴工
- 【用C#写游戏-XNA游戏编程】坦克大战(一) 初探XNA
- 【用C#写游戏-XNA游戏编程】坦克大战(三) 让面向对象的坦克在游戏画面上跑起来
- c#游戏编程-利用SharpDX编写坦克大战游戏(1)
- C#开发-----坦克大战游戏
- 用Qt写的一个坦克大战游戏
- Android坦克大战游戏设计解析二
- jquery 坦克大战游戏
- 坦克大战游戏代码
- 小游戏坦克大战游戏设计
- 《坦克大战》游戏c++ 需求
- HTML5 坦克大战 游戏开发
- 坦克大战游戏的设计
- HTML5之坦克大战游戏
- HTML5之坦克大战游戏
- 坦克大战----Ubuntu终端游戏
- 【Java_项目篇<1>】--JAVA实现坦克大战游戏--坦克移动+添加敌方坦克(二)
- Java之详解坦克大战游戏(二)
- Android 时间日历
- 排序算法——常见排序算法汇总
- 算法习题39:二叉树节点距离
- linux驱动开发的经典书籍
- Sqlserver中char,nchar,varchar与Nvarchar的区别分析
- 【用C#写游戏-XNA游戏编程】坦克大战(二) 磨刀不误砍柴工
- python操作处理Excel文件
- PreparedStatement优势
- 制作ramdisk根文件系统大家说
- 使用centos做yum仓库
- Ubuntu14.04更新软件源
- JDBC配置文件的读取
- TOF相机总结
- PL/SQL Developer导入、导出表结构和表数据