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 处理事件的侦听器函数。