php 坦克大战,js坦克大战以实现炮弹击中目标消失并且记分
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坦克大战以实现炮弹击中目标消失并且记分相关推荐
- 100行JS代码实现❤坦克大战js小游戏源码 HTML5坦克大战游戏代码(HTML+CSS+JavaScript )
坦克大战js小游戏源码 HTML5坦克大战游戏代码(HTML+CSS+JavaScript ) HTML5坦克大战网页小游戏,完美还原小霸王学习机效果,以坦克战斗及保卫基地为主题,属于策略型类游戏. ...
- 微信小游戏制作坦克大战(四)添加敌方坦克,敌方坦克可以随机移动
微信小游戏制作坦克大战(四)添加敌方坦克,敌方坦克可以随机移动 首先导入敌方坦克素材 重命名为敌方坦克1 敌方坦克也移动到屏幕外面,后面使用克隆体来显示. 我们给敌方坦克添加事件 好的,现在敌方坦克已 ...
- 微信小游戏制作坦克大战(六)碰撞检测,主角坦克碰到敌方坦克、炮弹爆炸
微信小游戏制作坦克大战(六)碰撞检测,主角坦克碰到敌方坦克.炮弹爆炸 导入坦克爆炸效果的图片和声音素材 给主角坦克添加事件 给爆炸动画添加事件 当主角坦克碰到敌方坦克或者炮弹时显示爆炸效果 下一篇文章 ...
- #进击的贪吃蛇-----将贪吃蛇,飞机大战,坦克大战功能融合形成新的游戏
#进击的贪吃蛇-----将贪吃蛇,飞机大战,坦克大战功能融合形成新的游戏. 想必很多大一新生在刚学C语言时和我们遇到过同样的问题,就是如何去做第一个C语言大作业. 我们小组内部在讨论大作业时,并不打算 ...
- HTML源码小游戏——坦克大战、飞机大战、捕鱼达人
捕鱼达人小游戏 飞机大战小游戏 坦克大战小游戏 关注公众号"程序员秋田君",回复 坦克大战.飞机大战.捕鱼达人等信息即可获取源码文件. ...
- 微信小游戏制作坦克大战(七)碰撞检测,敌方坦克碰到主角坦克炮弹爆炸
微信小游戏制作坦克大战(七)碰撞检测,敌方坦克碰到主角坦克炮弹爆炸 导入发生炮弹的音效素材 主角坦克发射炮弹或者敌方坦克发射炮弹时播放音效 修改敌方坦克积木 4.效果: 敌方坦克碰到主角坦克炮弹爆炸 ...
- 【Java_项目篇1】--JAVA实现坦克大战游戏--坦克移动+添加敌方坦克(二)
前期文章: [Java_项目篇<1>]--JAVA实现坦克大战游戏--画出坦克(一) 控制小球移动 1.外部类 实现KeyListener监听接口写法 package com.test3; ...
- Java之坦克大战(二)---坦克图形绘制
紧接着我们上一篇的坦克大战一,今天我们先画出一个坦克. 如果直接用面向过程的思想来做的话,那么很容易就可以画出一个坦克. 但是后面我们需要画出很多个坦克, 所以我们要先把面向对象的思想设计好. 我们的 ...
- java 坦克大战画坦克_Java坦克大战部分:画出界面,敌人坦克,我的坦克,不出界,键盘事件【诗书画唱】...
含很多自己写的个理解和注释,想出的解决,建议,提示,注意事项等方法: package tankeGame; import java.awt.Color; import java.awt.Graphic ...
最新文章
- Neutron Router 工作原理 - 每天5分钟玩转 OpenStack(142)
- Sqoop 1.99.3 hadoop-1.2.1 安装配置
- redis(16)--sentinel
- 【多媒体内容与体验创新】
- WebRTC安全体系架构的8个组件
- [html] 解释下什么是CDATA?
- mysql 5.6 修改端口_mysql5.6.24怎么修改端口号
- CSDN-markdown编辑器使用说明
- idea集成python_IDEA集成Python插件,SDK配置
- 清北学堂dp图论营游记day4
- Mybatis框架简单使用
- 基于SpringBoot+webSocket实现扫码登录功能
- mysql 备用字段_数据库设计之备用字段
- editor.md使用php,Editor.md提示修改
- 什么专业的会学python语言_还在纠结学什么编程语言吗?Python可能会“教”你做人...
- Linux svn 查看项目的下载地址
- 数论在计算机科学中的应用,近世代数思想方法在数论中的应用
- 常用视频格式简述(RMVB\RM\WMV\ASF\AVI\MPEG1\MPEG2\MPEG4\MOV)
- eclipse给jar包打断点
- 关于html video 在chrome浏览器下无法快进问题解决
热门文章
- QT QChartView显示坐标值
- PostGIS教程十:空间连接
- 爬梯:MongoDB入门到高级到SpringBoot-API
- linux cpu 查看微码,intel cpu微码 intel官网下的cpu微码 - 下载 - 搜珍网
- 五,FreeRTOS之——相对延时与绝对延时
- DZone每日必读-News:2022 年 Java 开发:预测和选定趋势
- java强引用不会被回收_强引用(Strong Reference)-不回收
- (java)跳台阶:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。
- [NGUI]NGUI中的九宫格切图模式
- phalApi框架打印SQL语句