js坦克大战以实现炮弹击中目标消失并且记分

话不多说

下载下面的代码包就能看到效果,

效果图:

js代码如下:/**初始化*/

var shell=document.getElementById('tk');

shell.innerHTML='

';

var w=shell.offsetWidth;h=shell.offsetHeight;

/**初始化*/

function keyDown(e) {

var keycode = e.which;

remove(keycode,2);//坦克移动

if(keycode=='32'){//发射子弹

zidan();

}

}

function keyUp(e){//键位弹起时候记录最后按下方向键,并将其储存到class中去

var keycode = e.which; shell_1=document.getElementById('shell_1');

if(keycode=='37' || keycode=='38' || keycode=='39' || keycode=='40'){

shell_1.className='qin'+keycode;

}

}

/**键位监听*/

document.onkeydown = keyDown;

document.onkeyup = keyUp;

/**键位监听*/

function remove(code,su){//玩家坦克移动函数

var shell_1=document.getElementById('shell_1');

var l;

if(code=='37'){//左移

l=shell_1.style.marginLeft;

l=parseInt(l);

if(l>0){

shell_1.style.marginLeft=(l-su)+'px';

}

}

if(code=='38'){//上移

l=shell_1.style.marginTop;

l=parseInt(l);

if(l>0){

shell_1.style.marginTop=(l-su)+'px';

}

}

if(code=='39'){//右移

l=shell_1.style.marginLeft;

l=parseInt(l);

if(l

shell_1.style.marginLeft=(l+su)+'px';

}

}

if(code=='40'){//下移

l=shell_1.style.marginTop;

l=parseInt(l);

if(l

shell_1.style.marginTop=(l+su)+'px';

}

}

}

function zidan(){//玩家坦克子弹函数

/**获取子弹初始位置*/

var che=document.getElementById('shell_1');

var l=che.style.marginLeft;

var t=che.style.marginTop;

var html=shell.innerHTML;//获取原有html

/**获取子弹初始位置*/

var myDate = new Date();

var myid=myDate.getTime();

/**创建初始子弹*/

shell.innerHTML=html+'

';

/**创建初始子弹*/

/**获取子弹的运行方向*/

var fx=che.className;//子弹方向只能在子弹初始的时候获取

/**获取子弹的运行方向*/

var set=setInterval(function(){

var zd=document.getElementById(myid);//获取子弹

if(fx=='qin39'){//子弹向右

var ls=zd.style.marginLeft;

ls=parseInt(ls);

if(ls

zd.style.marginLeft=(ls+1)+'px';

}else{

rezidan(myid);

clearInterval(set);

}

}

if(fx=='qin37'){//子弹向左

var ls=zd.style.marginLeft;

ls=parseInt(ls);

if(ls>0){

zd.style.marginLeft=(ls-1)+'px';

}else{

rezidan(myid);

clearInterval(set);

}

}

if(fx=='qin38'){//子弹向上

var ls=zd.style.marginTop;

ls=parseInt(ls);

if(ls>0){

zd.style.marginTop=(ls-1)+'px';

}else{

rezidan(myid);

clearInterval(set);

}

}

if(fx=='qin40'){//子弹向下

var ls=zd.style.marginTop;

ls=parseInt(ls);

if(ls

zd.style.marginTop=(ls+1)+'px';

}else{

rezidan(myid);

clearInterval(set);

}

}

},10);

}

function rezidan(id){//删除子弹函数或者坦克

var child=document.getElementById(id);

if(child){

shell.removeChild(child);

}

}

//**电脑坦克*/

function ran(){//随机1到4的方位函数

var kwc=Math.ceil(Math.random()*10);

var kwv;

if(kwc%4==0){kwv=1;}

if(kwc%4==1){kwv=2;}

if(kwc%4==2){kwv=3;}

if(kwc%4==3){kwv=4;}

return kwv;

}

function rantanke(){//随机创建敌方坦克

/**初始坦克随机出现位置*/

var html=shell.innerHTML;//获取原有html

var t=Math.random()*1000;

var l=Math.random()*1000;

if(t>h){t=(t-h)+'px';}else{t=t+'px';}//判断坦克不会超出边界太远

if(l>w){l=(l-w)+'px';}else{l=l+'px';}//判断坦克不会超出边界太远

/**初始坦克随机出现位置*/

var myDate = new Date();

var myid=myDate.getTime();

/**创建坦克*/

shell.innerHTML=html+'

';

/**创建坦克*/

var setz=setInterval(function(){

/**被击中*/

var ztk=document.getElementById(myid);dt=ztk.style.marginTop;dl=ztk.style.marginLeft;

dt=parseInt(dt);dl=parseInt(dl);

var zidanob=document.getElementsByClassName('zidan');

if(zidanob.length!=0){

for(i=0;i

var zt=zidanob[i].style.marginTop;

var zl=zidanob[i].style.marginLeft;

zt=parseInt(zt);zl=parseInt(zl);

if(zt>dt && ztdl && zl

zidanob[i].style.display='none';//隐藏子弹

zidanob[i].className='';//当子弹碰撞后删除子弹的class以防止下次继续击中敌方坦克

rezidan(myid);//删除被击中坦克

clearInterval(setz); //删除被击中坦克的时间函数

fensu();//记录分数

}

}

}

/**被击中*/

var clasz=ztk.className;

var oArr = clasz.split(" ");

var fwz;//每次执行这段代码FWZ就清空,fwz是方向判断变量

if(clasz){//判断是否是创建坦克后第一次移动

if(oArr[0]=='qinr'){//持续向右移动50次

if(parseInt(oArr[1])<50){

var lz=ztk.style.marginLeft;

lz=parseInt(lz);

if(lz

ztk.style.marginLeft=(lz+2)+'px';

}else{

fwz=ran();//撞墙重新选定方位

}

var clsaa=parseInt(oArr[1])+1;

ztk.className='qinr '+clsaa;

}else{

fwz=ran();//重新选定方位

}

}

if(oArr[0]=='qinl'){//持续向左移动50次

if(parseInt(oArr[1])<50){

var lz=ztk.style.marginLeft;

lz=parseInt(lz);

if(lz>0){

ztk.style.marginLeft=(lz-2)+'px';

}else{

fwz=ran();//撞墙重新选定方位

}

var clsaa=parseInt(oArr[1])+1;

ztk.className='qinl '+clsaa;

}else{

fwz=ran();//重新选定方位

}

}

if(oArr[0]=='qint'){//持续向上移动50次

if(parseInt(oArr[1])<50){

var lz=ztk.style.marginTop;

lz=parseInt(lz);

if(lz>0){

ztk.style.marginTop=(lz-2)+'px';

}else{

fwz=ran();//撞墙重新选定方位

}

var clsaa=parseInt(oArr[1])+1;

ztk.className='qint '+clsaa;

}else{

fwz=ran();//重新选定方位

}

}

if(oArr[0]=='qinf'){//持续向下移动50次

if(parseInt(oArr[1])<50){

var lz=ztk.style.marginTop;

lz=parseInt(lz);

if(lz

ztk.style.marginTop=(lz+2)+'px';

}else{

fwz=ran();//撞墙重新选定方位

}

var clsaa=parseInt(oArr[1])+1;

ztk.className='qinf '+clsaa;

}else{

fwz=ran();//重新选定方位

}

}

}else{

fwz=ran();//方位函数

}

if(fwz==2){//方位值为2就执行向右移动

var lz=ztk.style.marginLeft;

lz=parseInt(lz);

ztk.style.marginLeft=(lz+2)+'px';

ztk.className='qinr 1';

}

if(fwz==3){//方位值为3就执行向左移动

var lz=ztk.style.marginLeft;

lz=parseInt(lz);

ztk.style.marginLeft=(lz-2)+'px';

ztk.className='qinl 1';

}

if(fwz==1){//方位值为1就执行向上移动

var lz=ztk.style.marginTop;

lz=parseInt(lz);

ztk.style.marginTop=(lz-2)+'px';

ztk.className='qint 1';

}

if(fwz==4){//方位值为4就执行向下移动

var lz=ztk.style.marginTop;

lz=parseInt(lz);

ztk.style.marginTop=(lz+2)+'px';

ztk.className='qinf 1';

}

},50);

}

function fensu(){//记分函数

var ob=document.getElementById('fs');

var s=ob.innerText;

s=parseInt(s);

s=s+1;

ob.innerText=s;

}

rew.zip

( 33.16 KB 下载:9 次 )

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

php 坦克大战,js坦克大战以实现炮弹击中目标消失并且记分相关推荐

  1. 100行JS代码实现❤坦克大战js小游戏源码 HTML5坦克大战游戏代码(HTML+CSS+JavaScript )

    坦克大战js小游戏源码 HTML5坦克大战游戏代码(HTML+CSS+JavaScript ) HTML5坦克大战网页小游戏,完美还原小霸王学习机效果,以坦克战斗及保卫基地为主题,属于策略型类游戏. ...

  2. 微信小游戏制作坦克大战(四)添加敌方坦克,敌方坦克可以随机移动

    微信小游戏制作坦克大战(四)添加敌方坦克,敌方坦克可以随机移动 首先导入敌方坦克素材 重命名为敌方坦克1 敌方坦克也移动到屏幕外面,后面使用克隆体来显示. 我们给敌方坦克添加事件 好的,现在敌方坦克已 ...

  3. 微信小游戏制作坦克大战(六)碰撞检测,主角坦克碰到敌方坦克、炮弹爆炸

    微信小游戏制作坦克大战(六)碰撞检测,主角坦克碰到敌方坦克.炮弹爆炸 导入坦克爆炸效果的图片和声音素材 给主角坦克添加事件 给爆炸动画添加事件 当主角坦克碰到敌方坦克或者炮弹时显示爆炸效果 下一篇文章 ...

  4. #进击的贪吃蛇-----将贪吃蛇,飞机大战,坦克大战功能融合形成新的游戏

    #进击的贪吃蛇-----将贪吃蛇,飞机大战,坦克大战功能融合形成新的游戏. 想必很多大一新生在刚学C语言时和我们遇到过同样的问题,就是如何去做第一个C语言大作业. 我们小组内部在讨论大作业时,并不打算 ...

  5. HTML源码小游戏——坦克大战、飞机大战、捕鱼达人

    捕鱼达人小游戏 飞机大战小游戏 坦克大战小游戏        关注公众号"程序员秋田君",回复 坦克大战.飞机大战.捕鱼达人等信息即可获取源码文件.                 ...

  6. 微信小游戏制作坦克大战(七)碰撞检测,敌方坦克碰到主角坦克炮弹爆炸

    微信小游戏制作坦克大战(七)碰撞检测,敌方坦克碰到主角坦克炮弹爆炸 导入发生炮弹的音效素材 主角坦克发射炮弹或者敌方坦克发射炮弹时播放音效 修改敌方坦克积木 4.效果: 敌方坦克碰到主角坦克炮弹爆炸 ...

  7. 【Java_项目篇1】--JAVA实现坦克大战游戏--坦克移动+添加敌方坦克(二)

    前期文章: [Java_项目篇<1>]--JAVA实现坦克大战游戏--画出坦克(一) 控制小球移动 1.外部类 实现KeyListener监听接口写法 package com.test3; ...

  8. Java之坦克大战(二)---坦克图形绘制

    紧接着我们上一篇的坦克大战一,今天我们先画出一个坦克. 如果直接用面向过程的思想来做的话,那么很容易就可以画出一个坦克. 但是后面我们需要画出很多个坦克, 所以我们要先把面向对象的思想设计好. 我们的 ...

  9. java 坦克大战画坦克_Java坦克大战部分:画出界面,敌人坦克,我的坦克,不出界,键盘事件【诗书画唱】...

    含很多自己写的个理解和注释,想出的解决,建议,提示,注意事项等方法: package tankeGame; import java.awt.Color; import java.awt.Graphic ...

最新文章

  1. Neutron Router 工作原理 - 每天5分钟玩转 OpenStack(142)
  2. Sqoop 1.99.3 hadoop-1.2.1 安装配置
  3. redis(16)--sentinel
  4. 【多媒体内容与体验创新】
  5. WebRTC安全体系架构的8个组件
  6. [html] 解释下什么是CDATA?
  7. mysql 5.6 修改端口_mysql5.6.24怎么修改端口号
  8. CSDN-markdown编辑器使用说明
  9. idea集成python_IDEA集成Python插件,SDK配置
  10. 清北学堂dp图论营游记day4
  11. Mybatis框架简单使用
  12. 基于SpringBoot+webSocket实现扫码登录功能
  13. mysql 备用字段_数据库设计之备用字段
  14. editor.md使用php,Editor.md提示修改
  15. 什么专业的会学python语言_还在纠结学什么编程语言吗?Python可能会“教”你做人...
  16. Linux svn 查看项目的下载地址
  17. 数论在计算机科学中的应用,近世代数思想方法在数论中的应用
  18. 常用视频格式简述(RMVB\RM\WMV\ASF\AVI\MPEG1\MPEG2\MPEG4\MOV)
  19. eclipse给jar包打断点
  20. 关于html video 在chrome浏览器下无法快进问题解决

热门文章

  1. QT QChartView显示坐标值
  2. PostGIS教程十:空间连接
  3. 爬梯:MongoDB入门到高级到SpringBoot-API
  4. linux cpu 查看微码,intel cpu微码 intel官网下的cpu微码 - 下载 - 搜珍网
  5. 五,FreeRTOS之——相对延时与绝对延时
  6. DZone每日必读-News:2022 年 Java 开发:预测和选定趋势
  7. java强引用不会被回收_强引用(Strong Reference)-不回收
  8. (java)跳台阶:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。
  9. [NGUI]NGUI中的九宫格切图模式
  10. phalApi框架打印SQL语句