📄 game.java
字号:
break;
case SignOpen:
//if(Def.bDgg)System.out.println("发送开牌"+actionType);
actionType=6;
_Commu.formatSendPack((short)100,(short)485);
//_Commu.formatSendPack(GameDef.NET_MSG_RESOPEN);
break;
}
}
}
break;
case GameDef.ResultStatus:
if(Hall.IsKeyPressed(Hall.GK_RIGHT))
if(OverSelect==0)
{
OverSelect=1;
}
if(Hall.IsKeyPressed(Hall.GK_LEFT))
if(OverSelect==1)
{
OverSelect=0;
}
if(Hall.IsKeyPressed(Hall.GK_FIRE))
{
if(OverSelect==0)
{
resetGame();
if(!GamePlayer[0].playerIsReady())
{
GameStatus=GameDef.ReadyStatus;
_Commu.formatSendPack((short)101,(short)2);
}
else
{
GameStatus=GameDef.ReadyStatus;
BdrawReady[0]=true;
}
}
else
{
BToHall=true;
}
}
break;
}
}
/**********游戏逻辑更新******************/
public int updateGame()
{
DoInput();
if(BToHall)
{
BToHall=false;
//if(Def.bDgg) System.out.println("返回大厅");
return -1;
}
switch(GameStatus)
{
case GameDef.LoadStatus:
LoadImg(LoadStep);
break;
case GameDef.ReadyStatus:
if(GotoPlay>=0)
{
GotoPlay-=1;
if(GotoPlay==0)
{
//if(Def.bDgg)System.out.println("进入游戏");
GameStatus=GameDef.PlayStatus;
}
}
break;
case GameDef.PlayStatus:
if(GotoResult>=0)
{
GotoResult-=1;
if(GotoResult<0)
{
GameStatus=GameDef.ResultStatus;
BInitOver=true;
}
}
if(MovePaiN>0)
{
//UpdateMovePai();
}
break;
case GameDef.ResultStatus:
break;
case GameDef.RelinkStatus:
break;
case GameDef.LookasideStatus:
break;
}
paint(g);
return 2;
}
/***********初始化记数器***********/
public void InitCountTime()
{
BaseCountTime=System.currentTimeMillis();
CountTime=20;
}
/*******逻辑位置转换 localseat本地座位; desseat 要转化的位置 ************/
public int GetGameSeat(int desseat)
{
int gs=(desseat-s_player_chair_idx+5)%5;
//if(Def.bDgg)System.out.println("转换位置localseat"+s_player_chair_idx+"des"+desseat+"result"+gs);
return gs;
}
/*******清空牌*********/
void CleanPai()
{
for(int i=0;i<UserPai.length;i++)
{
for(int j=0;j<UserPai[0].length;j++)
for(int k=0;k<UserPai[0][0].length;k++)
{
UserPai[i][j][k]=-1;
}
}
}
/*****添加牌***********/
void AddPai(int position, int huase ,int dian)
{
for(int i=0;i<UserPai[position].length;i++)
if(UserPai[position][i][0]==-1)
{
UserPai[position][i][0]=huase;
UserPai[position][i][1]=dian;
BdrawPai[position]=true;
break;
}
}
/**************游戏逻辑更新Over*******************************/
/**********************************************/
/************************************************/
public void paint(Graphics g)
{
switch(GameStatus)
{
case GameDef.LoadStatus:
DrawProcess(g,LoadStep);
break;
case GameDef.ReadyStatus:
if(BinitUi)
{
//System.out.println("back0");
DrawBack(g);
g.setColor(0xffffff);
g.drawString("按“7”键退回大厅",390,400,TL);
BinitUi=false;
}
//if(MovePaiN>0)
{
//DrawMovePai(g,MoveUser,MoveTile[MoveUser]);
}
if(BackTime>=0)
{
//if(Def.bDgg)System.out.println("准备时间");
DrawBackTime(g);
}
for(int i=0;i<MaxUser;i++)
{
if(drawUser[i]>0)
{
//if(Def.bDgg)System.out.println("BdrawUser~~~~~~~~~"+i);
DrawHead(g,GameDef.UserHead[i][0],GameDef.UserHead[i][1],GamePlayer[i].Portrait+1);
DrawName(g,i,GameDef.UserName[i][0],
GameDef.UserName[i][1]);
drawUser[i]-=1;
}
if(BdrawReady[i])
{
//if(Def.bDgg)System.out.println("Bdrawready"+i);
DrawReady(g,i);
BdrawReady[i]=false;
}
if(BflushUser[i])
{
//if(Def.bDgg)System.out.println("BflushUser"+i);
FlushUser(g,i);
BflushUser[i]=false;
}
}
if(GotoPlay>0&&GotoPlay<2)
{
g.setClip(390,400,170,20);
System.out.println("back 1");
DrawBack(g);
}
//drawZhuang(g);
DrawBeginB(g);
break;
case GameDef.PlayStatus:
DrawTime(g);
DrawOperation(g);
if(bDrawCell)
{
DrawMcell(g);
bDrawCell=false;
}
if(BflushMenu)
{
FlushMenu(g);
BflushMenu=false;
}
DrawAddCoin(g);
if(BShowMenu)
{
DrawMenu(g);
}
for(int i=0;i<MaxUser;i++)
{
if(BdrawReady[i])
{
DrawReady(g,i);
BdrawReady[i]=false;
}
if(BdrawPai[i])
{
DrawAllPai(g,i,-1);
BdrawPai[i]=false;
}
if(BDrawInfor[i])
{
System.out.println("sdfsdfsf");
DrawInfor(g,i);
BDrawInfor[i]=false;
}
if(AddZhuInfor[i]>0)
{
DrawCoin(g,AddZhuInfor[i]);
AddZhuInfor[i]=0;
}
if(CheckResult[i]>0)
{
DrawFlag(i,CheckResult[i]);
CheckResult[i]=0;
}
/*if(BflushUser[i])
{
FlushUser(g,i);
BflushUser[i]=false;
}*/
if(BGameComing[i])
{
DrawHead(g,GameDef.UserHead[i][0],GameDef.UserHead[i][1],GamePlayer[i].Portrait+1);
DrawName(g,i,GameDef.UserName[i][0],
GameDef.UserName[i][1]);
BGameComing[i]=false;
}
}
DrawBeginB(g);
if(CompareTime>=0)
{
//DrawCompare(g,Comparer,Compared,CompareWin);
}
break;
case GameDef.ResultStatus:
if(BInitOver)
{
DrawResult(g);
BInitOver=false;
}
DrawOverSelect(g);
break;
default:
break;
}
}
/***绘制胜负标志**/
public void DrawFlag(int position ,int flag)
{
g.setColor(0x000000);
if(flag==1)
{
g.drawImage(Imggivep,GameDef.PaiPosition[position][0]+6,
GameDef.PaiPosition[position][1]+17,0);
}
}
private boolean bDrawCell=true;
void DrawMcell(Graphics g)
{
g.setClip(114,9,121,30);
DrawBack(g);
g.setClip(365,9,121,30);
DrawBack(g);
g.setClip(280-50,39,100,43);
DrawBack(g);
//System.out.println("back 2");
g.setColor(0xffffff);
g.drawString("单注:"+Mcell,114,9,0);
g.drawString("封顶:"+HignCanAdd,365,9,0);
int total=0;
for(int i=0;i<MaxUser;i++)
{
if(BhadUser[i])
total+=UserZu[i][0];
}
g.drawString("总注:"+total,280,40,TV);
// drawIntString( g,HignCanAdd,0,30);
}
void drawIntString(Graphics g,int value,int x,int y)
{
int coin=Math.abs(value);
if(coin>=1000)
{
// if(value>0)
{
while(coin>=Mcell*10)
{
coin=coin/10;
}
}
}
// int base=value/Mcell;
// if(base>=Mcell*10)
switch(Math.abs(value)/coin)
{
case 1:
case 10:
case 100:
g.drawString(""+value,x,y,0);
break;
case 1000:
g.drawString(coin+"千",x,y,0);
break;
case 10000:
g.drawString(coin+"万",x,y,0);
break;
case 100000:
g.drawString(coin+"十万",x,y,0);
break;
case 1000000:
g.drawString(coin+"百万",x,y,0);
break;
case 10000000:
g.drawString(coin+"千万",x,y,0);
break;
}
}
/*绘制游戏加载资源的进度显示*/
public void DrawProcess(Graphics g,int loadstatus)
{
//if(Def.bDgg) System.out.println("绘制!"+loadstatus);
if(loadstatus==GameDef.LoadImg_one)
{
g.setColor(0x000000);
g.fillRect(0,0,Def.CANVAS_WIDTH,Def.CANVAS_HEIGHT);
//g.setFont(Def.VL_FONT_LARGE);
g.setColor(0xffffff);
g.drawString("Loading...",GameDef.Logox,GameDef.Logoy,0);
g.drawImage(ImgProcess[GameDef.ProcessBlue0],GameDef.Processx,GameDef.Processy,0);
//if(Def.bDgg) System.out.println("loadstatus !!!!!!");
for(int i=0;i<4;i++)
{
for(int j=0;j<GameDef.Processw;j++)
{
g.drawImage(ImgProcess[GameDef.ProcessBlue1],i*80+j*8+GameDef.Processx+8,GameDef.Processy,0);
}
}
g.drawRegion(ImgProcess[GameDef.ProcessBlue0],0,0,8,20,Sprite.TRANS_MIRROR,
GameDef.Processx+328,GameDef.Processy,0);
g.drawImage(ImgProcess[GameDef.ProcessGreen0],GameDef.Processx,GameDef.Processy,0);
}
else
if(loadstatus!=GameDef.LoadImg_five&&loadstatus!=GameDef.LoadImg_six)
{
if(loadstatus==GameDef.LoadImg_two)
{
for(int j=0;j<GameDef.Processw;j++)
g.drawImage(ImgProcess[GameDef.ProcessGreen1],j*8+GameDef.Processx+8,GameDef.Processy,0);
}
for(int j=0;j<GameDef.Processw;j++)
g.drawImage(ImgProcess[GameDef.ProcessGreen1],(loadstatus-1)*80+j*8+GameDef.Processx+8,GameDef.Processy,0);
}
else
g.drawRegion(ImgProcess[GameDef.ProcessGreen0],0,0,8,20,Sprite.TRANS_MIRROR,
GameDef.Processx+328,GameDef.Processy,0);
try{
Thread.sleep(500);
}catch(Exception e)
{
}
}
/*绘制开始按钮*/
void DrawBeginB(Graphics g)
{
if(GamePlayer[0]!=null&&!GamePlayer[0].playerIsReady()&&GotoResult<0)
{
BeginLoop+=1;
if(BeginLoop>20)
BeginLoop=0;
if(BeginLoop<=10)
{
g.drawImage(ImgMode[GameDef.Imgbegin1],GameDef.PaiPosition[0][0],GameDef.PaiPosition[0][1],0);
}
else if(BeginLoop<=20)
{
g.drawImage(ImgMode[GameDef.Imgbegin2],GameDef.PaiPosition[0][0],GameDef.PaiPosition[0][1],0);
}
}
}
/********绘制游戏开始的倒计时******/
void DrawBackTime(Graphics g)
{
//g.setClip(278,167,30,20);
//DrawBack(g);
if(BackTime> 0)
g.drawString(""+BackTime,278,167,0);
if(BackTime==0)
{
BackTime-=1;
return;
}
if(System.currentTimeMillis()-BaseBackTime>=1000&&BackTime>0)
{
BaseBackTime=System.currentTimeMillis();
BackTime-=1;
}
}
/********绘制背景*******/
void DrawBack(Graphics g)
{
for(int i=0;i<10;i++)
for(int j=0;j<10;j++)
{
g.drawImage(ImgMode[GameDef.ImgcInfor],i*56,j*42,0);
}
g.drawRegion(ImgMode[GameDef.ImgBack],0,0,
ImgMode[GameDef.ImgBack].getWidth(),ImgMode[GameDef.ImgBack].getHeight(),Sprite.TRANS_MIRROR,21,5,0);
g.drawRegion(ImgMode[GameDef.ImgBack],0,0,
ImgMode[GameDef.ImgBack].getWidth(),ImgMode[GameDef.ImgBack].getHeight(),0,280,5,0);
InitClip(g);
}
/*绘制庄得位置*/
void drawZhuang(Graphics g)
{
if(Banker>=0)
{
if(BGameing[Banker])
{
// g.drawImage(ImgMode[GameDef.Imgzhuang],GameDef.Zhuang[Banker][0],GameDef.Zhuang[Banker][1],0);
}
}
}
/*******绘制准备标志********/
void DrawReady(Graphics g,int position)
{ if(position==0)
{
g.setClip(GameDef.PaiPosition[position][0],GameDef.PaiPosition[position][1],50,25);
DrawBack(g);
}
// System.out.println("back 3");
g.drawImage(ImgMode[GameDef.ImgHandUp],GameDef.PaiPosition[position][0],GameDef.PaiPosition[position][1],0);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -