⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 game.java

📁 J2ME实现得梭哈游戏联网程序
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
						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 + -