📄 game.java
字号:
/********绘制头像**********/
void DrawHead(Graphics g,int x,int y,int index)
{
int h= index%3;
int v=index/3;
g.drawRegion(ImgMode[GameDef.ImgHead],h*32,v*32,32,32,0,
x,y,0);
//Tool.drawImage(g, Hall.imgPortrait[info_player.Portrait+1],
}
/******绘制信息*********/
void DrawInfor(Graphics g,int position)
{
if(Def.bDgg) System.out.println("绘制信息"+position);
g.setClip(GameDef.UserInfor[position][0],GameDef.UserInfor[position][1],140,40);
//System.out.println("back 4");
DrawBack(g);
// if(position==0)
// g.fillRect(GameDef.UserInfor[position][0],GameDef.UserInfor[position][1],GameDef.Inforw,4*GameDef.Inforh/5);
//else
//g.fillRect(GameDef.UserInfor[position][0],GameDef.UserInfor[position][1],GameDef.Inforw,GameDef.Inforh);
g.setColor(0xffffff);
//g.drawString("总 注:"+UserZu[position][1],GameDef.UserInfor[position][0],GameDef.UserInfor[position][1]+5,0);
g.drawString("已下注:"+UserZu[position][0],GameDef.UserInfor[position][0],GameDef.UserInfor[position][1],0);
DrawName(g,position,GameDef.UserName[position][0],
GameDef.UserName[position][1]);
//g.drawString("总注"+GamePlayer[position].Gold,GameDef.UserInfor[position][0],GameDef.UserInfor[position][1]+20,0);
}
/********绘制用户名*********/
void DrawName(Graphics g,int position,int x,int y)
{
g.setColor(0xffffff);
if(GamePlayer[position]==null)
return;
String suitname=GamePlayer[position].Nick; //if(GamePlayer[position].NICK!=null)
char[]name=GamePlayer[position].Nick.toCharArray();
for(int i=1;i<=name.length;i++)
{
int w=g.getFont().stringWidth(GamePlayer[position].Nick.substring(0,i));
if(w>g.getFont().stringWidth("aaaaaa"))
{
suitname=GamePlayer[position].Nick.substring(0,i-1);
break;
}
}
if(GameStatus==GameDef.ResultStatus)
{
g.drawString(suitname,x,y+5,0);
return;
}
if(position>=3)
{
g.drawString(suitname,x,y+5,TR);
}
else
{
g.drawString(suitname,x,y+5,0);
}
}
/*******绘制游戏 结算界面********/
void DrawResult(Graphics g)
{
//g.setClip(0,0,Def.CANVAS_WIDTH,Def.CANVAS_HEIGHT);
//DrawBack(g);
//if(Def.bDgg) System.out.println("back 5");
int lw=ImgOver[GameDef.Overl].getWidth();
int sw=ImgOver[GameDef.Overs].getWidth();
int bx=GameDef.Overx;
int by=GameDef.Overy;
g.drawImage(ImgOver[GameDef.Overl],bx,by,0);
for(int i=0;i<17;i++)
g.drawImage(ImgOver[GameDef.Overs],bx+lw+i*sw,by,0);
g.drawRegion(ImgOver[GameDef.Overl],0,0,ImgOver[GameDef.Overl].getWidth(),ImgOver[GameDef.Overl].getHeight(),
Sprite.TRANS_MIRROR,bx+lw+17*sw,by,0);
/*switch(OverMode)
{
case 0:
g.drawString("游戏结束",bx+10,by+15,0);
break;
case 1:
g.drawString("有人开牌游戏结束",bx+10,by+15,0);
break;
case 2:
g.drawString("玩家封顶游戏结束",bx+10,by+15,0);
break;
case 3:
g.drawString("整桌封顶游戏结束",bx+10,by+15,0);
break;
}*/
g.drawImage(ImgOver[GameDef.Overjiesuan],bx+250,by+15,0);
//g.drawString("喜 金"+XiJin,bx+260,by+15,0);
int infox=GameDef.Overx+GameDef.OverInforw;
int infoy=GameDef.Overy+GameDef.OverInforh-4;
int inforh=40;
int index=0;
for(int i=0;i<MaxUser;i++)
{
if(BInGame[i])
{
DrawHead(g,infox,infoy+index*inforh,GamePlayer[i].Portrait+1);
DrawName(g,i,infox+37,infoy+index*inforh-5);
if(Score[i]>0)
g.drawString("胜利",infox+90,infoy+index*inforh,0);
else
g.drawString("失败",infox+90,infoy+index*inforh,0);
//drawIntString(g,Score[i],infox+130,infoy+index*inforh);
g.drawString(""+Score[i],infox+137,infoy+index*inforh,0);
//g.drawString(getRating(UserZu[i][1]),infox+163,infoy+index*inforh,0);
drawCardType(g,i,infox+256,infoy+index*inforh);
/* switch(CardType[i])
{
case 1:
g.drawString("散牌",infox+200,infoy+index*inforh,0);
break;
case 0:
g.drawString("对子",infox+200,infoy+index*inforh,0);
break;
case 2:
g.drawString("同花",infox+200,infoy+index*inforh,0);
break;
}*/
DrawAllPai(g,i,index);
index+=1;
}
}
}
/*绘制结算选着框*/
void DrawOverSelect(Graphics g)
{
OverLoop+=1;
if(OverLoop>=20)
OverLoop=0;
g.setClip(GameDef.Overx+220-33,GameDef.Overy+369,GameDef.Overx+200+100-33+63,27);
DrawResult(g);
g.drawImage(ImgOver[GameDef.Overbegin],GameDef.Overx+219,GameDef.Overy+382,HV);
g.drawImage(ImgOver[GameDef.Overexit],GameDef.Overx+200+99,GameDef.Overy+382,HV);
if(OverLoop<=10)
g.setColor(0xff0000);
else
g.setColor(0x00ff00);
if(OverSelect==0)
{
g.drawRect(GameDef.Overx+220-33,GameDef.Overy+369,62,25);
g.drawRect(GameDef.Overx+220-32,GameDef.Overy+370,60,23);
}
else if(OverSelect==1)
{
g.drawRect(GameDef.Overx+200+100-33,GameDef.Overy+369,62,25);
g.drawRect(GameDef.Overx+200+100-32,GameDef.Overy+370,60,23);
}
}
/***清除 用户信息********/
void FlushUser(Graphics g,int position)
{
g.setClip(GameDef.UserHead[position][0],GameDef.UserHead[position][1],32,32);
DrawBack(g);
if(position>2)
{
g.setClip(GameDef.UserName[position][0]-60,GameDef.UserName[position][1],60,40);
DrawBack(g);
}
else
{
g.setClip(GameDef.UserName[position][0],GameDef.UserName[position][1],60,40);
DrawBack(g);
}
g.setClip(GameDef.UserInfor[position][0],GameDef.UserInfor[position][1],137,42);
DrawBack(g);
g.setClip(GameDef.PaiPosition[position][0],GameDef.PaiPosition[position][1],33*3,45);
DrawBack(g);
//if(Def.bDgg)System.out.println("back 6");
//if(Banker==position)
{
//g.setClip(GameDef.Zhuang[position][0],GameDef.Zhuang[position][0],g.getFont().stringWidth("庄 家"),40);
//DrawBack(g);
//if(Def.bDgg)System.out.println("back 7");
}
}
/********清除举手得 状态********/
void FlushReady(Graphics g,int position)
{
g.setClip(GameDef.PaiPosition[position][0],GameDef.PaiPosition[position][1],41,34);
DrawBack(g);
//System.out.println("back 8");
}
/*********绘制玩家只是方向**********/
void DrawDirect(Graphics g,int direct,boolean up)
{
//Image img=null;
if(up)
g.drawImage(ImgMode[GameDef.ImgDirect],GameDef.CountTime[direct][0],
GameDef.CountTime[direct][1],HV);
else
{
g.setClip(GameDef.CountTime[direct][0]-22,
GameDef.CountTime[direct][1]-22,44,44);
DrawBack(g);
//System.out.println("back 1");
}
/* switch(direct)
{
case 0:
g.drawRegion(img,0,0,img.getWidth()
,img.getHeight(),Sprite.TRANS_ROT180,GameDef.DirectPosition[direct][0],
GameDef.DirectPosition[direct][1],0);
break;
case 1:
g.drawRegion(img,0,0,img.getWidth()
,img.getHeight(),0,GameDef.DirectPosition[direct][0],
GameDef.DirectPosition[direct][1],0);
break;
case 2:
g.drawRegion(img,0,0,img.getWidth()
,img.getHeight(),Sprite.TRANS_ROT180,GameDef.DirectPosition[direct][0],
GameDef.DirectPosition[direct][1],0);
break;
case 3:
g.drawRegion(img,0,0,img.getWidth()
,img.getHeight(),0,GameDef.DirectPosition[direct][0],
GameDef.DirectPosition[direct][1],0);
break;
case 4:
g.drawRegion(img,0,0,img.getWidth()
,img.getHeight(),Sprite.TRANS_ROT180,GameDef.DirectPosition[direct][0],
GameDef.DirectPosition[direct][1],0);
break;
case 5:
g.drawRegion(img,0,0,img.getWidth()
,img.getHeight(),0,GameDef.DirectPosition[direct][0],
GameDef.DirectPosition[direct][1],0);
break;
}*/
}
/*初始化剪切区域*/
void InitClip(Graphics g)
{
g.setClip(0,0,Def.CANVAS_WIDTH,Def.CANVAS_HEIGHT);
}
/****绘制时间************/
void DrawTime(Graphics g)
{
if(GotoResult>=0)
return;
if(CurrentUser<0)
return;
if(CountTime<0)
return;
for(int i=0;i<MaxUser;i++)
{
if(LastUser>=0&&CurrentUser!=i)
{
DrawDirect(g,i,false);
LastUser-=1;
}
}
DrawDirect(g,CurrentUser,true);
g.setColor(0xffffff);
g.drawString(""+CountTime,GameDef.CountTime[CurrentUser][0],
GameDef.CountTime[CurrentUser][1]-10,TV);
if(System.currentTimeMillis()-BaseCountTime>=1000)
{
CountTime-=1;
BaseCountTime=System.currentTimeMillis();
}
if(CountTime<=0&&CurrentUser==0)
{
if(showAddCoin>0)
{
showAddCoin=0;
BflushMenu=true;
}
actionType=3;
//System.out.println("发送放弃"+actionType);
_Commu.formatSendPack((short)100,(short)483);
}
}
/*********绘制一张牌***********/
void DrawPai(Graphics g,int x,int y,int huase,int dian )
{
//if(Def.bDgg) System.out.println("绘制x"+x+"y"+y+"huase"+huase+"dian"+dian);
int color=1;
if(huase>=0)
{
g.drawImage( ImgMode[GameDef.ImgCardFace],x,y,0);
if(huase==GameDef.Huase_meihua||huase==GameDef.Huase_heitao)
//g.setColor(0x000000);
color=0;
//else
//g.setColor(0xff0000);
/* if(dian==1)
g.drawString("A",x+5,y,0);
else if(dian==11)
g.drawString("J",x+5,y,0);
else if(dian==12)
g.drawString("Q",x+5,y,0);
else if(dian==13)
g.drawString("K",x+5,y,0);
else if(dian==10)
g.drawString(""+dian,x,y,0);
else
g.drawString(""+dian,x+4,y,0);*/
g.drawRegion(ImgMode[GameDef.ImgCardn],(dian-1)*15,color*15,15,15,0,x+1,y+1,0);
g.drawImage( ImgHuase[huase],x,y+17,0);
}
else
g.drawImage( ImgMode[GameDef.ImgCardBack],x,y,0);
}
/*初始化操作显示问题*/
void InitOperation(int position,int value)
{
if(BGameing[position])
{
Operation[position]=value;
OperationTime[position]=20;
}
}
/*绘制操作*/
void DrawOperation(Graphics g)
{
for(int i=0;i<MaxUser;i++)
{
if(Operation[i]>0)
{
g.setColor(0xff00ff);
switch(Operation[i])
{
case 1: //跟牌
g.drawRegion(ImgMode[GameDef.ImgFont],1*46,0,46,17,0,GameDef.Zhuang[i][0],GameDef.Zhuang[i][1]+5,0);
//g.drawString("跟 牌",GameDef.Zhuang[i][0],GameDef.Zhuang[i][1]+5,0);
break;
case 2:
g.drawRegion(ImgMode[GameDef.ImgFont],0*46,0,46,17,0,GameDef.Zhuang[i][0],GameDef.Zhuang[i][1]+5,0);
//g.drawString("加 注",GameDef.Zhuang[i][0],GameDef.Zhuang[i][1]+5,0);//加注
break;
case 3:
//g.drawString("放 弃",GameDef.PaiPosition[i][0]+10,GameDef.PaiPosition[i][1]+5,0);//放弃
break;
case 6:
g.drawRegion(ImgMode[GameDef.ImgFont],5*46,0,46,17,0,GameDef.Zhuang[i][0],GameDef.Zhuang[i][1]+5,0);
//g.drawString("开 牌",GameDef.Zhuang[i][0],GameDef.Zhuang[i][1]+5,0);//开牌
break;
case 4:
g.drawRegion(ImgMode[GameDef.ImgFont],4*46,0,46,17,0,GameDef.Zhuang[i][0],GameDef.Zhuang[i][1]+5,0);
//g.drawString("不 下",GameDef.Zhuang[i][0],GameDef.Zhuang[i][1]+5,0);//开牌
break;
case 5:
g.drawRegion(ImgMode[GameDef.ImgFont],3*46,0,46,17,0,GameDef.Zhuang[i][0],GameDef.Zhuang[i][1]+5,0);
//g.drawString("梭 哈",GameDef.Zhuang[i][0],GameDef.Zhuang[i][1]+5,0);//开牌
break;
}
OperationTime[i]-=1;
if(OperationTime[i]<=0)
{
//DrawAllPai(g,i,-1);
//if(!BGameing[i])
// DrawFlag(i,1);
g.setClip(GameDef.Zhuang[i][0],GameDef.Zhuang[i][1]+5,46,20);
DrawBack(g);
Operation[i]=0;
}
//g.setFont(Def.VL_FONT_SMALL);
}
}
}
/*绘制比牌信息*/
void DrawCompare(Graphics g,int comper,int compared,int winer)
{
//if(Def.bDgg) System.out.println("comper"+comper+"compared"+compared+"winer"+winer);
g.drawImage(ImgMode[GameDef.Imgcenter],GameDef.Comparex, GameDef.Comparey,0);
g.setColor(0x000000);
g.drawString(GamePlayer[comper].Nick+" VS "+GamePlayer[compared].Nick,
GameDef.Comparex+GameDef.Comparew/2, GameDef.Comparey+5,TV);
DrawAllPai(g,comper,9);
DrawAllPai(g,compared,10);
g.setColor(0xff0000);
if(winer==comper)
{
g.drawString("胜 利",GameDef.Comparex+20,GameDef.Comparey+30,0);
g.drawString("失 败",GameDef.Comparex+100,GameDef.Comparey+30,0);
}
else
{
g.drawString("失 败",GameDef.Comparex+20,GameDef.Comparey+30,0);
g.drawString("胜 利",GameDef.Comparex+100,GameDef.Comparey+30,0);
}
if(CompareTime<=0)
{
g.setClip(GameDef.Comparex, GameDef.Comparey,GameDef.Comparew, GameDef.Compareh);
DrawBack(g);
int zu=0;
for(int i=0;i<MaxUser;i++)
{
if(BInGame[i])
{
zu+=UserZu[i][0];
}
}
DrawCoin( g,zu );
//DrawAllPai(g,5,-1);
// DrawInfor(g,5);
//DrawInfor(g,4);
Comparer=-1;
Compared=-1;
CompareWin=-1;
CompareTime=-1;
return;
}
if(System.currentTimeMillis()-CompareBaseTime>=1000)
{
CompareTime-=1;
CompareBaseTime=System.currentTimeMillis();
}
}
/*清除菜单*/
void FlushMenu(Graphics g)
{
System.out.println("FlushMenu(");
//if(canSuoha>0)
{
g.setClip(GameDef.ButX-GameDef.Menuw/2,GameDef.ButY-48,GameDef.Butdis,30);
DrawBack(g);
}
g.setClip(GameDef.ButX-GameDef.Menuw/2,GameDef.ButY-GameDef.Menuh/4,GameDef.Butdis*4,30);
DrawBack(g);
//if(BInGame[1])
DrawInfor(g,0);
BflushMenu=false;
}
/*绘制菜单*/
void DrawMenu(Graphics g)
{
FlashTime+=1;
if(FlashTime>10)
FlashTime=0;
g.setColor(0x0000);
if(canSuoha>0)
{
if(MenuIndex==4)
{
if(FlashTime<=5)
g.drawRegion(ImgMode[GameDef.Imghmenu],0,0,62,29,0,GameDef.ButX-GameDef.Menuw/2,
GameDef.ButY-40-GameDef.Menuh/4,0);
else
g.drawRegion(ImgMode[GameDef.Imghmenu],62,0,62,29,0,GameDef.ButX-GameDef.Menuw/2,
GameDef.ButY-40-GameDef.Menuh/4,0);
}
else
{
g.drawRegion(ImgMode[GameDef.Imghmenu],62,0,62,29,0,GameDef.ButX-GameDef.Menuw/2,
GameDef.ButY-40-GameDef.Menuh/4,0);
}
g.drawRegion(ImgMode[GameDef.ImgFont],3*46,0,46,17,0,GameDef.ButX,GameDef.ButY-40-2,TV);
//g.drawString("梭哈",GameDef.ButX,GameDef.ButY-40,TV);
}
for(int i=0;i<Menu.length;i++)
{
if(Menu[i]>0)
{
//System.out.println(i+"menu"+Menu[i]);
if(MenuIndex==i)
{
if(FlashTime<=5)
g.drawRegion(ImgMode[GameDef.Imghmenu],0,0,62,29,0,GameDef.ButX+i*GameDef.Butdis-GameDef.Menuw/2,
GameDef.ButY-GameDef.Menuh/4,0);
else
g.drawRegion(ImgMode[GameDef.Imghmenu],62,0,62,29,0,GameDef.ButX+i*GameDef.Butdis-GameDef.Menuw/2,
GameDef.ButY-GameDef.Menuh/4,0);
}
else
g.drawRegion(ImgMode[GameDef.Imghmenu],62,0,62,29,0,GameDef.ButX+i*GameDef.Butdis-GameDef.Menuw/2,
GameDef.ButY-GameDef.Menuh/4,0);
switch(Menu[i])
{
case SignAdd:
g.drawRegion(ImgMode[GameDef.ImgFont],0*46,0,46,17,0,GameDef.ButX+i*GameDef.Butdis,GameDef.ButY-2,TV);
//g.drawString("加注",GameDef.ButX+i*GameDef.Butdis,GameDef.ButY,TV);
break;
case SignGiveup:
g.drawRegion(ImgMode[GameDef.ImgFont],2*46,0,46,17,0,GameDef.ButX+i*GameDef.Butdis,GameDef.ButY-2,TV);
//g.drawString("放弃",GameDef.ButX+i*GameDef.Butdis,GameDef.ButY,TV);
break;
case SignFollow:
g.drawRegion(ImgMode[GameDef.ImgFont],1*46,0,46,17,0,GameDef.ButX+i*GameDef.Butdis,GameDef.ButY
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -