网页版 html5 斗地主,HTML5版单机斗地主

本文中所使用的JControls、JFunction和ResourceData在前面的《学习HTML5开发RPG游戏》中都有提到,这里不再重述,详细情况,大家可以查看本文最后的源码。

1、初始化界面及游戏

var DJDDZ={};

DJDDZ.Init=function(canvasID){

JFunction.PreLoadData(GMain.URL).done(function () {

JMain.JForm=new JControls.Form(GMain.Size,canvasID).setBGImage(ResourceData.Images.bg1);

JMain.JForm.clearControls();

GMain.BtnPanel=new JControls.Object({x:100,y:280},{width:600,height:50});//用于显示游戏控制按钮

GMain.PokerPanel0=new GControls.PokerPanel({x:100,y:5},{width:600,height:120},0,0);//用于显示底牌,显示对象存储在GMain.Poker[0]

GMain.PokerPanel1=new GControls.PokerPanel({x:200,y:355},{width:400,height:120},1,20);//用于显示自己的牌,显示对象存储在GMain.Poker[1]

GMain.PokerPanel2=new GControls.PokerPanel({x:695,y:60},{width:100,height:440},2,25);//用于显示右边电脑的牌,显示对象存储在GMain.Poker[2]

GMain.PokerPanel3=new GControls.PokerPanel({x:5,y:60},{width:100,height:440},3,25);//用于显示左边电脑的牌,显示对象存储在GMain.Poker[3]

GMain.PokerPanel4=new GControls.PokerPanel({x:200,y:150},{width:400,height:120},4,20);//用于显示出的最后一手牌,显示对象存储在GMain.Poker[4]

var BeginButton=new JControls.Button({x:235,y:0},{width:130,height:50}).setText("开始").setBGImage(ResourceData.Images.btn);

BeginButton.onClick=function(){

GMain.BtnPanel.visible=false;

DJDDZ.Dealing();

}

GMain.BtnPanel.addControlInLast([BeginButton]);

JMain.JForm.addControlInLast([GMain.PokerPanel0,GMain.PokerPanel1

,GMain.PokerPanel2,GMain.PokerPanel3,GMain.PokerPanel4,GMain.BtnPanel]);

DJDDZ.InitGame();

JMain.JForm.show();

});

}

DJDDZ.InitGame=function(){

GMain.Poker=[];

for(var i=0;i<5;i++)GMain.Poker[i]=[];//初始化扑克对象存储空间

for(var j=0;j<54;j++)GMain.Poker[0][j]=new GControls.Poker(j+1);//生成扑克对象

GMain.PokerPanel0.hidePoker=true;//hidePoker为true,显示扑克背面

GMain.PokerPanel1.hidePoker=false;//hidePoker为false,显示扑克正面

GMain.PokerPanel2.hidePoker=true;

GMain.PokerPanel3.hidePoker=true;

GMain.PokerPanel4.hidePoker=false;

GMain.PokerPanel1.toSelectPoker=false;

GMain.PokerPanel0.density=1;//设置扑克牌显示密度

GMain.ToPlay=false;

GMain.LastHandPokerType=null;

GMain.DealingNum=0;

GMain.DealerNum=JFunction.Random(1,3);

GMain.BeginNum=GMain.DealerNum;//初始化发牌起始标识

}

2、点击开始按钮后开始发牌

DJDDZ.Dealing=function(){//发牌

if(GMain.DealingHandle)clearTimeout(GMain.DealingHandle);

if(GMain.DealingNum>=51) {//已发完牌

GMain.MaxScore=0;

GMain.GrabTime=0;

GMain.PokerPanel0.density=105;

DJDDZ.GrabTheLandlord();//抢地主

}else{

if(GMain.DealerNum>3) GMain.DealerNum=1;

var r=JFunction.Random(0,GMain.Poker[0].length-1);

GMain.Poker[GMain.DealerNum].splice(GMain.Poker[ GMain.DealerNum].length,0,GMain.Poker[0][r]);

GMain.Poker[0].splice(r,1);

GMain.DealingNum++;

GMain.DealerNum++;

GMain.DealingHandle=setTimeout(DJDDZ.Dealing, 40);//40毫秒发一张牌

JMain.JForm.show();

}

}

3、抢地主

DJDDZ.GrabTheLandlord=function(){//抢地主

if(GMain.GrabTime==3&&GMain.MaxScore==0){//没有人抢地主

DJDDZ.GameOver();

return;

}

if(GMain.MaxScore==3||(GMain.MaxScore>0&&GMain.GrabTime==3)){//地主已产生

GMain.DealerNum=GMain.LandlordNum;

GMain.LastHandNum=0;

GMain.PokerPanel0.hidePoker=false;

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值