问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

h5 canvas 上下拖动怎么办

发布网友 发布时间:2022-04-29 14:11

我来回答

1个回答

热心网友 时间:2022-04-20 00:33

本文实例为大家分享了H5 canvas投篮小游戏实现代码,供大家参考,具体内容如下
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> </head> <body onload="init(19,'mylegend',820,500,main,LEvent.INIT)"> <div id="mylegend">loading......</div> <script src="js/Box2dWeb-2.1.a.3.js"></script> <script src="js/lufylegend-1.10.1.js"></script> <script type="text/javascript"> var backLayer,cLayer,enemy,gameOver=false,all=0,aim=0,bitmap,checkpoint=1; var point={x:100,y:250}; var imgList={}; var imgData=new Array( {name:'face',path:'../JQueryTest/images/L8.png'} ); function main(){ LLoadManage.load(imgData); LGlobal.box2d=new LBox2d(); backLayer=new LSprite(); addChild(backLayer); //建立一组墙壁 //backLayer.graphics.drawRect(1,"#cc3300",[0,0,800,10],true,"#cc3300"); backLayer.graphics.drawRect(1,"#cc3300",[790,0,10,400],true,"#cc3300"); backLayer.graphics.drawRect(1,"#cc3300",[0,0,10,400],true,"#cc3300"); backLayer.graphics.drawRect(1,"#cc3300",[0,390,800,10],true,"#cc3300"); backLayer.graphics.drawRect(1,"#cc3300",[450,187,50,3],true,"#cc3300");//1 backLayer.graphics.drawRect(1,"#cc3300",[500,170,3,20],true,"#cc3300");//2 backLayer.graphics.drawRect(1,"#cc3300",[447,187,3,210],true,"#cc3300");//3 backLayer.graphics.drawRect(1,"#cc3300",[538,87,3,103],true,"#cc3300");//4 框半径35 backLayer.graphics.drawRect(1,"#cc3300",[541,137,70,3],true,"#cc3300");//5 backLayer.graphics.drawRect(1,"#cc3300",[611,137,3,263],true,"#cc3300");//6 cLayer=new LSprite(); backLayer.addChild(cLayer); //通过顶点坐标数组,加入上下左右四面墙 var shapeArray=[ //[[0,0],[800,0],[800,10],[0,10]], [[790,0],[800,0],[800,400],[790,400]], [[0,0],[10,0],[10,400],[0,400]], [[0,390],[800,390],[800,400],[0,400]], [[450,187],[500,187],[500,190],[450,190]], [[500,170],[503,170],[503,190],[500,190]], [[447,187],[450,187],[450,397],[447,397]], [[538,87],[541,87],[541,190],[538,190]], [[541,137],[611,137],[611,140],[541,140]], [[611,137],[614,137],[614,400],[611,400]] ]; cLayer.addBodyVertices(shapeArray,0,0,0,0.5,0.4,0.5); //加入圆 用来添加点击事件来出现小球 circle=new LSprite(); backLayer.addChild(circle); circle.graphics.drawArc(1,"#336699",[point.x,point.y,40,0,2*Math.PI,true,"#336699"]); //添加游戏说明栏 shuoming=new LTextField(); shuoming.x=20; shuoming.y=10; shuoming.text='点击左侧圆圈进行投篮,鼠标和圆心的距离控制投篮力度'; backLayer.addChild(shuoming); //添加得分栏和命中率栏 defen=new LTextField(); defen.x=200; defen.y=100; defen.text='得分:0'; backLayer.addChild(defen); mingzhong=new LTextField(); mingzhong.x=280; mingzhong.y=100; mingzhong.text='命中率:0%'; backLayer.addChild(mingzhong); //关卡显示 guanqia=new LTextField(); guanqia.x=120; guanqia.y=100; guanqia.text='关卡:'+checkpoint; backLayer.addChild(guanqia); //加入鼠标事件 点击鼠标增加小球 backLayer.addEventListener(LMouseEvent.MOUSE_DOWN,createBox); //键盘事件 //LEvent.addEventListener(window,LKeyboardEvent.KEY_DOWN,down); } function createBox(e){ if((e.offsetX-point.x)*(e.offsetX-point.x)+(e.offsetY-point.y)*(e.offsetY-point.y)>40*40)return; var box01=new LSprite(); box01.name='mybox'; box01.x=e.selfX; box01.y=e.selfY; backLayer.addChild(box01); box01.graphics.drawArc(1,"orange",[16,16,16,0,360*Math.PI/180],true,"orange"); box01.addBodyCircle(16,0,0,1,1,0.5,0.6); var angle=Math.atan2(e.offsetY-point.y,e.offsetX-point.x); var force=(Math.sqrt((point.y-e.offsetY)*(point.y-e.offsetY)+(e.offsetX-point.x)*(e.offsetX-point.x))/20)*330; var vec=new LGlobal.box2d.b2Vec2(force*Math.cos(angle),force*Math.sin(angle)); box01.box2dBody.ApplyForce(vec,box01.box2dBody.GetWorldCenter()); function check(){ if(box01.x<610&&box01.x>450&&box01.y<400&&box01.y>180){ checkpoint++; aim++; all++; defen.text='得分:'+aim; mingzhong.text='命中率:'+Math.floor(aim/all*100)+'%'; if(checkpoint==2){//第二关 rail=new LSprite(); backLayer.addChild(rail); rail.graphics.drawRect(1,"#cc3300",[220,135,10,255],true,"#cc3300"); raill=new LSprite(); backLayer.addChild(raill); raill.addBodyVertices([[[220,135],[230,135],[230,390],[220,390]]],0,0,0,0.5,0.4,0.5); }else if(checkpoint==3){//第三关 backLayer.removeChild(rail); backLayer.removeChild(raill); rail=new LSprite(); backLayer.addChild(rail); rail.graphics.drawRect(1,"#cc3300",[220,35,10,355],true,"#cc3300"); raill=new LSprite(); backLayer.addChild(raill); raill.addBodyVertices([[[220,35],[230,35],[230,390],[220,390]]],0,0,0,0.5,0.4,0.5); }else if(checkpoint==4){//第四关 backLayer.removeChild(rail); backLayer.removeChild(raill); rail=new LSprite(); backLayer.addChild(rail); rail.graphics.drawRect(1,"#cc3300",[10,180,200,10],true,"#cc3300"); raill=new LSprite(); backLayer.addChild(raill); raill.addBodyVertices([[[10,180],[220,180],[220,190],[10,190]]],0,0,0,0.5,0.4,0.5); }else if(checkpoint>4){//通关 checkpoint=4; alert('终于通关了!'); } guanqia.text='关卡:'+checkpoint; }else{ all++; mingzhong.text='命中率:'+Math.floor(aim/all*100)+'%'; } } setTimeout(check,2600); } //键盘按下 移动*口 function down(e){ if(e.keyCode=='37'){//left point.x-=10; }else if(e.keyCode=='39'){//right point.x+=10; }else if(e.keyCode=='38'){//up point.y-=10; }else if(e.keyCode=='40'){//down point.y+=10; } backLayer.removeChild(circle); circle=new LSprite(); backLayer.addChild(circle); circle.graphics.drawArc(1,"#336699",[point.x,point.y,40,0,2*Math.PI,true,"#336699"]); } </script> </body> </html>
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
如何查被录取到的专业 怎样查被录取的专业 录取后怎样查询录取的专业 录取专业怎么查 已被录取怎么查专业 ghs网络语什么意思_ghs网络语意思出处含义介绍 纸箱企业管理软件 ghs什么意思网络(ghs什么意思网络用语) 《喜羊羊与灰太狼》大结局 0与任何数相加都得原数吗? 怎么使用html5canvan画布上用鼠标拖动生成矩形,再次鼠标放在矩形上拖动... html5开发,怎样做到在IOS下,页面不可以这样拖动? HTML5的拖拽怎么实现? 信用卡多久不还款还有欠款超过多少构成量刑 HTML5如何实现元素拖拽 信用卡欠多少不还可以起诉? 哪种油烟机易操作? 挥手智控油烟机到底好在哪里? 我看一些评论里说买TC还不如买机动车,求解答? 如何关闭康佳油烟机的挥手感应功能? 车子码表上的tc是什么意思 油烟机感应开关故障会是哪些元件引起的 TC是什么意思啊? 挥手即开的油烟机缺点 哈雷三轮摩托车TC是什么意思 哈雷三轮摩托仪表TC和ABS总闪是怎么回事_百度问一问 哈雷三轮摩托车TC是什么意思哈雷三轮摩托仪表TC和ABS总闪是怎么回事 - 信息提示 得到美国公民面谈机会前绿卡和护照丢了,怎么办? 在中国境内丢失中国护照,美国绿卡,如何回美? 自动化立体仓库托盘生产厂家,能否定制托盘? 微信通话音量怎么调小 HTML5 实现的拖拽排序,效果最好的是什么样子 母亲一生中的八个谎言 微信聊天满屏九宫格怎么变小? 娘去世用什么祝词? 娘这一辈子主要内容,读后感最好。读者里的 母爱 世间最伟大的力量孩子是上苍给母亲最好的回报,从此母亲便把养育当作了天职。即使一生辛劳也无悔,即 董纤娘的生平是怎样的? 李凤娘的生平经历 林默娘生平事迹和有关节日 华为P40手机横着拍照为什么会变成很窄? 乾隆一生有41个女人,只有谁的牌子被翻得掉了漆,得重新做一个? 娘炮是一生出来就娘的吗 还是后期以为受了什么打击才娘的 风四娘扮演者是谁 “儿大不由娘”的下一句是什么? “爹娘做主,一生受苦”,这句话是什么意思? 宋光宗皇后李凤娘那么坏,宋孝宗为什么不废了自己的儿媳? 孟郊的一生是怎样的?他为何一直都在跟母亲相依为命? 心狠手辣的李凤娘为何能独霸后宫呢? 风四娘的人物评论