植物大战僵尸

本文详细解析了经典游戏《植物大战僵尸》的实现原理,包括背景图填充、僵尸动画移动、随机位置生成、子弹碰撞及爆炸效果等关键技术点。介绍了如何使用HTML和JavaScript创建游戏元素,实现动态效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

知识点:
1.铺满全屏
background: url(img/b.jpg) fixed;
background-size: 100% 100%;
2.一般动画的原理就是改变位移量
3.节点:就是一个标签
父节点就是这个标签上一个的标签
植物大战僵尸
(1)填充背景图
(2)先添加僵尸
(3)先让一个僵尸动
a.获取僵尸
b.用定时器对僵尸进行刷新,让僵尸移动
(4)克隆大量僵尸,并让这些僵尸随机出现在不同的指定位置
把克隆僵尸封装起来,创建僵尸函数
a.获取僵尸模板
var Zombie = document.getElementById(“js”);
b.写克隆节点函数
var newZombie = Zombie.cloneNode(true);
c.需要把克隆出的新僵尸设置样式属性
newZombie.style.position = “absoulte”;
d.给新僵尸一个随机位置
newZombie.style.top = 30 + parseInt((Math.random()*5))*98+“px”;
newZombie.style.left = 900 + “px”;
e.重要的一步,把僵尸真正的加入到body中(目前以上的代码还是只有一个僵尸)
document.body.appendChild(newZombie);
f.s最后返回创建的这一个新僵尸,目的是在写僵尸行走函数时能够直接获取到克隆的新僵尸,然后改变它的位移量
return newZombie;
(5)让僵尸动
创建僵尸行走函数
用定时器让僵尸走
var dong = setInterval(function(){
newJS.style.left = newJS.offsetLeft-5+“px”;

				},200)

注:定义dong变量可以辨别是哪个定时器,在这个地方可以不定义dong变量,但在后来的让子弹飞时的那个函数必须定义变量,因为那里会用到清除定时器这一函数,清除哪个定时器就是用这一变量来区分的
代码中的注释:
//延时函数:让僵尸3s中之后去走
//延时3s中之后去执行匿名函数里面的内容
/* setTimeout(function(){
//用定时器让僵尸刷新,就能移动
//让僵尸移动
var dong = setInterval(function(){
//每隔400毫秒改变一次僵尸的left
Zombie.style.left = Zombie.offsetLeft-5+“px”;

		},400)
		},3000)*/
		//把僵尸随机出现在不同的跑道中间
		//弄出一个僵尸先停几秒再走

(6)创造子弹的函数和让子弹飞的函数同理,原理一样
(7)子弹超出一定范围,让子弹爆炸
原理:让子弹碎,换一张子弹碎的图片即可
newZiDan.src = “img/za.gif”;
让碎子弹停止,别走了,需要清除定时器:
clearInterval(ZiDanFly);
//延时函数,延时半秒之后让碎的子弹消失
setTimeout(function(){
//通过newZiDan,找到父节点,杀死子节点
newZiDan.parentNode.removeChild(newZiDan);
//法二:找到终极boss,把子弹的子节点删掉
//document.body.removeChild(newZiDan);

						},500)

(8)子弹碰到僵尸,子弹碎了并且消失,并且僵尸头掉了
通过点设置,在子弹上一个点,僵尸上一个点

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值