植物大战僵尸怎么编程? (墓碑靶子)

搁浅回忆 2022-09-26 10:51:10
问题描述: 请问植物大战僵尸怎么编程?有玩植物大战僵尸游戏玩家说一下,植物大战僵尸怎么编程的相关攻略,求回答,谢谢!
精选回答

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循环扫描每个僵尸,当僵尸走到最左端的时候,激活推车的标志,并且推车向右行驶。推车在这条路上碰到僵尸,僵尸就死亡,当推车到达最右端时,推车死亡。

搁浅回忆

相关推荐

屋顶关卡有什么推荐阵容?

屋顶关卡,卡牌要选择的是,花盆,太阳花,土豆雷,玉米投手或者卷心菜投手,还有西瓜投手,双重向日葵,其他可以任选。豌豆射手一类的债屋顶关卡必须放在大前排才可以,安放后排是无法攻击到前排的,所以不推荐使用豌豆射手建议使用投手一类的植物。开局后数
详情

最强植物排行榜是怎样?

NO1:火龙草火龙草属性阳光:需要150;攻击:前方6格输出的火焰攻击,可以解除冰冻僵尸;位置:中间,前方最好有坚果在前面配合;大招:使用绿叶时,火龙草会立刻变成飞龙跳起火焰攻击正前方9格内的所有僵尸(伤害等同于樱桃炸弹)。这是一个神器级的
详情

夜晚模式推荐什么阵容?

小喷菇 在游戏里共有两种免费的植物,而小喷菇就是其中的一个,所以不需要阳光,但在夜间模式的作用还是无穷大的,如果在游戏的开局就布下了一系列的小喷菇,那普通僵尸绝对无法进攻,并且后方也可以进行快速的生长,并为游戏后期打下优良的基础,小喷菇也可
详情

哪个植物威力最大?

要说清怪,当然是爆炸系比较好,几种爆炸植物只是范围的区别,毁灭菇有两个缺点就是留坑和白天需要咖啡豆,但攻击范围也是很值的。玉米加农炮反复利用性比较高,无尽相当可靠。单点输出,机枪射手是很强的,配合火炬,就有8点伤害(以一颗豌豆为一点计算)。
详情

所有僵尸分别有多少血?

植物大战僵尸中所有僵尸分别有多少血?植物大战僵尸中摇旗僵尸血量为270点普通僵尸血量为270点。路障僵尸血量为640点撑杆僵尸血量为400点铁桶僵尸血量为1370点读报僵尸血量为420点铁栅门僵尸血量为1370点橄榄球僵尸血量为1670点舞
详情

会飞僵尸用什么植物打?

在植物大战僵尸中,会飞的僵尸有气球僵尸,我们该如何克制气球僵尸呢?植物大战僵尸气球僵尸打法技巧:气球僵尸可以飞,吹走它或者打破它的气球可以了。三叶草三叶草能够吹走浓雾和所有的气球僵尸。猫尾草猫尾草能够攻击气球僵尸或任何一条路上的僵尸,如果有
详情

每种植物分别对应什么僵尸?

豌豆射手——普通僵尸向日葵——旗帜僵尸樱桃炸弹——路障头僵尸坚果墙——撑杆跳僵尸土豆雷——铁桶僵尸寒冰射手——读报僵尸大嘴花——铁栅门僵尸双发射手——橄榄球僵尸小喷菇——舞王僵尸阳光菇——伴舞僵尸大喷菇——游泳圈僵尸墓碑苔藓——潜水僵尸诱惑
详情

无尽模式最佳阵容是什么?

最佳阵容之top1八炮加梯子梯子八炮是八炮的优化版!在经典八炮的后场加上梯子,上下梯子的过程中实用忧郁蘑菇击杀!是操作性和容易度再一步减小!但是缺点就是不能再对后场实用火爆辣椒!因为火爆辣椒摧毁僵尸的过程也会把梯子摧毁,不过是的稳定性和操作
详情

精选推荐

植物大战僵尸手游怎么调中文?

植物大战僵尸是一款极富策略性的游戏,防御方式就是栽种植物去对抗僵尸。1,进入设置,打开电脑并进入游戏界面,在设置中找到属性,再点击语言设置按钮。2,设置中文,选择文字,我们将选项改为中文设置。3,保存好设置以后,重新进入游戏就变成了中文字体

植物大战僵尸怎么开启大胡子模式?

在植物大战僵尸中,只需要2步就能开启大胡子模式。1.打开植物大战僵尸游戏,接着按下空格键暂停游戏。2.接着在键盘上输入mustache,即可开启大胡子模式。以上是关于植物大战僵尸大胡子模式的情况,希望可以帮助到大家。

植物大战僵尸自定义窗口大小怎么调?

植物大战僵尸自定义窗口大小调整如下:1、玩家可以使用ESC呼出游戏菜单2、点击Option选线取消勾选FullScreen选项,就可以修改游戏为窗口模式。3、然后拖动窗口修改窗口大小。

植物大战僵尸5-9关怎么过?

过法如下:1、在上一关中,得到了一个西瓜投手,在用鼠标的左键点击后,进入下一关。接下来,看看敌人,敌人中有投石车僵尸,伽刚特尔,拿梯子的僵尸,蹦极僵尸等,难度增加了。然后,选择武器,这里又增加了西瓜投手,其余的仍然有卷心菜投手,玉米投手,红

植物大战僵尸神器第二关怎么打?

1.在第二关,我们会发现僵尸的数量变得很多,别怕,这些僵尸的级别非常低,很容易打死。2.我们有了向日葵后,就可以自己收获阳光而不是依靠自然掉落,在引导下,我们将向日葵种植在草地上。3.向日葵至少要种植一排,不要太种少了,这样才有足够的阳光可

植物大战僵尸双子向日葵怎么用?

1、玩家必须在“疯狂戴夫的玩具店”中,花费$5,000购买到双子向日葵的种子包,从而解锁双子向日葵。2、必须要种在已有的向日葵上,双子向日葵会双倍叠加向日葵的阳光产量,即其能够将约每24秒25阳光的产量提升至同一时间间隔50阳光。