.碰撞检测。Р4.玛丽的实现与控制。Р游戏的总体构架Р根据以上分析,我们把整个游戏分为四个模块:Р1.地图模块:主要为一个Map类,此类包含了地图的所有信息,包括地图背景,建筑物,敌人等。建筑物分为两类:一类是不能产生变化的普通建筑物,另一类是可以被玛丽顶的砖头,可以产生金币、蘑菇或花朵的砖头。Р2.玛丽与主线程模块:Mario为主角玛丽的类,在此类中定义了玛丽的各种属性和动作,并加入了键盘控制。Check类为游戏主线程类,一些主要的功能,包括玛丽动作的实现,与建筑物和敌人的碰撞检测等都在此类中实现。Р3.绘制模块:MyJPanel类。游戏中的所有事物,包括主人公玛丽,建筑物,敌人等等,都通过调用其本身的draw()方法在此类中画出。Р4.垃圾回收模块:Rubbish类。此类为一个线程类,游戏启动时随主线程Check的启动而启动,实时检测游戏中产生的垃圾并回收,减少对系统资源的占用,优化游戏的运行。Р系统结构图如下图(图3-1)所示:Р超级玛丽Р地图模块Р玛丽与主线程模块Р绘制模块Р垃圾回收模块Р图3-1 系统结构Р程序的类结构以及流程图Р3.3.1 类结构Р图3-2 类结构Р如上图(图3-2)所示,本游戏的主要类结构为:Р⑴ Mario类。本类为主角玛丽的实现类,玛丽的动作与控制,以及绘制等方法都在本类中定义。Р⑵ Check类。本类为主要线程类,玛丽的动作,与建筑物、砖头以及敌人的碰撞检测,发子弹,地图的滚屏等等都在本线程类中实现。Р⑶ Map类。本类为地图类。地图上所有的对象,包括建筑物,砖头,敌人等都为此类的属性。Р⑷ Creature类。本类为所有敌人,蘑菇,花朵和金币的父类,本类为线程类,在其具体的子类中定义了相应动作。Р⑸ Brick类。本类为所有砖头类的父类,为线程类。在其具体的子类中定义了相应的动作。Р⑹ CrashCheck类。本类定义了碰撞检测的方法。