HTML5游戏开发之 -- lufylegend. js猜拳游戏(竖屏)
2017-08-17 14:08
447 查看
不懂的部分可以查询API
传送门在此: http://lufylegend.com/api/zh_CN/out/classes/FPS.html
效果预览:
代码部分:
传送门在此: http://lufylegend.com/api/zh_CN/out/classes/FPS.html
效果预览:
代码部分:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width,height=device-height,inital-scale=1.0,maximum-scale=1.0,user-scalable=no;"> <title></title> <style type="text/css"> *{ margin: 0; padding: 0; } </style> </head> <body> <div id="mylegend"></div> <script type="text/javascript" src="js/lufylegend-1.7.6.min.js"></script> <script type="text/javascript"> //窗口发生变化重新获取数据 window.onresize = function(){ history.go(0);//刷新页面进入进度条界面 gamesSize(); } function gamesSize() { //获取可视区域宽高 var w = document.documentElement.clientWidth || document.body.clientWidth; var h = document.documentElement.clientHeight || document.body.clientHeight; //初始化(游戏速度设定,canvas的容器ID,游戏界面的宽,游戏界面的高,初始化后执行的函数) init(50,"mylegend",w,h,main); } gamesSize(); var loadingLayer,//进度条 backLayer,//背景层 resultLayer,//结果显示层 clickLayer,//操作层 selfBitmap,//玩家出拳图片 enemyBitmap,//电脑出拳图片 selfTextAll,//猜拳次数 selfTextWin,//胜利次数 selfTextLoss,//失败次数 selfTextDraw,//平局次数 win = 0, loss = 0, draw = 0; var imglist = {}; //设置需要加载的图片数据数组 var imgData = new Array( {name:"title",path:"./img/title2.png"}, {name:"shitou",path:"./img/shitou.png"}, {name:"jiandao",path:"./img/jiandao.png"}, {name:"bu",path:"./img/bu.png"} ); //胜负结果判断数组 var checkList = [ [0,1,-1], [-1,0,1], [1,-1,0] ]; var showList = new Array(); function main() { //建立一个容器 backLayer = new LSprite(); addChild(backLayer); //建立一个进度条(效果是第三种) loadingLayer = new LoadingSample3(); //将进度条添加到backLayer容器中 backLayer.addChild(loadingLay 4000 er); //LLoadManage类是可以用来同时读取图片,文本以及js多种类型的文件 LLoadManage.load( //指定需要加载的数组 imgData, //加载过程中调用的函数,计算已加载的文件个数与总数比例,以设置进度条进度 function(progress) { loadingLayer.setProgress(progress) }, //数组中的所有数据加载完毕后调用的函数 function(result) { //将进度条返回的数组赋值给imglist数组 imglist = result; //移除进度条 backLayer.removeChild(loadingLayer); //清除loadingLayer容器 loadingLayer = null; //数据加载完毕后显示游戏界面 gameInit(); } ); } function gameInit(){ //将所有图像路径添加至showList数组中 showList.push(new LBitmapData(imglist["shitou"])); showList.push(new LBitmapData(imglist["jiandao"])); showList.push(new LBitmapData(imglist["bu"])); //添加游戏界面背景 //Objct.graphics.drawRect(边框线宽度,边框线颜色,[X轴坐标,Y轴坐标,宽,高],背景色是否显示,设置背景色) backLayer.graphics.drawRect(10,'#008800',[0,0,LGlobal.width,LGlobal.height],true,'#000000'); //显示游戏标题图片 titleBitmap = new LBitmap(new LBitmapData(imglist['title'])); //X轴缩放大小 titleBitmap.scaleX = 0.5; //Y轴缩放大小 titleBitmap.scaleY = 0.5; //容器X轴坐标 titleBitmap.x = (LGlobal.width - 220)/2; //容器Y轴坐标 titleBitmap.y = 30; //将容器添加至背景图层backLayer容器内(相当于resultLayer成为backLayer的子元素,坐标以他为相对值进行移动) backLayer.addChild(titleBitmap); //玩家方出拳图片 selfBitmap = new LBitmap(showList[0]); selfBitmap.x = (LGlobal.width - selfBitmap.width)/2 - 80; selfBitmap.y = (LGlobal.height - selfBitmap.height)/2 + 80; backLayer.addChild(selfBitmap); //电脑方出拳图片 enemyBitmap = new LBitmap(showList[0]); enemyBitmap.x = (LGlobal.width - enemyBitmap.width)/2 + 70; enemyBitmap.y = (LGlobal.height - enemyBitmap.height)/2 + 80; backLayer.addChild(enemyBitmap); //玩家电脑名称设定 var nameText; nameText = new LTextField(); nameText.text = "玩家"; nameText.weight = "bolder"; nameText.color = "#ffffff"; nameText.size = 20; nameText.x = selfBitmap.x + (selfBitmap.width - nameText.getWidth())/2; nameText.y = (LGlobal.height - enemyBitmap.height)/2 + 40; backLayer.addChild(nameText); nameText = new LTextField(); nameText.text = "电脑"; nameText.weight = "bolder"; nameText.color = "#ffffff"; nameText.size = 20; nameText.x = enemyBitmap.x + (enemyBitmap.width - nameText.getWidth())/2; nameText.y = (LGlobal.height - enemyBitmap.height)/2 + 40; backLayer.addChild(nameText); //结果显示层初始化 initResultLayer(); //操作层初始化 initClickLayer(); } function initResultLayer(){ resultLayer = new LSprite(); resultLayer.graphics.drawRect(4,'#ff8800',[0,0,150,110],true,'#ffffff'); resultLayer.x = 10; resultLayer.y = 100; backLayer.addChild(resultLayer); selfTextAll = new LTextField(); selfTextAll.text = "猜拳次数 : 0"; selfTextAll.weight = "bolder"; selfTextAll.x = 10; selfTextAll.y = 20; resultLayer.addChild(selfTextAll); selfTextWin = new LTextField(); selfTextWin.text = "胜利次数 : 0"; selfTextWin.weight = "bolder"; selfTextWin.x = 10; selfTextWin.y = 40; resultLayer.addChild(selfTextWin); selfTextLoss = new LTextField(); selfTextLoss.text = "失败次数 : 0"; selfTextLoss.weight = "bolder"; selfTextLoss.x = 10; selfTextLoss.y = 60; resultLayer.addChild(selfTextLoss); selfTextDraw = new LTextField(); selfTextDraw.text = "平局次数 : 0"; selfTextDraw.weight = "bolder"; selfTextDraw.x = 10; selfTextDraw.y = 80; resultLayer.addChild(selfTextDraw); } function initClickLayer(){ clickLayer = new LSprite(); clickLayer.graphics.drawRect(4,'#ff8800',[0,0,LGlobal.width - 14,90],true,'#ffffff'); clickLayer.x = 7; clickLayer.y = (LGlobal.height - 90) - 7; var msgText = new LTextField(); msgText.text = "请出拳:"; msgText.weight = "bolder"; msgText.x = 10; msgText.y = 10; clickLayer.addChild(msgText); var btnShitou = getButton("shitou"); btnShitou.x = (LGlobal.width - btnShitou.width)/2 - 80; btnShitou.y = 35; clickLayer.addChild(btnShitou); btnShitou.addEventListener(LMouseEvent.MOUSE_UP,onclick); var btnJiandao = getButton("jiandao"); btnJiandao.x = (LGlobal.width - btnJiandao.width)/2 + 10; btnJiandao.y = 35; clickLayer.addChild(btnJiandao); btnJiandao.addEventListener(LMouseEvent.MOUSE_UP,onclick); var btnBu = getButton("bu"); btnBu.x = (LGlobal.width - btnBu.width)/2 + 105; btnBu.y = 35; clickLayer.addChild(btnBu); btnBu.addEventListener(LMouseEvent.MOUSE_UP,onclick); backLayer.addChild(clickLayer); } function onclick(event,display){ var selfValue,enemyValue; //获取点击按钮的名称,并设置每个按钮的值 if(display.name == "shitou"){ selfValue = 0; }else if(display.name == "jiandao"){ selfValue = 1; }else if(display.name == "bu"){ selfValue = 2; } //设置电脑的值(0-2的随机数) enemyValue = Math.floor(Math.random()*3); selfBitmap.bitmapData = showList[selfValue]; enemyBitmap.bitmapData = showList[enemyValue]; var result = checkList[selfValue][enemyValue]; //判断胜负 if(result == -1){ loss += 1; }else if(result == 1){ win += 1; }else{ draw += 1; } //统计胜负 selfTextWin.text = "胜利次数 : " + win; selfTextLoss.text = "失败次数 : " + loss; selfTextDraw.text = "平局次数 : " + draw; selfTextAll.text = "猜拳次数 : " + (win + loss + draw); } function getButton(value){ var btnUp = new LBitmap(new LBitmapData(imglist[value])); btnUp.scaleX = 0.5; btnUp.scaleY = 0.5; var btnOver = new LBitmap(new LBitmapData(imglist[value])); btnOver.scaleX = 0.5; btnOver.scaleY = 0.5; btnOver.x = 2; btnOver.y = 2; var btn = new LButton(btnUp,btnOver); btn.name = value; return btn; } </script> </body> </html>
相关文章推荐
- Html5+Lufylegend.js游戏开发(一)引擎介绍及原理
- HTML5 Canvas游戏开发(三)lufylegend开源库件(上)
- HTML5 Canvas游戏开发(四)lufylegend开源库件(下)
- JS开发HTML5游戏《神奇的六边形》(三)
- cocos-js开发html5游戏视频教程
- HTML5游戏开发引擎Pixi.js新手入门讲解
- JS开发HTML5游戏《神奇的六边形》(三)
- JS开发HTML5游戏《神奇的六边形》(八)
- JS开发HTML5游戏《神奇的六边形》(四)
- 用html5和js制作一个游戏启动界面(html5游戏开发一)、
- HTML5游戏开发 Chapter01 基础知识与Processing.js
- JS开发HTML5游戏《神奇的六边形》(七)
- JS开发HTML5游戏《神奇的六边形》(二)
- html5 手机开发 区分横屏和竖屏, 在CSS方法与js方法
- JS开发HTML5游戏《神奇的六边形》(六)
- 利用开源HTML5引擎lufylegend.js结合javascript实现的五子棋人机对弈
- lufylegend.js开源游戏引擎
- JS开发HTML5游戏《神奇的六边形》(五)
- HTML5游戏开发引擎Pixi.js新手入门讲解
- HTML5游戏开发引擎Pixi.js新手入门讲解