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

📄 hall.java

📁 J2ME实现得梭哈游戏联网程序
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
			case detail: {
				if (s_player.playerIsSeat() &&s_player.Table_idx!=
					Gplayer[(tableChairs[BUTTON_SELECTED] & 0x3f)].Table_idx)// 只有坐下了才能邀请
					MENU_SELECTED = 3;
				else
					MENU_SELECTED = 4;
				break;
			}
			case makefriend: {
				if (isMember()
						/*&& Gplayer[(tableChairs[BUTTON_SELECTED] & 0x3f)].Property == 0*/)// 有踢人功能
					MENU_SELECTED++;
				else
					MENU_SELECTED = 4;
				break;
			}
			case vip_kick: {
				MENU_SELECTED = 4;
				break;
			}
			}
		}
	}

	public short START_CHAIR_X; // 桌子开始的位置X
	public short START_CHAIR_Y; // 桌子开始的位置Y
	public short DISTANCE_X; // 桌子间隔X
	public short DISTANCE_Y; // 桌子间隔Y
	public byte chairsBounds[][]; // 坐标系
	short var_Chair_x;
	short var_Chair_y;

	/** 画椅子 */
	void drawChairs() {
		var_Chair_x = START_CHAIR_X;
		var_Chair_y = START_CHAIR_Y;

		for (byte i = 0; i < tablePerPage; i++) {
			if (i % tablePerLine == 0 && i != 0) {
				var_Chair_y += DISTANCE_Y;
				var_Chair_x = START_CHAIR_X;
			} else if (i != 0) {
				var_Chair_x += DISTANCE_X;
			}
			if (Currentpage * tablePerPage + i >= tableNum)
				return;
			drawTable(bg, var_Chair_x, var_Chair_y, chairsPerTable == 3 ? true
					: false, (tableStats[Currentpage * tablePerPage + i] & 0x01) != 0 ? true : false,
							(byte) (Currentpage * tablePerPage + i));
			drawChairsOneTable(bg, var_Chair_x, var_Chair_y,
					(byte) (Currentpage * tablePerPage + i));
		}
	}

	/** 画桌子号等桌子相关信息 */
	void drawTable(Graphics g, int x, int y, boolean type, boolean inGame,
			byte tableid) {
		if (type) // 3人 三角桌
		{
			if ((tableStats[tableid] & 0x08) != 0) {
				Tool.drawRegion(g, imghallbg, x, y, imgHallres[3].getWidth()<<1, 
						imgHallres[3].getHeight(), x, y, 0);
				if (inGame) {
					Tool.drawImage(g, imgHallres[3], x, y, imgHallres[3]
							.getWidth(), imgHallres[3].getHeight());
					Tool.drawRegion(g, imgHallres[3], 0, 0, imgHallres[3]
							.getWidth(), imgHallres[3].getHeight(), x
							+ imgHallres[3].getWidth(), y, Def.FLAG_MIRROR);
				} else {
					Tool.drawImage(g, imgHallres[2], x, y, imgHallres[2]
							.getWidth(), imgHallres[2].getHeight());
					Tool.drawRegion(g, imgHallres[2], 0, 0, imgHallres[2]
							.getWidth(), imgHallres[2].getHeight(), x
							+ imgHallres[2].getWidth(), y, Def.FLAG_MIRROR);
				}
			}
		} else {
			// System.out.println("tableStats[tableid]&
			// 0x80]="+(tableStats[tableid]& 0x80));
			if ((tableStats[tableid] & 0x08) != 0) {
				if (inGame) {
					if (chairsPerTable == 6) {
						Tool.drawImage(g, longbutton_ingame, x, y,
								LONGBUTTON_WIDTH, LONGBUTTON_HEIGHT);
					} else {
						Tool.drawImage(g, imgHallres[1], x, y, imgHallres[1]
								.getWidth(), imgHallres[1].getHeight());
						Tool.drawRegion(g, imgHallres[1], 0, 0, imgHallres[1]
								.getWidth(), imgHallres[1].getHeight(), x
								+ imgHallres[1].getWidth(), y, Def.FLAG_MIRROR);
					}
				} else {
					if (chairsPerTable == 6) {
						Tool.drawImage(g, longbutton_normal, x, y,
								LONGBUTTON_WIDTH, LONGBUTTON_HEIGHT);
					} else {
						Tool.drawImage(g, imgHallres[0], x, y, imgHallres[0]
								.getWidth(), imgHallres[0].getHeight());
						Tool.drawRegion(g, imgHallres[0], 0, 0, imgHallres[0]
								.getWidth(), imgHallres[0].getHeight(), x
								+ imgHallres[0].getWidth(), y, Def.FLAG_MIRROR);
					}
				}
			}
		}
		if ((tableStats[tableid] & 0x08) != 0){
			if (chairsPerTable == 6) {
				drawNumber(bg, x + 28, y + 9, tableid + 1);
			} else {
				drawNumber(bg, x + 2, y + 9, tableid + 1);
			}
		}
		tableStats[tableid] &= 0xf7;
	}

	void drawNumber(Graphics g, int pos_x, int pos_y, int number) {
		if(number < 0){
			drawNum(g, pos_x, pos_y, -1);
			return;
		}
		int[] num = new int[4];
		num[0] = number / 1000;
		num[1] = (number % 1000) / 100;
		num[2] = (number % 100) / 10;
		num[3] = number % 10;
		if (num[0] > 0) {
			drawNum(g, pos_x, pos_y, num[0]);
			drawNum(g, pos_x += Def.VL_FONTS_NUMBER_CHAR_W, pos_y, num[1]);
			drawNum(g, pos_x += Def.VL_FONTS_NUMBER_CHAR_W, pos_y, num[2]);
			drawNum(g, pos_x += Def.VL_FONTS_NUMBER_CHAR_W, pos_y, num[3]);
		} else {
			if (num[1] > 0) {
				drawNum(g, pos_x, pos_y, num[1]);
				drawNum(g, pos_x += Def.VL_FONTS_NUMBER_CHAR_W, pos_y, num[2]);
				drawNum(g, pos_x += Def.VL_FONTS_NUMBER_CHAR_W, pos_y, num[3]);
			} else {
				// if(num[2]>0){
				drawNum(g, pos_x, pos_y, num[2]);
				drawNum(g, pos_x += Def.VL_FONTS_NUMBER_CHAR_W, pos_y, num[3]);
				// }else{
				// drawNum(g,pos_x,pos_y,num[3]);
				// }
			}
		}
	}

	void drawNum(Graphics g, int pos_x, int pos_y, int num) {
		switch (num) {
		case 0:
			Tool.drawImage(g, imgNumber[0], pos_x, pos_y,
					Def.VL_FONTS_NUMBER_CHAR_W, Def.VL_FONTS_NUMBER_CHAR_H);
			break;
		case 1:
			Tool.drawImage(g, imgNumber[1], pos_x, pos_y,
					Def.VL_FONTS_NUMBER_CHAR_W, Def.VL_FONTS_NUMBER_CHAR_H);
			break;
		case 2:
			Tool.drawImage(g, imgNumber[2], pos_x, pos_y,
					Def.VL_FONTS_NUMBER_CHAR_W, Def.VL_FONTS_NUMBER_CHAR_H);
			break;
		case 3:
			Tool.drawImage(g, imgNumber[3], pos_x, pos_y,
					Def.VL_FONTS_NUMBER_CHAR_W, Def.VL_FONTS_NUMBER_CHAR_H);
			break;
		case 4:
			Tool.drawImage(g, imgNumber[4], pos_x, pos_y,
					Def.VL_FONTS_NUMBER_CHAR_W, Def.VL_FONTS_NUMBER_CHAR_H);
			break;
		case 5:
			Tool.drawImage(g, imgNumber[5], pos_x, pos_y,
					Def.VL_FONTS_NUMBER_CHAR_W, Def.VL_FONTS_NUMBER_CHAR_H);
			break;
		case 6:
			Tool.drawImage(g, imgNumber[6], pos_x, pos_y,
					Def.VL_FONTS_NUMBER_CHAR_W, Def.VL_FONTS_NUMBER_CHAR_H);
			break;
		case 7:
			Tool.drawImage(g, imgNumber[7], pos_x, pos_y,
					Def.VL_FONTS_NUMBER_CHAR_W, Def.VL_FONTS_NUMBER_CHAR_H);
			break;
		case 8:
			Tool.drawImage(g, imgNumber[8], pos_x, pos_y,
					Def.VL_FONTS_NUMBER_CHAR_W, Def.VL_FONTS_NUMBER_CHAR_H);
			break;
		case 9:
			Tool.drawImage(g, imgNumber[9], pos_x, pos_y,
					Def.VL_FONTS_NUMBER_CHAR_W, Def.VL_FONTS_NUMBER_CHAR_H);
			break;
		case -1:
			Tool.drawImage(g, imgNumber[10], pos_x, pos_y,
					Def.VL_FONTS_NUMBER_CHAR_W, Def.VL_FONTS_NUMBER_CHAR_H);
			break;
		}
	}

	/** 画一桌的椅子,包括头像,昵称等 */
	void drawChairsOneTable(Graphics g, int x, int y, byte tableid) {
		for (byte j = 0; j < chairsBounds.length; j++) {
			if ((tableChairs[(tableid * chairsPerTable + j)
					% (chairsPerTable * tablePerPage)] & 0x80) != 0) // 需要更新
			{
				tableChairs[(tableid * chairsPerTable + j)
						% (chairsPerTable * tablePerPage)] &= 0x7f;// 不需要刷新
				Tool.drawImage(g, imgPortrait[0], x + chairsBounds[j][0], y
						+ chairsBounds[j][1]);
				restoreBg_black(x + chairsBounds[j][2], y + chairsBounds[j][3],
						55, 23);
				if ((tableChairs[(tableid * chairsPerTable + j)
						% (chairsPerTable * tablePerPage)] & 0x40) != 0) // 有人
				{
					if ((tableChairs[(tableid * chairsPerTable + j)
							% (chairsPerTable * tablePerPage)] & 0x3f) == 37)// 自己
					{
						// 画头像
						Tool.drawImage(g, imgPortrait[s_player.Portrait%8 + 1],
								x + chairsBounds[j][0], y + chairsBounds[j][1]);
						// 画玩家昵称
						drawNick(bg, s_player.Nick, Def.COLOR_YELLOW,
								Def.FONTMIDDLE, x + chairsBounds[j][2], y
										+ chairsBounds[j][3], 55);
					} else {
						// 画头像
						Tool.drawImage(g,imgPortrait[(Gplayer[(tableChairs[(tableid* chairsPerTable + j)
						% (chairsPerTable * tablePerPage)] & 0x3f)].Portrait)%8 + 1],x + chairsBounds[j][0], y
						+ chairsBounds[j][1]);
						// 画玩家昵称
						drawNick(bg,Gplayer[(tableChairs[(tableid* chairsPerTable + j)
						% (chairsPerTable * tablePerPage)] & 0x3f)].Nick,Def.COLOR_WHITE, Def.FONTMIDDLE, x
						+ chairsBounds[j][2], y+ chairsBounds[j][3],55);
					}
				}
			}
		}
	}

	void restoreBg_black(int pos_x, int pos_y, int width, int height) {
		bg.setClip(pos_x, pos_y, width, height);
		// Vlutil.fillRect(bg, Def.COLOR_GREEN, pos_x, pos_y, width, height);
		Tool.drawRegion(bg, imghallbg, pos_x, pos_y, width, height, pos_x,
				pos_y, 0);
		if (width > 32) {
			restoreBg_black(pos_x + 32, pos_y, width - 32, height);
		}
		if (height > 32) {
			restoreBg_black(pos_x, pos_y + 32, 32, height - 32);
		}
	}

	/** 画LOADING界面 */
	void drawLoadingBar() {
		for (int i = m_loadingDrawState; i < 20 * m_LoadingProgress / 100; i++) {
			if (i == 0) {
				s_g.setColor(0x000000);
				s_g.fillRect(0, 0, 560, 420);
				Tool.drawImage(s_g, imgLoad[Def.LOADING_BACK],
						Def.GAME_LOADING_FRAMEX, Def.GAME_LOADING_FRAMEY);// 大背景图片
				Tool.drawImage(s_g, imgLoad[Def.LOADING_FONT],
						Def.GAME_LOADING_FONTX, Def.GAME_LOADING_FONTY);// Loading...
				for (int j = 0; j < 30; j++) {
					if (j == 0)
						Tool.drawImage(s_g, imgLoad[Def.LOADING_BAR_LEFT],
								Def.GAME_LOADING_BAR_FRAMEX,
								Def.GAME_LOADING_BAR_FRAMEY);// 底条 : 左
					else if (j == 29)
						Tool.drawRegion(s_g, imgLoad[Def.LOADING_BAR_LEFT],
								0, 0, 7, 19, Def.GAME_LOADING_BAR_FRAMEX + 7
										* j, Def.GAME_LOADING_BAR_FRAMEY,
								Def.FLAG_MIRROR);// 底条 : 右
					else
						Tool.drawImage(s_g, imgLoad[Def.LOADING_BAR_MIDDLE],
								Def.GAME_LOADING_BAR_FRAMEX + j * 7,
								Def.GAME_LOADING_BAR_FRAMEY);// 底条 : 中
				}
			}
			Tool.drawImage(s_g, imgLoad[Def.LOADING_BAR],
					Def.GAME_LOADING_BARX + i * Def.GAME_LOADING_BAR_WIDTH,
					Def.GAME_LOADING_BARY);// 蓝点 loading
			m_loadingDrawState = i;
		}
	}

	/**
	 * 重置LOADING状态
	 */
	void reset_Loading() {
		m_loadingDrawState = 0;
		m_LoadingProgress = 0;
		m_LoadingState = k_LoadingInit;
	}

	static long sendHeart;
	static boolean bsendHeart = false;

	static void setDis(DataInputStream DIS) {
		if (dis != null) {
			try {
				dis.close();
			} catch (Exception e) {
				dis = null;
			}
			dis = null;
		}
		dis = DIS;
	}

	protected void paint(Graphics graphics) {
		s_g = graphics;
		s_g.translate((getWidth()-560)/2,0);
		keyUpdate();
		updateHall();
		keyUpdate2();
	}

	// //--------------------------------------------按键响应-------------------------
	static int m_keyLastPressed;
	static int m_keyPressed;
	static int m_keyLastCurrent;
	static int m_keyCurrent;
	static int m_keyLastReleased;
	static int m_keyReleased;

	protected void keyPressed(int keyCode) {
		int key = GetKey(keyCode);
		m_keyLastPressed = m_keyLastCurrent = key;
	}

	protected void keyRepeated(int keyCode) {
		m_keyLastCurrent |= GetKey(keyCode);
	}

	private void keyUpdate2() {
		if ((m_keyPressed & m_keyLastPressed) != 0) {
			m_keyLastPressed = 0;
		}
	}

	private void keyUpdate() {
		m_keyCurrent = m_keyLastCurrent;
		m_keyPressed = m_keyLastPressed;

		if (m_keyLastReleased != 0) {
			m_keyLastPressed = m_keyLastCurrent &= ~m_keyLastReleased;
		}
		m_keyLastReleased = 0;
	}

	static int GetKey(int keyCode) {
		if (Def.bDKey) {
			Tool.fillRect(s_g, Def.COLOR_BLACK, 100, 100, 50, 40);
			Tool.drawString(s_g, Integer.toString(keyCode), Def.COLOR_WHITE,
					Def.FONTMIDDLE, 100, 100);
		}
		switch (keyCode) {
		case STD_UP_ARROW:
			return GK_UP;
		case STD_DOWN_ARROW:
			return GK_DOWN;
		case STD_LEFT_ARROW:
			return GK_LEFT;
		case STD_RIGTH_ARROW:
			return GK_RIGHT;
		case STD_M:
			return GK_FIRE;
		case STD_ZTE_PAGEUP:
			return GK_PAGEUP;
		case STD_ZTE_PAGEDOWN:
			return GK_PAGEDOWN;
		case STD_ZTE_RETURN:
			return GK_RETURN;
		case STD_ZTE_MENU:
			return GK_MENU;
		case STD_ZTE_IME:
			return GK_IME;
		case STD_ZTE_SOFTKEYPAD:
			return GK_SOFTKEYPAD;
		case STD_ZTE_DELETE:
			return GK_DELETE;
		case STD_ZTE_TV:
			return GK_TV;
		case Canvas.KEY_NUM1:
			return GK_NUM1;
		case Canvas.KEY_NUM2:
			return GK_NUM2;
		case Canvas.KEY_NUM3:
			return GK_NUM3;
		case Canvas.KEY_NUM4:
			return GK_NUM4;
		case Canvas.KEY_NUM5:
			return GK_NUM5;
		case Canvas.KEY_NUM6:
			return GK_NUM6;
		case Canvas.KEY_NUM7:
			return GK_NUM7;
		case Canvas.KEY_NUM8:
			return GK_NUM8;
		case Canvas.KEY_NUM9:
			return GK_NUM9;
		case Canvas.KEY_NUM0:
			return GK_NUM0;

		default:
			return keyCode;
		}
	}

	public static void clearkey() {
		m_keyCurrent = 0;
		m_keyPressed = 0;
		m_keyLastCurrent = 0;
		m_keyLastPressed = 0;
	}

	public static boolean IsKeyHold(int gameKey) {
		return (m_keyCurrent & gameKey) != 0;
	}

	public static boolean IsAnyKeyPressed() {
		return m_keyPressed != 0;
	}

	public static boolean IsKeyPressed(int gKey) {
		return (m_keyPressed & gKey) != 0;
	}

	public final static int STD_UP_ARROW = -1;
	public final static int STD_DOWN_ARROW = -2;
	public final static int STD_LEFT_ARROW = -3;
	public final static int STD_RIGTH_ARROW = -4;
	public final static int STD_M = -5;

	public final static int STD_ZTE_RETURN = -7;
	public final static int STD_ZTE_PAGEUP = -20;
	public final static int STD_ZTE_PAGEDOWN = -21;
	public final static int STD_ZTE_MENU = -6;
	public final static int STD_ZTE_DELETE = -8;
	public final static int STD_ZTE_IME = -30;
	public final static int STD_ZTE_SOFTKEYP

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -