lufylegend学习2(剪刀石头布3)
lufylegend学习二(剪刀石头布3)
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>example</title> <meta name="viewport" content="width=device-width,initial-scale=1.0, minimum-scale=1.0,maximum-scale=1.0,user-scalable=no"> <script type="text/javascript" src="../lufylegend/lufylegend-1.9.9.min.js"> </script> <script type="text/javascript"> //当前浏览器是否是移动浏览器 if(LGlobal.canTouch){ //指定整个应用程序在指定区域中可见,但不尝试保持原始高宽比 LGlobal.stageScale = LStageScaleMode.EXACT_FIT; //全屏显示 LGlobal.screen(LGlobal.FULL_SCREEN); } </script> </head> <body> <div id="zhouwangpu">loading...</div> <script> //引擎初始化 LInit(50, "zhouwangpu", 800, 400, main); var backLayer,resultLayer,clickLayer; var imglist = {}; var imgData = new Array( {name:'title',path:"title.png"}, {name:'shitou',path:"shitou.png"}, {name:'jiandao',path:"jiandao.png"}, {name:'bu',path:"bu.png"}); var showList = new Array(); //玩家出的图片,电脑出的图片 var selfBitmap,enemyBitmap; var selfTextAll,selfTextWin,selfTextLoss,selfTextDraw; var win = lose = draw = 0; function main(){ backLayer = new LSprite(); //将一个要显示的对象实例添加到Stage addChild(backLayer); var loadingLayer = new LoadingSample3(); //进度条显示在backLayer上 backLayer.addChild(loadingLayer); //加载资源 LLoadManage.load( imgData, function(progress){ console.log(progress); //更新进度条 loadingLayer.setProgress(progress); }, function(result){ imglist = result; //加载完后移除进度条 backLayer.removeChild(loadingLayer); loadingLayer = null; gameInit(); } ); } function gameInit(){ //放置图像对象 showList.push(new LBitmapData(imglist["shitou"])); showList.push(new LBitmapData(imglist["jiandao"])); showList.push(new LBitmapData(imglist["bu"])); //drawRect(thickness, color, param, isFill, fillColor ) backLayer.graphics.drawRect(10, '#008800', [0,0,LGlobal.width,LGlobal.height], true, '#000000'); var titleBitmap = new LBitmap(new LBitmapData(imglist["title"])); //水平方向居中 titleBitmap.x=(LGlobal.width-titleBitmap.width)/2; titleBitmap.y=10; //把title图片显示在backLayer上 backLayer.addChild(titleBitmap); //默认玩家出的石头 selfBitmap = new LBitmap(showList[0]); selfBitmap.x=400-selfBitmap.width-50; selfBitmap.y=130; backLayer.addChild(selfBitmap); //默认电脑出的石头 enemyBitmap = new LBitmap(showList[0]); enemyBitmap.x=400 + 50; enemyBitmap.y=130; backLayer.addChild(enemyBitmap); //文本对象 var nameText = new LTextField(); nameText.text="玩家"; nameText.weight="bolder"; nameText.color="#ffffff"; nameText.size=24; nameText.x=selfBitmap.x+(selfBitmap.width-nameText.getWidth())/2; nameText.y=95; //显示文本 backLayer.addChild(nameText); var nameText2 = new LTextField(); nameText2.text="电脑"; nameText2.weight="bolder"; nameText2.color="#ffffff"; nameText2.size=24; nameText2.x=enemyBitmap.x+ (enemyBitmap.width-nameText2.getWidth())/2; nameText2.y=95; backLayer.addChild(nameText2); 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 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; } 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; } enemyValue = Math.floor(Math.random() * 3); selfBitmap.bitmapData = showList[selfValue]; enemyBitmap.bitmapData = showList[enemyValue]; //0表示玩家和电脑出的相同 平,1玩家赢,-1玩家输 var checkList = [ [0,1,-1], [-1,0,1], [1,-1,0] ]; var result = checkList[selfValue][enemyValue]; if(result == -1){ lose += 1; }else if(result == 1){ win += 1; }else{ draw += 1; } selfTextWin.text="胜利次数:" + win; selfTextLoss.text="失败次数:" + lose; selfTextDraw.text="平局次数:" + draw; selfTextAll.text="猜拳次数:" + (win + lose + draw); } function initClickLayer(){ //点击层 clickLayer = new LSprite(); clickLayer.graphics.drawRect(4, '#ff8800', [0,0,300,110], true, '#ffffff'); var msgText = new LTextField(); msgText.text="请出拳"; msgText.weight="bolder"; msgText.x=10; msgText.y=10; clickLayer.addChild(msgText); var btnShitou = getButton("shitou"); btnShitou.x=30; btnShitou.y=35; clickLayer.addChild(btnShitou); //添加点击事件 btnShitou.addEventListener(LMouseEvent.MOUSE_UP,onclick); var btnJiandao = getButton("jiandao"); btnJiandao.x=115; btnJiandao.y=35; clickLayer.addChild(btnJiandao); //添加点击事件 btnJiandao.addEventListener(LMouseEvent.MOUSE_UP,onclick); var btnBu = getButton("bu"); btnBu.x=200; btnBu.y=35; clickLayer.addChild(btnBu); btnBu.addEventListener(LMouseEvent.MOUSE_UP,onclick); clickLayer.x= 250; clickLayer.y=275; backLayer.addChild(clickLayer); } </script> </body> </html>
以上是石头剪刀布的全部代码。
LTextField 类用于输入文本
LButton 类用于按钮输出
addEventListener(type,listener
)type:事件的类型。listener
处理事件的侦听器函数。