丿玩网logo
您当前位置:丿玩网 > 资讯攻略 > 游戏问答

植物大战僵尸怎么编程?

提问时间:2022-03-29 23:06:48

浏览73900

请问植物大战僵尸怎么编程?植物大战僵尸大神讲解一下植物大战僵尸编程方法,求回答,萌新弱弱问下!

推荐答案
本回答由提问者推荐

作者你的黑美瞳你的黑美瞳
认证用户

1.设计一个双人对战的植物大战僵尸,两人在一台电脑上玩。

植物方使用鼠标控制,基本上与原版的控制的方法一样。植物方获胜条件是打掉僵尸最后面的五个墓碑中的三个。僵尸方使用键盘控制,W控制僵尸选择光标的上移,S控制僵尸选择光标的下移,ENTER是僵尸选择的确认,方向键控制僵尸安放的位置,空格键是安放僵尸。僵尸方的获胜条件是与原版一样走到戴夫家里。

植物大战僵尸怎么编程?

2.首先,根据我的设计,我把游戏分为几个元素:地图格子元素,卡片元素,僵尸元素,推车元素,僵尸方的墓碑靶子元素,植物的子弹元素,动画效果播放元素。其次,把游戏分为几个处理:子弹碰到僵尸处理,僵尸碰到植物处理,推车碰到僵尸处理,子弹碰到墓碑靶子处理等。每个处理完后立马接上动画播放效果。

植物大战僵尸怎么编程?

3.植物元素和僵尸元素都是动态的,于是我想到了加载GIF。经过查找资料,找到了在VC6.0中用GDI 加载GIF的方法。

详见VC6.0使用GIF资料

资料和示例程序地址VC6.0加载GIF方法,示例程序

这是因为当数据量很大时,绘图可能需要几秒钟甚至更长的时间,而且有时还会出现闪烁现象,为了解决这些问题,可采用双缓冲技术来绘图。双缓冲即在内存中创建一个与屏幕绘图区域一致的对象,先将图形绘制到内存中的这个对象上,再一次性将这个对象上的图形拷贝到屏幕上,这样能大大加快绘图的速度。双缓冲实现过程如下:

 (1)、在内存中创建与画布一致的缓冲区

(2)、在缓冲区画图

 (3)、将缓冲区位图拷贝到当前画布上

 (4)、释放内存缓冲区

 增加双缓冲后的示例程序地址双缓冲加载GIF程序结果

植物大战僵尸怎么编程?

4.植物大战僵尸的地图中的草地是有一格一格的,于是可以建立一个二维数组的结构体,来表示地图上当前格子的状态。

植物大战僵尸怎么编程?

5.植物与僵尸都有选择的卡片

植物有植物的卡片,僵尸有僵尸的卡片。每张卡片它们具有不同的属性,建立一个结构体。

植物大战僵尸怎么编程?

6.每个僵尸都是一个独立的单元,包含着它的存活,位置等。我用的是一个结构体数组,其实可以用循环队列的。

植物大战僵尸怎么编程?

7.这里其他元素是推车元素,僵尸方的墓碑靶子元素,植物的子弹元素。同理,它们有自己特性。

植物大战僵尸怎么编程?

8.游戏处理
3.3.1子弹碰到僵尸处理
子弹是一个结构体数组,僵尸也是结构体数组,用两个for循环扫描这两个数组,当子弹的坐标与僵尸的坐标满足相碰关系时,子弹激活标志清零,即子弹消失,同时僵尸的生命值减一。直到僵尸清零,僵尸死亡。
3.3.2僵尸碰到植物处理
For循环扫描每个僵尸,通过僵尸的位置判断出它此时所对应地图上的前一个格子。通过当前格子的状态,判断接下来发生的事情。例如:格子里没植物,僵尸通过;僵尸碰到豌豆射手,坚果墙,向日葵就停下来开吃,同时,格子的生命值不停地减,直到吃掉植物,向前通行,当是撑杆僵尸有一个杆子,碰到它们后要跳过它们;僵尸碰到炸弹,窝瓜,食人花就被吃掉或炸死,同时播放动画效果。
3.3.3推车碰到僵尸处理
For循环扫描每个僵尸,当僵尸走到最左端的时候,激活推车的标志,并且推车向右行驶。推车在这条路上碰到僵尸,僵尸就死亡,当推车到达最右端时,推车死亡。

植物大战僵尸怎么编程?
260

其他回答

匿名玩家匿名玩家
植物大战僵尸

1.设计一个植物大战僵尸,两个人在电脑上玩。

植物方用鼠标控制,基本和原来的控制方法一样。植物方获胜的条件是打掉僵尸最后五个墓碑中的三个。僵尸方用键盘控制,W选择光标上移控制僵尸,S选择光标下移控制僵尸,ENTER是僵尸选择的确认,方向键控制僵尸放置的位置,空格键放置僵尸。僵尸获胜的条件是像原来一样去戴夫家。

2.首先,根据我的设计,我将游戏分为几个元素:地图格子元素、卡片元素、僵尸元素、手推车元素、僵尸墓碑目标元素、植物子弹元素、动画效果播放元素。其次,游戏分为几种处理方法:子弹遇到僵尸处理、僵尸遇到植物处理、手推车遇到僵尸处理、子弹遇到墓碑目标处理等。每次处理后立即连接动画播放效果。

3.植物元素和僵尸元素都是动态的,所以我想到了加载GIF。查找资料后,找到了VC6.0中用GDI 加载GIF的方法。

详见VC6.0使用GIF资料

数据和示例程序地址VC6.0加载GIF方法,示例程序

这是因为当数据量很大时,绘图可能需要几秒钟甚至更长时间,有时会闪烁。为了解决这些问题,双缓冲技术可以用于绘图。双缓冲是在内存中创建一个与屏幕绘图区域一致的对象。首先将图形绘制到内存中的对象上,然后将对象上的图形一次复制到屏幕上,可以大大加快绘图速度。双缓冲实现过程如下:

 (1)在内存中创建与画布一致的缓冲区

   (2),在缓冲区画图

 (3)将缓冲区位图复制到当前画布上

 (4)释放内存缓冲区

 双缓冲加载后增加示例程序地址GIF程序结果

4.植物大战僵尸地图上的草地有一格一格,因此可以建立一个二维数组结构来表示地图上当前格子的状态。

5.植物和僵尸都有选择卡

植物有植物卡,僵尸有僵尸卡。每张卡片都有不同的属性,建立了一个结构。

6.每个僵尸都是一个独立的单元,包括它的生存和位置。我用的是一个结构体数组,实际上可以用循环队列。

7.其它元素是手推车元素、僵尸墓碑靶子元素、植物子弹元素。同样,它们也有自己的特点。

8.游戏处理3.3.1子弹遇到僵尸子弹是一个结构体数组,僵尸也是结构体数组,用两个for循环扫描这两组。当子弹的坐标与僵尸的坐标相遇时,子弹激活标志被清除,即子弹消失,僵尸的生命值减少一个。直到僵尸被清除,僵尸才死亡。3.3.2僵尸遇到植物治疗For循环扫描每个僵尸,通过僵尸的位置判断相应地图上的前一个网格。通过当前网格的状态来判断接下来发生了什么。例如:网格中没有植物,僵尸通过;僵尸遇到豌豆射手,坚果墙,向日葵停下来吃,同时,网格的生命值不断减少,直到吃植物,向前通过,当支撑僵尸有一根杆,遇到它们跳过它们;僵尸遇到炸弹,甜瓜,食人花被吃死,同时播放动画效果。3.3.3手推车遇到僵尸处理For循环扫描每个僵尸。当僵尸走到最左端时,激活手推车的标志,手推车向右行驶。当手推车在这条路上遇到僵尸时,僵尸就会死亡。当手推车到达最右端时,手推车就会死亡。

植物大战僵尸

游戏评分:8.9

游戏分类:休闲益智

游戏语言:简体中文

《植物大战僵尸》是由美国宝开游戏公司(PopCap Games)开发的一款益智策略类单机游戏,于2009年5月5日发售。
  • 相关问答
  • 热门攻略