坦克大战里的子弹可以把绿色整没

他的最新文章
他的热门文章
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)坦克大战02- 绘制敌方坦克,子弹发送,杀死敌方坦克坦克大战02首先对《坦克大战01》中的JS代码进行提取,绘制敌方坦克同绘制Hero坦克的方法是相同的,所以可以提取出一个共同的基类,基类中包括坦克位置坐标、速度、方向、颜色及其上下左右移动时的函数。然后HERO和Enemy可以继承自这个基类。此处继承用到了对象冒充。代码如下://定义一个Tank类(基类) &function Tank(x,y,direct,color){ && & this.x=x; && & this.y=y; && & this.speed=heroS && & this.direct= && & this.color=&& & //上移 && & this.moveUp=function(){ && & & & this.y-=this. && & & & this.direct=0; && & } && & //右移 && & this.moveRight=function(){ && & & & this.x+=this. && & & & this.direct=1; && & } && & //下移 && & this.moveDown=function(){ && & & & this.y+=this. && & & & this.direct=2; && & } && & //左移 && & this.moveLeft=function(){ && & & & this.x-=this. && & & & this.direct=3; && & } &} &//定义一个Hero类 &function Hero(x,y,direct,color){ && & //下面两句话的作用是通过对象冒充达到继承的效果 && & this.tank=T && & this.tank(x,y,direct,color);} &//定义一个EnemyTank类 &function EnemyTank(x,y,direct,color){ && & this.tank=T && & this.tank(x,y,direct,color); &} &坦克运行时就是每次键盘方向事件后将画布进行刷新,坦克的位置发生变化重新绘制。重绘函数如下:& &function flashMap()& & {& & & & cxt.clearRect(0,0,400,300);& & & & drawTank(hero);& & & & for (var i =0; i & 3; i++) {& & & & & & &if(enemyTank[i].isLive)& & & & & & & & drawTank(enemyTank[i]);& & & & }& & }这样坦克就可以动起来了。接下来就是要增加子弹的发射。子弹同样可以创建一个子弹类。包括坐标位置、移动速度、子弹颜色、速度、方向以及子弹移动的函数。如下function Bullet(x,y,direct,speed,color){& & this.x=x;& & this.y=y;& & this.direct=& & this.speed=& & this.color=& & this.timer=& & this.isLive=& & this.run=function() {& & & & //判断子弹是否已经到边界了 && & & & if(this.x&=0||this.x&=400||this.y&=0||this.y&=300){ && & & & & & //子弹要停止 && & & & & & window.clearInterval(this.timer); && & & & & & //子弹死亡 && & & & & & this.isLive= && & & & }else{ && & & & & & switch(this.direct)& & & & & & {& & & & & & & & case 0:& & & & & & & & this.y-=this.& & & & & & & & var num=iskillEnemy(this.x,this.y);& & & & & & & & if(num==1)& & & & & & & & & &this.isLive=& & & & & & & && & & & & & & & case 1:& & & & & & & & this.x +=this.& & & & & & & & var num=iskillEnemy(this.x,this.y);& & & & & & & & if(num==1)& & & & & & & & & &this.isLive=& & & & & & & && & & & & & & & case 2:& & & & & & & & this.y+=this.& & & & & & & & var num=iskillEnemy(this.x,this.y);& & & & & & & & if(num==1)& & & & & & & & & &this.isLive=& & & & & & & && & & & & & & & case 3:& & & & & & & & this.x-=this.& & & & & & & & var num=iskillEnemy(this.x,this.y);& & & & & & & & if(num==1)& & & & & & & & & &this.isLive=& & & & & & & && & & & & & }& & & & }& & }}上边子弹类中加入的isLive判断是否越界,越界之后停止刷新。timer对应的用于子弹移动的定时调用,对应一个定时器。iskillEnemy(x,y)函数判断是否杀死敌方坦克,实现如下:function iskillEnemy(x,y){& & for(var i=0;i&3;i++)& & {& & & & if(enemyTank[i].x&x && x&enemyTank[i].x+30& & & & & & && enemyTank[i].y&y && y&enemyTank[i].y+30)& & & & & & {& & & & & & & & enemyTank[i].isLive=& & & & & & & & return 1;& & & & & & }& & & & & &&& & }}之后就是再Hero坦克类中增加子弹发射的函数,如下:& //射击敌人函数 && & &this.shotEnemy=function(){ && & & & switch(this.direct){ && & & & & & case 0: && & & & & & heroBullet=new Bullet(this.x+11,this.y,this.direct,bulletSpeed,bulletColor); && & & & & & && & & & & & case 1: && & & & & & heroBullet=new Bullet(this.x+30-4,this.y+10+5,this.direct,bulletSpeed,bulletColor); && & & & & & && & & & & & case 2: && & & & & & heroBullet=new Bullet(this.x+11,this.y+30,this.direct,bulletSpeed,bulletColor); && & & & & & && & & & & & case 3: && & & & & & heroBullet=new Bullet(this.x-4,this.y+10+5,this.direct,bulletSpeed,bulletColor); && & & & & & && & & & } && & & & //把这个子弹放入数组中——》push函数 && & & & //调用我们子弹的run && & & & //var timer=window.setInterval(&heroBullet.run()&,50); && & & & //heroBullet.timer= && & & & heroBullets.push(heroBullet); && & & & var timer=window.setInterval(&heroBullets[&+(heroBullets.length-1)+&].run()&,50); && & & & heroBullets[heroBullets.length-1].timer= && & } &&每次射击都新增一个子弹变量,然后将此子弹变量放入全局数组heroBullets中。给每个子弹增加定时器,定时调用移动的函数,实现子弹的前进。这样整个过程就基本实现完成了。查看html整体代码和javascript整体代码。
留言板|联系我们|手机免费开店APP下载COPYRIGHT(C) 天津理工大学技术支持:来此购微店中国(京津冀)高校自媒体联盟我用java做一个坦克大战的小游戏,怎么实现游戏暂停和继续的功能,敌人的坦克还有子弹类是线程_百度知道
我用java做一个坦克大战的小游戏,怎么实现游戏暂停和继续的功能,敌人的坦克还有子弹类是线程
?我用java做一个坦克大战的小游戏,怎么实现游戏暂停和继续的功能??,敌人的坦克还有子弹类是线程??
我有更好的答案
标记,等超人现身说法
不清楚这个
线程设置sleep阻塞,或则使用Util.Timer类和TimerTask来实现暂停功能,继续可以用interupt中断阻塞,我是这样想的,不知道正不正确,希望对你有所帮助。
能否加一下好友,求指示
退出呗啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊
其他1条回答
为您推荐:
其他类似问题
坦克大战的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。豆丁微信公众号
君,已阅读到文档的结尾了呢~~
html5实现经典坦克大战坦克乱走还能发出一个子弹
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
html5实现经典坦克大战坦克乱走还能发出一个子弹
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='http://www.docin.com/DocinViewer--144.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口城建人员平整绿化带 土里发现51颗子弹_凤凰资讯
城建人员平整绿化带 土里发现51颗子弹
用微信扫描二维码分享至好友和朋友圈
华商报讯(记者 康菲 通讯员 张亮)近日,华阴市城建部门工作人员在清洁路面卫生,平整路边绿化带时,意外发现地里有子弹。报警后,华阴警方共发现了51颗子弹。
原标题:城建人员平整绿化带 土里发现51颗子弹
华商报讯(记者 康菲 通讯员 张亮)近日,华阴市城建部门工作人员在清洁路面卫生,平整路边绿化带时,意外发现地里有子弹。报警后,华阴警方共发现了51颗子弹。4月4日上午10时许,华阴市城建部门的工作人员在老西潼路上,清扫路面卫生,平整建设路边的绿化带时,在土里发现了几颗子弹,于是立即报警。华阴市公安局华岳派出所接到报警后,民警立即赶到现场,对发现子弹的现场周围土地进行仔细搜查、挖掘,经清点,共发现子弹51颗。因子弹都已经生锈,无法辨别型号。目前已经将发现的子弹按规定移交给华阴市公安局治安大队。民警提醒,按照相关法律规定,个人严禁持有枪支弹药等违禁物品。市民一旦发现子弹等违禁物品,请立即交给警方处理。
用微信扫描二维码分享至好友和朋友圈
凤凰资讯官方微信
播放数:115312
播放数:129379
播放数:5808920
播放数:5808920

我要回帖

更多关于 绿色子弹 的文章

 

随机推荐