js通过⾯向对象⽅法编写微信飞机⼤战
通过⾯向对象的思想进⾏编写,主要使⽤了继承的⽅法,在编程中要考虑创建的每⼀个对象都需要包含那些属性。代码完整有需要的,直接
复制粘贴就可以运⾏了。
html页⾯,代码如下:
js页⾯代码:
/*
*1.创建游戏引擎类
*a.获取所需的id;
*b.实现开始按钮的点击事件
*c.使游戏背景图⾃动移动
*
*2.飞机和⼦弹类
*a.创建飞机类我⽅飞机类和敌⽅飞机类
*⽣成我⽅飞机的实例⽣成敌⽅飞机的实例(三种)
*b.创建⼦弹类
*3.碰撞
*
*⼦弹和敌节水绘画 ⽅飞机碰撞(掉⾎)
*我⽅飞机和敌⽅飞机碰撞(游戏结束)
*
*/
//封装获取id的函数
functiongetById(id){
mentById(id);
}
//游戏引擎类
functionEngine(){
tArea=getById("content");
rea=getById("start");
tn=getById("begin");
ea=getById("main");
=getById("score");
=getById("label");
a=getById("end");
core=getById("planeScore");
Btn=getById("reload");
=function(){
k=()=>{
y="none";
y="block";
y="block";
();
}
}
();
}
//背景图⾃动向下移动
=function(){
varcount=0;
varenemyArr=[];//存放创建的敌⽅飞机实例
varmark1=0;//、每碧绿的组词 计时20次⽣成⼀个敌⽅飞机
varmark2=0;//、通过mark2的值得不同,产⽣不同类别的敌⽅飞机
varbulletArr=[];//存放创建的⼦弹实例
vartimer=tInterval(()=>{
count++;
oundPositionY=count+"px";
//创建敌⽅飞机实例
mark1++;
if(mark1%20==0){
mark2++;
if(mark2%5==0){//⽣成中飞机
varenemyM=newEnemyPlane(()*274,-60,"image/enemy3_fly_",2,200,2,"image/中飞机爆炸.gif",2);
(enemyM);
();
}
if(mark2%20==0){//⽣成⼤飞机
varenemyL=newEnemyPlane(()*210,-164,"image/enemy2_fly_",1,500,3,"image/⼤飞机爆炸.gif",2);
(enemyL);
();
}
//创建⼩飞机
varenemyS=newEnemyPlane(()*286,-24,"image/enemy1_fly_",3,100,1,"image/⼩飞机爆炸.gif",2);
();
(enemyS);
}
//敌⽅飞机遍历
for(vari=0;i<;i++){
enemyArr[i].超高清美女图片 move();
//超过边界,移除
if(enemyArr[i].Top>=568-enemyArr[i].Height){
Child(enemyArr[i].imgNode);
(i,1);
}
}
//创建⼦弹实例
if(mark1%5==0){
varbullet=newBullet(Left+30,Top-10,"image/");
(bullet);
();
}
//⼦弹遍历
for(vari=0;i<;i++){
bulletArr[i].move();
bulletArr[i].move();
//超过边界,移除
if(bulletArr[i].Top<=0){
Child(bulletArr[i].imgNode);
(i,1);
}
}
for(vari=0;i<;i++){
for(varj=0;j<;j++){
//本⽅飞机与敌机碰会议议程怎么写 撞判断
//排除⾎量为0的敌机
if(enemyArr[j].Health){
if(Left+Width>=enemyArr[j].Left&&enemyArr[j].Left+enemyArr[j].imgNo
Width>=Left){
if(孔窍 Top<=enemyArr[j].Top+enemyArr[j].Height&&Top+
Height>=enemyArr[j].Top){
="image/本⽅飞机爆炸.gif";
//清除定时器(不再产⽣⼦弹,敌机)
clearInterval(timer);
//最终分数界⾯显⽰
y="block";
TML=TML;
//(TML)
//清除⿏标移动事件,使本机不再随⿏标移动
emove=null;
//继续事件
k=function(){
();
}
}
}
}
//敌女人为什么不能拜财神 ⽅飞机与⼦弹的碰撞检测
if(bulletArr[i].Left+bulletArr[i].Width>=enemyArr[j].Left&&enemyArr[j].Left+enemyArr[j].i
Width>=bulletArr[i].Left){
if(bulletArr[i].Top干煎大虾 <=enemyArr[j].Top+enemyArr[j].Height&&bulletArr[i].Top+bulletArr[i].i
Height>=enemyArr[j].Top){
//移除⼦弹
Child(bulletArr[i].imgNode);
(i,1);
//敌机降⾎
enemyArr[j].Health--;
//⾎量为0
if(enemyArr[j].Health==0){
//记录分数
TML=parInt(TML)+enemyArr[j].Score;
//敌机爆炸
enemyArr[j].=enemyArr[j].boomImgSrc;
//标记该敌机应该消失
enemyArr[j].deltime=0;
}
break;
}
}
}
}
//延迟⼀会敌机消失
//延迟⼀会敌机消失
for(va备课教案模板 ri=0;i<;i++){
if(enemyArr[i].deltime==0){
//消失延迟
enemyArr[i].displayTime++;
//击中后敌机不再前进
enemyArr[i].=enemyArr[i].Top-enemyArr[i].Speed+"px";
//敌机爆炸图延时时间到,清除敌机
if(enemyArr[i].displayTime==20){
Child(enemyArr[i].imgNode);
(i,1);
}
}
}
},20)
}
//引擎类的实例
varengine=newEngine();
//创建飞机类
functionPlane(x,y,imgSrc){
=x;
=y;
=imgSrc;
}
//飞机显⽰位置
=function(){
e=Element("img");
=;
=+"px";
=+"px";
Child(e);
}
//飞机移动函数
=function(){
thrownewError("请重写该⽅高中生物题 法");
}
//寄⽣式继承
functioninherit(subType,superType){
ype=(ype);
uctor=subType;
}
//我⽅飞机类
functionMyPlane(x,y,imgSrc){
(this,x,y,imgSrc);
}
//调⽤寄⽣式继承
inherit(MyPlane,Plane);
=function(){
emove=(e)=>{
varevt=e||event;
var_left=Width/2;
var_top=Height/2;
varx=Width;
vary=Height;
//控制边界
//控制边界
_left=_left<=0?0:_left>=x?x:_left;
_top=_top<=0?0:_top>=y?y:_top;
=_left+"px";
=_top+"px";
}
}
//创建我⽅飞机实例
varmyplane=newMyPlane(127,488,"image/我的飞机.gif");
();
();
//创建敌⽅飞机类
functionEnemyPlane(x,y,imgSrc,speed,score,health,boomSrc,deltime){
(this,x,y,imgSrc);
=speed;
=score;
=health;
gSrc=boomSrc;
e=deltime;
yTime=0;
}
//调⽤寄⽣式继承
inherit(EnemyPlane,Plane);
=function(){
=Top++"px";
}
//创建⼦弹类
functionBullet(x,y,imgSrc){
(this,x,y,imgSrc);
}
//调⽤寄⽣式继承
inherit(Bullet,Plane);
=function(){
=Top-10+"px";
}
本文发布于:2023-03-18 00:54:42,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/1679072084293295.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:innit.doc
本文 PDF 下载地址:innit.pdf
留言与评论(共有 0 条评论) |