Skip to content

Wc30/oop

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 

Repository files navigation

oop

整个实现的思路:

首先是定义出三个基本的类来。 bee ant place

bee 类似于植物大战僵尸中的僵尸 ant 类似于植物
place 类似于庭院

需要实现的东西 bee ant place 相关的子类。每个子类有不同的属性。
这些属性类似于植物大战僵尸中的不同的物种特有的不同的东西。 比如 有的僵尸防御高,有的
植物攻击高,不同的植物 僵尸有不同的技能。

上面提到的这些依靠继承父类来实现,在实现的过程中要考虑好哪些应该被写为类变量,哪些应该被
写为实例变量。 还有哪些方法应该变成一个属性来调用。

ant 和 bee 以及place 的子类是比较好写的。

复杂的地方在那里?

将这些不同的类组合起来,共同协作。

实现的时候 要有一些属性面向玩家全局的。比如 食物(类似于植物大战僵尸的阳光,)金币 等。。有一些属性是要全局共享的。

如何一波一波释放bee? 如何控制游戏难度? 如何更新游戏每一步的状态?

第一个 二个问题是紧密关联的。 这里就要实现一个基本的控制方法。 来决定游戏的难度。 可以通过一个函数,加上一个 代表秒的
变量,根据秒的大小,bee的血量,攻击值来释放。 这里又引出了一个问题,很多时候路径是有多条的, 释放的僵尸去那条路?
在这里也可以控制游戏难度,比如往没有ant的路上放bee。当然也可以选择直接随机释放。 还要考虑的一点是一个place 通常是只可以放
一个ant,但是可以放多个bee。 这里也要做一些判断。 还会有一些特殊情况出现。 比如一些特殊的ant可以放在一个place。 如何
控制代码,来实现这些功能???

在玩植物大战僵尸的时候可以看到僵尸会一格一格往前走? 这个如何实现?
这里就是给place设置俩属性,一个入口 一个出口。 从一个place的出口指向下一个的入口就实现了。

这时把功能做出来了。。在后面要新的功能的时候如何可以很轻松的加入功能? 而不是加了新功能影响了很多代码,导致程序变得很发展,
难以扩展? 这里也是一个问题。。。

About

练习面向对象

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 100.0%