一个撞砖块的小游戏及源码
作者 佚名技术
来源 服务器技术
浏览
发布时间 2012-07-11
height-mc._height/2; mc.vy *= -1; } } function Horizon_BorderCollisionDetect(mc) {//杆的碰边阻档 //Good code for every where use. if (mc.getBounds(_root).xMin<1) { mc._x = 1+mc._width/2; } if (mc.getBounds(_root).xMax>Scence_Border_right) { mc._x = Scence_Border_right-mc._width/2; } } function HitBrackDetectTwo(ball, rect) {//小球和矩形在碰撞检测 if (ball._x>rect._x-rect._width/2-ball.r && ball._x } } else if (ball._y } else if ((ball._x-(rect._x-rect._width/2))*(ball._x-(rect._x-rect._width/2))+(ball._y-(rect._y+rect._height/2))*(ball._y-(rect._y+rect._height/2)) } } else if (ball._x } else { if (ball._y } } else if (ball._y } else if ((ball._x-(rect._x+rect._width/2))*(ball._x-(rect._x+rect._width/2))+(ball._y-(rect._y+rect._height/2))*(ball._y-(rect._y+rect._height/2)) } } } else { return 0; } } function HitPoleDetectTwo(mcball, pole) {//小球和杆的碰撞检测 if (mcball._x>pole._x-pole._width/2-7 && mcball._xpole._y-pole._height/2-mcball.r-1 && mcball._yif (mcball._xreturn 1; } else if (mcball._xreturn 2; } else { return 3; } } else if (mcball._y>pole._y-pole._height/2-mcball.r+2.9) { return 0; } } function CombineHitBrackDetect() {//总的球与矩形的碰撞检测,及碰后处理 for (var i = 0; i<3; i++) { for (var j = 0; j<6; j++) { var temp = HitBrackDetectTwo(ball, eval("brack"+i+"_"+j)); switch (temp) { case 0 : break; case 1 : this["brack"+i+"_"+j].removeMovieClip(); ball.vx *= -1;//A spacek is required. ball.vy *= -1; Number_Brack--; break; case 2 : this["brack"+i+"_"+j].removeMovieClip(); ball.vx *= -1; Number_Brack--; break; case 3 : this["brack"+i+"_"+j].removeMovieClip(); ball.vy *= -1; Number_Brack--; break; case 4 : this["brack"+i+"_"+j].removeMovieClip(); ball.vx *= -1; Number_Brack--; break; } } } } function CombineHitPoleDetect() {//球与杆的碰后处理 var temp = HitPoleDetectTwo(ball, b); switch (temp) { case 0 : Failure = true; break; case 1 : if (ball.vx>0) { ball.vx *= -1; ball.vy *= -1; break; } else if (ball.vx<0) { ball.vy *= -1; break; } case 2 : ball.vy *= -1; break; case 3 : if (ball.vx<0) { ball.vx *= -1; ball.vy *= -1; break; } else if (ball.vx>0) { ball.vy *= -1; break; } } } function CombineHitTest() {//最终所有的碰撞检测函数 BorderCollisionDetect(ball); Horizon_BorderCollisionDetect(b); CombineHitBrackDetect(); CombineHitPoleDetect(); } function Win_OR_Failure() {//赢抑或失败的判定 if (Failure) { Failures(); } else if (Number_Brack == 0) { Win(); } } function Failures() {//失败后的处理函数 Playing = false; pl.attachMovie("pic_you_lose", "pics", 100); pl._visible = true; Again._visible = true; } function Win() {//赢后的处理函数 Playing = false; pl.attachMovie("pic_you_win", "pics", 100); pl._visible = true; Again._visible = true; } function Control(mc) {//键盘控制 if (Key.isDown(Key.LEFT)) { mc._x |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
上一篇: Timeline窗口Switch讲解下一篇: 简单的跳动文字效果的制作
关于一个撞砖块的小游戏及源码的所有评论