Android_手把手教你写跳跃类游戏(3)

 

-----------------------------------------------------------------------------
博客已搬家:地址  博客已搬家:地址 博客已搬家:地址
-----------------------------------------------------------------------------

 这是第三篇博客,在本次教程中,我们将完成Food这个类的设计。这是游戏相当关键的一部分,直接决定了游戏的可扩展性、可玩性。。。

 进入正题:

先给大家看下Food类的类图:

从图中我们可以看到有多种食物,并且它们具有很多相同的属性和方法。所以我们很容易想到使用继承Food

新的类图就变成这个样子了:

Android_手把手教你写跳跃类游戏(3)_第1张图片

这样当我们为游戏添加新的事物类型时只需要继承Food类并重写draw方法就可以了。(不同的食物,所表现的外观不同,所以需要具体的食物类,自己实现这个方法)

但是还有一点值得注意:每一个食物都有多种运动方式。如:水平运动,垂直运动,静止。。。如果将这些方式写在具体的事物类里面,首先这个move方法会变得很复杂,里面会有各种分支,判断。。。

那么如果后期我们对游戏进行升级,比如增加一种新的运动方式,或者删除一种新的运动方式将变得非常繁琐,而且也不利于代码的复用。

这个时候我们需要采用这样一种设计模式:策略模式。

我们把move这个方法抽象为一个类MoveBehaviour

那么新的类图就是这个样子了:

当我们需要添加新的运动方式时,只需要写一个类继承MoveBehavior,并实现具体的move方法就可以了。

这样就完成了食物类的设计了。我们这样设计之后,就可以非常灵活的创建新的食物,并为其添加新的运动方式了。。。了不起!!!

给大家看下项目的结构图:

Android_手把手教你写跳跃类游戏(3)_第2张图片

通过将源码放在对应的package里面更利于游戏的管理。

源码下载地址请看最终版!

你可能感兴趣的:(设计模式,游戏,android,扩展)