Objective-C中小怪兽的逻辑

479 查看

学习Objective-C的面向对象也有一段时间了,为了犒劳自己的学习成果,写个小怪兽来犒劳一下自己把。在LOL中有怪兽和英雄的角色吧,接下来就先写一个小怪兽的类吧。从小怪兽的角度来讲,怪兽都有那些行为和属性呢?最重要的两点是小怪兽要打英雄对吧,“攻击英雄”的行为是少不了的,另一个是小怪兽打不过怎么办呢?打不过就跑呗,顺理成章,得有“逃跑”行为吧。要想跑得会动,所以得有移动”的行为吧。

小怪兽除了上面的基本行为外,还有那些属性呢?小怪兽在攻击英雄的同时生命力是由变化的,会由一个值变到另一个值,所以得有“当前的生命力”“原来的生命力”,同时“攻击力”“防御力”对于小怪兽来说也是必不可少的,移动时得有“当前位置”“原来位置”。下面的代码运行的环境是XCode5.0.2版本。

  面向对象不就是用代码模拟现实中的对象,将现实中对象的某些行为能力,特征用代码表现出来,然后用这些代码来模拟现实中的问题。下面就是用计算机来模拟一下小怪兽的逻辑,本博文的文文字和代码均属原创,转载请注明出处。

  一.在计算机中位置一般是由坐标来实现的,所以坐标类是要有的。以下是定义坐标的interface, 存放在Location.h文件中

  代码说明:

    1.下面有两个属性表示坐标x和y,分别给x和y编写setter和getter方法

    2.为了初始化为该类定义类便利构造函数

    3.为了方便查看坐标,为该类定义类display方法,便于显示坐标

编写implementation,对于的文件为Location.m

二.为了节省篇幅小怪兽类的interface就省略不写了,下面是小怪兽的属性

1.为了小怪兽的移动打基础,必须有个方法能够更新位置,也就是实现如果小怪兽要移动,那么必须有新的坐标产生,这个新的坐标就是小怪兽要移动的位置,移动时把原有的坐标更新成现在小怪兽在的地方,而currentLocation跟新成要移动的位置。代码如下: