用原生js以及少量jq的简易坦克大战

    学习了2个多月的js,除了模仿了一些视频的例子,自己没有独立完成过一个成品,因此自己就有了打算写个坦克大战的想法。从开始的找图片素材,到最后的成品完成花了5天时间,虽然其中的代码大都是最基本的,但作品完成后还是挺开心的。

    不过该成品依旧有许许多多的缺陷:

    1,基本没考虑各浏览器的兼容性问题,等以后浏览器兼容方面知识完善后进行修改。

    2,有许多重复的代码可以进行函数封装和赋值局部变量,但我只封装了一个函数(有点懒- -)。

    3,没有解决同时按2个键的冲突问题(在网上看到可以用setinterval来解决,可是还是不会 - -!)。

    4,框架搭的实在是太差了,东一点,西一点,阅读性较低。

    5,可能还存在一些小BUG没有找到。

    ------------------程序在我的代码分享中,自己下载----------------

    接下来是代码的用途与介绍:

 

    1.

155539_VjIK_2661954.png

这是我方坦克重生的代码,4-7行是我方坦克的显示以及显示位置,,第8行是坦克方向为上,第9行坦克以重生。

2.

155938_pKPY_2661954.png

这是我方坦克向左发射子弹,第1行x判断子弹是否存在,y是判断游戏是否开始。第3-7调整子弹位置并显示。接下来的代码为子弹与边界的碰撞,子弹消失。

3.

160442_3HGN_2661954.png

该图接上,判断子弹与基地碰撞后的结果,replayshow() 后面会有介绍,大概就是游戏结束。

4.

160711_zHQ9_2661954.png

该图接上,判断子弹与敌方坦克碰撞后的结果,第9 10,12-15行是在敌方坦克处,出现爆炸图片,并出现30毫秒后消失。

5.

160947_DRX6_2661954.png

该图接上,判断子弹与墙体碰撞后的结果,bulletWallL()后面会有介绍。

!!然后接下来是下,上,右一些差不多的代码就不一一介绍了!!

6.

161223_dE2Q_2661954.png

该函数就是子弹与墙碰撞后的结果。

7.

161527_Pits_2661954.png

第4-19行是从各个方向到左后坦克的显示方式。第20行是将我方坦克的方向变量置为0(左)。第21行坦克向左移tankSpeed像素。第22-24行是我方坦克与边界碰撞后的处理。第25-28行是我方坦克与基地碰撞的处理。第29行是我方坦克与敌方坦克碰撞的处理,第30-34行是我方坦克与墙碰撞后的处理。impactL(  ,   )后面会有介绍。

!!接下来是右,上,下的代码就不一一赘述了!!

8.

162332_LdMm_2661954.png

该函数就是坦克与物体碰撞后的处理。

9.

162543_Jhw9_2661954.png

该函数就是地方坦克,第4-7行是敌方坦克的显示位置。第8行敌方坦克方向向下。第9行地方坦克已重生。

10.

162803_iDTv_2661954.png

这是敌方坦克自动移动的函数,第5-8是敌方坦克与边界碰撞的处理,第9,10是敌方坦克与基地,我方坦克碰撞的处理。第11-14是敌方坦克与墙碰撞的处理。

!!接下来是右,上,下的重复代码!!

11.

163042_u5E9_2661954.png

该函数是敌方坦克自动转向函数,第2行是随机产生一个500-2499的随机数,让定时器能在500ms到2499ms之间换个方向。第4行是随机产生一个0-3的随机数,第5-20行是得到j,并处理敌方坦克方向问题。

12.

163415_1yyo_2661954.png

 

 

 该函数是敌方子弹处理函数,第5-9行调整子弹位置并显示。第10行判断子弹已存在。第16-22判断子弹与边界碰撞的处理。

13.

163649_he2C_2661954.png

判断敌方子弹与基地碰撞后的处理。

14.

163752_Cnq6_2661954.png

判断敌方子弹与我方坦克相撞后的处理。

15.

163923_Gr9D_2661954.png

判断敌方子弹与墙相撞后的处理。

!!接下来是右,上,下的重复代码!!

16.

164105_kKYI_2661954.png

该函数就是显示一个div,该div的功能为重新开始(点击重新开始或按回车键)。

17.

164340_CbMH_2661954.png

该函数是创建墙,第3行是创建一个img。第4行是赋值该img的id。第5行是添加该图片的路径,第6行是将该img置于地图当中。第7-12行是该墙的css。第13行是将该id置入wall数组,方便读取。

转载于:https://my.oschina.net/kejiacheng/blog/663920

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值