zoukankan      html  css  js  c++  java
  • HTML5游戏开发,剪刀石头布小游戏案例

    剪刀石头布,非常可爱的小游戏,相信大家都非常的怀念这款小游戏,小时候也玩过很多次,陪伴着我的童年的成长,现在是不是还会玩一下,剪刀石头布游戏的规则我们都知道是:剪刀剪布,石头砸剪刀,布包石头。
    跟朋友、同学、兄弟姐妹有意见分歧?通过“剪刀石头布游戏”来一局吧,谁赢了听谁的。
    躲猫猫的时候,通过“剪刀石头布游戏”来一局吧,谁输了谁找。
    洗衣服、做饭、扫地等等什么的,通过“剪刀石头布游戏”来一局吧,谁输了谁做。
    这是我的处女座游戏,学校的时候跟着培训老师一步一步写出来的,今天在这里将这款游戏分享给伙伴们,可以拿去练习学习——Tyna

    QQ截图20150506111632QQ截图20150506111701QQ截图20150506111734

     全部代码和引用的文件图片等:


    bujiandaoshitoutitle

    <!DOCTYPE HTML>
    <html>
    <head>
    <meta charset="UTF-8" />
    <title>HTML5游戏开发</title>
    <script type="text/javascript" src="lufylegend-1.7.6.min.js"></script>
    <script type="text/javascript">
    var backLayer,resultLayer,controlLayer,loadingLayer,checkLayer,foeBitmap,selfBitmap;
    var imgData = [
    {name:"bu",path:"images/bu.png"},
    {name:"jiandao",path:"images/jiandao.png"},
    {name:"shitou",path:"images/shitou.png"},
    {name:"title",path:"images/title.png"}
    ];
    //游戏输赢
    var shu_ying= [
    [0,1,-1],
    [-1,0,1],
    [1,-1,0]
    ];

    var dataList=[];//这个数组用来存储已经加载的数据资源
    var showList=[];//这个数组原来存储剪刀、石头、布的对象实例
    var textField_All,textField_vin,textField_fail,textField_draw,all = 0,win = 0,draw = 0,fail = 0;
    init(200,"myGame",800,500,main);//初始化游戏引擎
    //回调函数,在游戏引擎初始化完成后就会被调用
    function main(){
    backLayer=new LSprite();
    backLayer.graphics.drawRect(10,"green",[0,0,800,500],true,"black");
    addChild(backLayer);
    initResultLayer();//初始化resultlayer显示界面
    //创建加载文件的进度条,并添加到第一层
    loadingLayer = new LoadingSample3();
    backLayer.addChild(loadingLayer);
    /**
    *读取图片资源文件
    */
    LLoadManage.load(
    imgData,
    function(press){
    loadingLayer.setProgress(press);
    },
    function(result){
    dataList=result;
    backLayer.removeChild(loadingLayer);
    loadingLayer=null;//清空进度条
    initGame();
    //初始化controlLayer显示界面
    initControlLayer();
    }
    );
    }
    /**
    *游戏资源初始化
    */
    function initGame(){
    showList[0] = new LBitmapData(dataList["shitou"]);
    showList[1] = new LBitmapData(dataList["jiandao"]);
    showList[2] = new LBitmapData(dataList["bu"]);
    var titleBitmap = new LBitmap(new LBitmapData(dataList["title"]));
    titleBitmap.x=(LGlobal.width-titleBitmap.getWidth())/2;
    titleBitmap.y=20;
    backLayer.addChild(titleBitmap);
    //人物电脑对比层
    initCheckLayer();
    }
    /**
    * 人物电脑对比层显示功能模块
    */
    function initCheckLayer(){
    var width_3=400,height_3=200;
    var x_3=(LGlobal.width-width_3)/2,y_3=(LGlobal.height-height_3)/2-20;
    checkLayer=new LSprite();
    checkLayer.x=x_3;
    checkLayer.y=y_3;
    backLayer.addChild(checkLayer);
    //玩家
    selfBitmap=new LBitmap(showList[1]);
    selfBitmap.y =190-selfBitmap.getHeight();
    selfBitmap.x=40;
    checkLayer.addChild(selfBitmap);
    var wanjia=initResultLayer_1("玩家","#fff",30,68,0);
    checkLayer.addChild(wanjia);
    //电脑
    foeBitmap=new LBitmap(showList[0]);
    foeBitmap.y =190-foeBitmap.getHeight();
    foeBitmap.x=270;
    checkLayer.addChild(foeBitmap);
    var diannao=initResultLayer_1("电脑","#fff",30,302,0);
    checkLayer.addChild(diannao);

    }
    /**
    * resultLayer(结果)显示的功能模块
    */
    function initResultLayer(){
    var width_1=150,height_1=160;
    var y_1= (LGlobal.height-height_1)/2;
    resultLayer=new LSprite();
    resultLayer.x=15;
    resultLayer.y=y_1;
    resultLayer.graphics.drawRect(5,"#AAFF00",[0,0,width_1,height_1],true,"#fff");
    backLayer.addChild(resultLayer);
    //总次数
    textField_All=new initResultLayer_1("总次数:0","black",12,20,15);
    resultLayer.addChild(textField_All);
    //胜利次数
    textField_vin=new initResultLayer_1("胜利次数:0","black",12,20,50);
    resultLayer.addChild(textField_vin);
    //失败次数
    textField_fail=new initResultLayer_1("失败次数:0","black",12,20,85);
    resultLayer.addChild(textField_fail);
    //平局
    textField_draw=new initResultLayer_1("平局:0","black",12,20,120);
    resultLayer.addChild(textField_draw);
    };
    /**
    *initCheckLayer,resultLayer文字缩减代码
    */
    function initResultLayer_1(d,w,z,h,j){
    var textField=new LTextField();
    textField.text=d;
    textField.color=w;
    textField.font="微软雅黑";
    textField.weight="bold";
    textField.size=z;
    textField.x=h;
    textField.y=j;
    return textField;
    }
    /**
    * controlLayer(控制)显示的功能模板
    */
    function initControlLayer(){
    var width_2=480,height_2=130;
    var x_2=(LGlobal.width-width_2)/2,y_2=LGlobal.height-(height_2+20);
    controlLayer=new LSprite();
    controlLayer.x=x_2;
    controlLayer.y=y_2;
    controlLayer.graphics.drawRect(5,"AAFF00",[0,0,width_2,height_2],true,"#fff");
    backLayer.addChild(controlLayer);
    //出拳标题
    var TextField=new initResultLayer_1("请出拳:","#000",15,20,5);
    controlLayer.addChild(TextField);
    //石头
    var shitouButton=initControlLayer_1(70,0);
    controlLayer.addChild(shitouButton);
    //剪刀
    var jiandaoButton=initControlLayer_1(190,1);
    controlLayer.addChild(jiandaoButton);
    //布
    var buButton=initControlLayer_1(320,2);
    controlLayer.addChild(buButton);
    };
    //controlLayer代码快优化
    function initControlLayer_1(z,h){
    var upBitmap = new LBitmap(showList[h]);
    upBitmap.scaleX=0.6;
    upBitmap.scaleY=0.6;
    var overBitMap = new LBitmap(showList[h]);
    overBitMap.scaleX=0.6;
    overBitMap.scaleY=0.6;
    overBitMap.x+=2;
    overBitMap.y+=2;
    var button = new LButton(upBitmap,overBitMap);
    button.x=z;
    button.y =35;
    button.addEventListener(LMouseEvent.MOUSE_DOWN,clickButton);
    button.index =h;
    return button;
    }
    function clickButton(event){
    var name =event.clickTarget.index;//获取到被点击的button按钮的name属性的值
    selfBitmap.bitmapData=showList[name];
    //生成一个随机数0,1,2
    var foeIndex = Math.floor(Math.random()*3);
    foeBitmap.bitmapData=showList[foeIndex];
    var dzh= shu_ying[name][foeIndex];
    if(dzh==0){
    draw+=1;
    textField_draw.text="平局:"+draw;
    }else if(dzh == 1){
    win+=1;
    textField_vin.text="胜利次数:"+win;
    }else{
    fail+=1;
    textField_fail.text="失败次数:"+fail;
    }
    all+=1;
    textField_All.text="总次数:"+all;
    }
    </script>
    </head>
    <body>
    <div id="myGame">加载中.......</div>
    </body>
    </html>

    有兴趣的小伙伴们可以在这基础上添加剪刀石头布游戏的等级也可以自己在这基础上更改图片、颜色、排版之类的__Tyna

    学习来源:http://www.j--d.com/html/453.html

  • 相关阅读:
    【实用代码】圆弧边框、阴影
    2015.7.30 第十五课 sql(新建数据库、创建表、注释、查询语句、新增、更新、删除、联合查询)
    【转】WEB前端开发工程师成长之路(计划)
    2015.7.29 第十三、十四课 jq实例(磁力图片、轮播图、腾讯课堂菜单、可弹出红色菜单、砸蛋游戏)
    【周末作业】2015.7.15 第二周 css作业及答案
    【课堂实例】轮播图
    2015.7.23 第十二课 课程重点(jq元素:获取、添加、删除、设置、绑定、显示隐藏、回调、动画)
    2015.7.22 第十一课 课程重点(jq:元素获取、添加、删除、过滤、判断、遍历、取值,样式设置、改变对象、切换、判断)
    【其它】喜欢的歌汇总
    2015.7.21 第十课 课程重点(jq选择器:id、类、标签、奇偶、eq、nth-child、子元素、属性、包含、位置、过滤)
  • 原文地址:https://www.cnblogs.com/j--d/p/htm5-game.html
Copyright © 2011-2022 走看看