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

📄 tablecanvas.java

📁 一款麻将游戏的J2me源代码
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
//                case 11:
//                g.setColor(0xffffff);
//            	g.drawString("可惜哟,按OK键继续",getWidth()/2,getHeight()-30,17);
//            	break;
            	case 12:
                g.setColor(0xffffff);
            	g.drawString("按OK键或5键继续",getWidth()/2,getHeight()-30,17);
            	break;
            	case 13:
                g.setColor(0xffffff);
                if(m_aPlayers[0].getPoint() > 0&&m_aPlayers[1].getPoint() > 0)
            	g.drawString("按OK键或5键继续",getWidth()/2,getHeight()-30,17);
            	else
            	if(m_aPlayers[0].getPoint() > 0&&m_aPlayers[1].getPoint() <= 0)
            	{
            		g.drawString("你的对手输光了",getWidth()/2,getHeight()-36,17);
            		g.drawString("按OK键或5键回主菜单",getWidth()/2,getHeight()-18,17);
            	}
            	else
            	if(m_aPlayers[1].getPoint() > 0&&m_aPlayers[0].getPoint() <= 0)
            	{       		
            		g.drawString("你输光了",getWidth()/2,getHeight()-36,17);
            		g.drawString("按OK键或5键回主菜单",getWidth()/2,getHeight()-18,17);
            	}
            	default:
            	break;
        }
        if(pause)
        {
        	g.setColor(0);
        	g.fillRect(0,0,getWidth(),getHeight());
		g.setColor(0xffffff);
		g.drawString("暂停中……",getWidth()/2,getHeight()/2,17);
	}
   	lock=false;
    }

    private void drawDraw(Graphics g)
    {
        ImgUtil.drawImage(g, m_iDraw, (getWidth() - m_iDraw.getWidth()) / 2, (getHeight() - m_iDraw.getHeight()) / 2);
        Font font = Font.getFont(32, 1, 16);
        g.setFont(font);
        int i = (getWidth() - font.stringWidth("\u6D41\u5C40")) / 2;
        int j = (getHeight() - font.getHeight()) / 2;
        ImgUtil.drawString(g, "\u6D41\u5C40", i, j);
    }

    private void drawMeldedForSelfKongChoice(Graphics g)
    {
        for(byte byte0 = 0; byte0 < m_aPlayers.length; byte0++)
        {
            for(byte byte1 = 0; byte1 < m_aPlayers[byte0].getMeldedCount(); byte1++)
                switch(m_aPlayers[byte0].getMeldedAt(byte1).getType())
                {
                default:
                    break;

                case 7: // '\007'
                    if(m_aPlayers[byte0].isHuman())
                        drawMeldedSetPongForSelfKongChoice(g, m_aPlayers[byte0], byte1);
                    else
                        drawMeldedSetPong(g, m_aPlayers[byte0], byte1);
                    break;

                case 4: // '\004'
                case 5: // '\005'
                case 6: // '\006'
                    drawMeldedSetChow(g, m_aPlayers[byte0], byte1);
                    break;
                }

        }

    }

    private void drawMeldedSetPong(Graphics g, myPlayer player, byte byte0)
    {
        for(byte byte1 = 0; byte1 < 3; byte1++)
            ImgUtil.drawImage(g, getHTileImg(player.getMeldedAt(byte0).getTileOrIndex()), Setting.MELD_X[player.getType()] - sign(player.getType()) * byte0 * 3 * 12 - sign(player.getType()) * byte1 * 12, Setting.MELD_Y[player.getType()]);

    }

    private void drawMeldedSetPongForSelfKongChoice(Graphics g, myPlayer player, byte byte0)
    {
        for(byte byte1 = 0; byte1 < 3; byte1++)
            ImgUtil.drawImage(g, getHTileImg(player.getMeldedAt(byte0).getTileOrIndex()), Setting.MELD_X[player.getType()] - sign(player.getType()) * byte0 * 3 * 12 - sign(player.getType()) * byte1 * 12, Setting.MELD_Y[player.getType()] - (byte0 != player.currentChance().getTileOrIndex() || player.currentChance().getType() != 1 && player.currentChance().getType() != 3 ? 0 : 2));

    }

    private void drawMeldedSetChow(Graphics g, myPlayer player, byte byte0)
    {
        ImgUtil.drawImage(g, getHTileImg((byte)(player.getMeldedAt(byte0).getTileOrIndex() + (player.getMeldedAt(byte0).getType() != 4 ? player.getMeldedAt(byte0).getType() != 5 ? -2 : -1 : 1))), Setting.MELD_X[player.getType()] - sign(player.getType()) * byte0 * 3 * 12, Setting.MELD_Y[player.getType()]);
        ImgUtil.drawImage(g, getHTileImg(player.getMeldedAt(byte0).getTileOrIndex()), Setting.MELD_X[player.getType()] - sign(player.getType()) * byte0 * 3 * 12 - sign(player.getType()) * 12, Setting.MELD_Y[player.getType()]);
        ImgUtil.drawImage(g, getHTileImg((byte)(player.getMeldedAt(byte0).getTileOrIndex() + (player.getMeldedAt(byte0).getType() != 4 ? player.getMeldedAt(byte0).getType() != 5 ? -1 : 1 : 2))), Setting.MELD_X[player.getType()] - sign(player.getType()) * byte0 * 3 * 12 - sign(player.getType()) * 2 * 12, Setting.MELD_Y[player.getType()]);
    }

    private void drawTenForPoint(Graphics g)
    {
//        if(m_aPlayers[m_btHou].isTen())
//            ImgUtil.drawImage(g, m_iTen, Setting.TEN_X[m_aPlayers[m_btHou].getType()], Setting.TEN_Y[m_aPlayers[m_btHou].getType()]);
    }

    private void drawHouTile(Graphics g)
    {
        ImgUtil.drawImage(g, getHTileImg(m_btHou != nextPlayer() ? m_aPlayers[m_btHou].getPickedTile() : m_aPlayers[currentPlayer()].lastDiscardedTile()), Setting.PLAYER_X[m_aPlayers[m_btHou].getType()] + sign(m_aPlayers[m_btHou].getType()) * m_aPlayers[m_btHou].getInHandCount() * 12 + sign(m_aPlayers[m_btHou].getType()) * 4, Setting.PLAYER_Y[m_aPlayers[m_btHou].getType()]);
    }

    private void drawInHandForMeldChoice(Graphics g)
    {
        for(byte byte0 = 0; byte0 < m_aPlayers.length; byte0++)
        {
            byte byte1 = m_aPlayers[byte0].getType();
            for(byte byte2 = 0; byte2 < m_aPlayers[byte0].getInHandCount(); byte2++)
                ImgUtil.drawImage(g, m_aPlayers[byte0].isHuman() ? getVTileImg(m_aPlayers[byte0].getInHandTile(byte2)) : getVCoverImg(), Setting.PLAYER_X[byte1] + sign(byte1) * byte2 * 12, Setting.PLAYER_Y[byte1] - (m_aPlayers[byte0].isHuman() ? meldChoiceShift(m_aPlayers[byte0], byte2) : 0));

        }

    }

    private byte meldChoiceShift(myPlayer player, byte byte0)
    {
        int byte1 = 0;
        switch(player.currentChance().getType())
        {
        case 4: // '\004'
            byte1 = player.getInHandTile(byte0) != player.currentChance().getTileOrIndex() + 1 && player.getInHandTile(byte0) != player.currentChance().getTileOrIndex() + 2 || player.inHandPos(player.getInHandTile(byte0)) != byte0 ? 0 : 2;
            break;

        case 5: // '\005'
            byte1 = player.getInHandTile(byte0) != player.currentChance().getTileOrIndex() - 1 && player.getInHandTile(byte0) != player.currentChance().getTileOrIndex() + 1 || player.inHandPos(player.getInHandTile(byte0)) != byte0 ? 0 : 2;
            break;

        case 6: // '\006'
            byte1 = player.getInHandTile(byte0) != player.currentChance().getTileOrIndex() - 2 && player.getInHandTile(byte0) != player.currentChance().getTileOrIndex() - 1 || player.inHandPos(player.getInHandTile(byte0)) != byte0 ? 0 : 2;
            break;

        case 7: // '\007'
            byte1 = player.getInHandTile(byte0) != player.currentChance().getTileOrIndex() || byte0 - player.inHandPos(player.getInHandTile(byte0)) >= 2 ? 0 : 2;
            break;

        case 9: // '\t'
            byte1 = player.getInHandTile(byte0) != player.currentChance().getTileOrIndex() ? 0 : 2;
            break;
        }
        return (byte)byte1;
    }

    private void drawMelded(Graphics g)
    {
        for(byte byte0 = 0; byte0 < m_aPlayers.length; byte0++)
            if(m_btStatus != 13 || m_btHou == byte0)
            {
                for(byte byte1 = 0; byte1 < m_aPlayers[byte0].getMeldedCount(); byte1++)
                    switch(m_aPlayers[byte0].getMeldedAt(byte1).getType())
                    {
                    default:
                        break;

                    case 7: // '\007'
                        drawMeldedSetPong(g, m_aPlayers[byte0], byte1);
                        break;

                    case 4: // '\004'
                    case 5: // '\005'
                    case 6: // '\006'
                        drawMeldedSetChow(g, m_aPlayers[byte0], byte1);
                        break;

                    case 9: // '\t'
                        for(byte byte2 = 0; byte2 < 3; byte2++)
                            ImgUtil.drawImage(g, getHTileImg(m_aPlayers[byte0].getMeldedAt(byte1).getTileOrIndex()), Setting.MELD_X[m_aPlayers[byte0].getType()] - sign(m_aPlayers[byte0].getType()) * byte1 * 3 * 12 - sign(m_aPlayers[byte0].getType()) * byte2 * 12, Setting.MELD_Y[m_aPlayers[byte0].getType()]);

                        ImgUtil.drawImage(g, getHTileImg(m_aPlayers[byte0].getMeldedAt(byte1).getTileOrIndex()), Setting.MELD_X[m_aPlayers[byte0].getType()] - sign(m_aPlayers[byte0].getType()) * byte1 * 3 * 12 - sign(m_aPlayers[byte0].getType()) * 12, Setting.MELD_Y[m_aPlayers[byte0].getType()] - 5);
                        break;

                    case 8: // '\b'
                        for(byte byte3 = 0; byte3 < 3; byte3++)
                            ImgUtil.drawImage(g, m_btStatus != 10 && (m_btStatus != 11 && m_btStatus != 12 && m_btStatus != 13 || byte0 != m_btHou) ? getHCoverImg() : getHTileImg(m_aPlayers[byte0].getMeldedAt(byte1).getTileOrIndex()), Setting.MELD_X[m_aPlayers[byte0].getType()] - (sign(m_aPlayers[byte0].getType()) * byte1 * 3 * 12 + sign(m_aPlayers[byte0].getType()) * byte3 * 12), Setting.MELD_Y[m_aPlayers[byte0].getType()]);

                        ImgUtil.drawImage(g, !m_aPlayers[byte0].isHuman() && m_btStatus != 10 && (m_btStatus != 11 && m_btStatus != 12 && m_btStatus != 13 || byte0 != m_btHou) ? getHCoverImg() : getHTileImg(m_aPlayers[byte0].getMeldedAt(byte1).getTileOrIndex()), Setting.MELD_X[m_aPlayers[byte0].getType()] - sign(m_aPlayers[byte0].getType()) * 3 * byte1 * 12 - sign(m_aPlayers[byte0].getType()) * 12, Setting.MELD_Y[m_aPlayers[byte0].getType()] - 5);
                        break;
                    }

            }

    }

    private void drawPickedForSelfKongChoice(Graphics g)
    {
        byte byte0 = m_aPlayers[currentPlayer()].getType();
        ImgUtil.drawImage(g, getVTileImg(m_aPlayers[currentPlayer()].getPickedTile()), Setting.PLAYER_X[byte0] + sign(byte0) * m_aPlayers[currentPlayer()].getInHandCount() * 12 + sign(byte0) * 4, Setting.PLAYER_Y[byte0] - (m_aPlayers[currentPlayer()].currentChance().getType() != 0 && m_aPlayers[currentPlayer()].currentChance().getType() != 1 ? 0 : 2));
    }

    private void drawInHandForSelfKongChoice(Graphics g)
    {
        for(byte byte0 = 0; byte0 < m_aPlayers.length; byte0++)
        {
            for(byte byte1 = 0; byte1 < m_aPlayers[byte0].getInHandCount(); byte1++)
                ImgUtil.drawImage(g, m_aPlayers[byte0].isHuman() ? getVTileImg(m_aPlayers[byte0].getInHandTile(byte1)) : getVCoverImg(), Setting.PLAYER_X[m_aPlayers[byte0].getType()] + sign(m_aPlayers[byte0].getType()) * byte1 * 12, Setting.PLAYER_Y[m_aPlayers[byte0].getType()] - (m_aPlayers[byte0].isHuman() ? selfKongChoiceShift(m_aPlayers[byte0], byte1) : 0));

        }

    }

    private byte selfKongChoiceShift(myPlayer player, byte byte0)
    {
        int byte1 = 0;
        switch(player.currentChance().getType())
        {
        case 0: // '\0'
        case 2: // '\002'
            byte1 = player.getInHandTile(byte0) != player.getInHandTile(player.currentChance().getTileOrIndex()) ? 0 : 2;
            break;

        case 3: // '\003'
            byte1 = player.getInHandTile(byte0) != player.getMeldedAt(player.currentChance().getTileOrIndex()).getTileOrIndex() ? 0 : 2;
            break;
        }
        return (byte)byte1;
    }

    private void drawHead(Graphics g)
    {
        g.setColor(255,255,255);
        g.fillRect(10,10,156,150);
        g.setColor(0,0,0);
        
        byte byte0 = (byte)(m_aPlayers[m_btHou].getFanTileCount() + m_btFanCount);
        int i = byte0 != 6 && byte0 != 7 ? byte0 != 8 && byte0 != 9 ? byte0 <= 9 || byte0 >= 13 ? byte0 <= 12 || byte0 >= 17 ? byte0 <= 16 ? getPower(2, byte0) * (m_aPlayers[m_btHou].isBanker() ? 360 : '\360') : m_aPlayers[m_btHou].isBanker() ? 48000 : 32000 : m_aPlayers[m_btHou].isBanker() ? 36000 : 24000 : ((int) (m_aPlayers[m_btHou].isBanker() ? 24000 : 16000)) : ((int) (m_aPlayers[m_btHou].isBanker() ? 18000 : 12000)) : m_aPlayers[m_btHou].isBanker() ? 12000 : 8000;
        for(byte byte1 = 0; byte1 < m_aPlayers.length; byte1++)
        {
        	  if(refresh)
            m_aPlayers[byte1].calPoint((m_btHou != byte1 ? -1 : 1) * i);
            ImgUtil.drawImage(g, m_aPlayers[byte1].isHuman() ? m_iHuman : m_iHandheld, Setting.HEAD_X[m_aPlayers[byte1].getType()], Setting.HEAD_Y[m_aPlayers[byte1].getType()] + (m_aPlayers[m_btHou].isHuman() ? 0 : 40));
            ImgUtil.drawString(g, (m_btHou != byte1 ? "-" : "+") + i, Setting.HEAD_X[m_aPlayers[byte1].getType()] + 42, Setting.HEAD_Y[m_aPlayers[byte1].getType()] + 3 + (m_aPlayers[m_btHou].isHuman() ? 0 : 40));
            ImgUtil.drawString(g, "" + m_aPlayers[byte1].getPoint(), Setting.HEAD_X[m_aPlayers[byte1].getType()] + 42, Setting.HEAD_Y[m_aPlayers[byte1].getType()] + 18 + (m_aPlayers[m_btHou].isHuman() ? 0 : 40));
            m_RichRMS.put(m_aPlayers[byte1].isHuman() ? "HUMAN_POINT" : "HANDHELD_POINT", "" + m_aPlayers[byte1].getType());
        }
				refresh=false;
    }

    private int getPower(int i, int j)
    {
        return j != 0 ? getPower(i, j - 1) * i : 1;
    }

    private void drawFanTilesForPoint(Graphics g)
    {
//        Vector vector = m_Wall.getFanTiles(m_aPlayers[m_btHou].isTen());
//        for(byte byte0 = 0; byte0 < vector.size(); byte0++)
//            ImgUtil.drawImage(g, getHTileImg(((Byte)vector.elementAt(byte0)).byteValue()), Setting.FAN_TILES_X[m_aPlayers[m_btHou].getType()] + byte0 * 14, Setting.FAN_TILES_Y[m_aPlayers[m_btHou].getType()]);

        g.setColor(0, 0, 0);
//        ImgUtil.drawString(g, "X", Setting.FAN_TILES_X[m_aPlayers[m_btHou].getType()] + vector.size() * 14 + 2, Setting.FAN_TILES_Y[m_aPlayers[m_btHou].getType()] + 2);
//        ImgUtil.drawString(g, "" + m_aPlayers[m_btHou].getFanTileCount(), Setting.FAN_TILES_X[m_aPlayers[m_btHou].getType()] + (vector.size() + 1) * 14, Setting.FAN_TILES_Y[m_aPlayers[m_btHou].getType()] + 2);
//        ImgUtil.drawString(g, "+", Setting.FAN_TILES_X[m_aPlayers[m_btHou].getType()] + (vector.size() + 1) * 14 + 30, Setting.FAN_TILES_Y[m_aPlayers[m_btHou].getType()] + 2);
//        ImgUtil.drawString(g, m_btFanCount+"番", Setting.FAN_TILES_X[m_aPlayers[m_btHou].getType()] + (vector.size() + 1) * 14 + 50, Setting.FAN_TILES_Y[m_aPlayers[m_btHou].getType()] + 2);
    }

    private void drawInHandForPoint(Graphics g)
    {
        for(byte byte0 = 0; byte0 < m_aPlayers[m_btHou].getInHandCount(); byte0++)
            ImgUtil.drawImage(g, getHTileImg(m_aPlayers[m_btHou].getInHandTile(byte0)), Setting.PLAYER_X[m_aPlayers[m_btHou].getType()] + sign(m_aPlayers[m_btHou].getType()) * byte0 * 12, Setting.PLAYER_Y[m_aPlayers[m_btHou].getType()]);

    }

    private void drawFanTilesForHou(Graphics g)
    {
        byte byte0 = m_Wall.getKongCount();
        for(byte byte1 = 0; byte1 < 14; byte1++)
            //if(byte0 <= 0 || byte0 / 2 + (byte0 % 2 != 1 ? -1 : 7) != byte1)
                //ImgUtil.drawImage(g, byte1 >= 2 && (byte1 <= 2 + byte0 || byte1 >= 9) && byte1 <= 9 + byte0 && (byte1 <= 8 || byte1 >= 10 + byte0 || m_aPlayers[m_btHou].isTen()) ? getHTileImg(m_Wall.getTile(byte1 >= 7 ? (short)(134 - (byte1 - 7) * 2) : (short)(135 - byte1 * 2))) : getHCoverImg(), 46 + (byte1 % 7) * 12, 68 + (byte1 >= 2 && (byte1 <= 2 + byte0 || byte1 >= 9) && byte1 <= 9 + byte0 ? byte1 >= 7 ? 5 : -10 : (byte1 / 7) * -5));
		ImgUtil.drawImage(g, getHCoverImg(), 46 + (byte1 % 7) * 12, 68 + (byte1 / 7) * -5);
        byte byte2 = m_aPlayers[0].getType();
        ImgUtil.drawImage(g, m_iWindBase, Setting.WINDBASE_X[byte2], Setting.WINDBASE_Y[byte2]);
        ImgUtil.drawImage(g, getWindImg(m_Wall.getWind(), byte2), Setting.WINDBASE_X[byte2] + 2, Setting.WINDBASE_Y[byte2] + 2);
    }

    private void drawInHandForHou(Graphics g)
    {
        for(byte byte0 = 0; byte0 < m_aPlayers.length; byte0++)
        {
            for(byte byte1 = 0; byte1 < m_aPlayers[byte0].getInHandCount(); byte1++)
                ImgUtil.drawImage(g, byte0 != m_btHou ? m_aPlayers[byte0].isHuman() ? getVTileImg(m_aPlayers[byte0].getInHandTile(byte1)) : getVCoverImg() : getHTileImg(m_aPlayers[byte0].getInHandTile(byte1)), Setting.PLAYER_X[m_aPlayers[byte0].getType()] + sign(m_aPlayers[byte0].getType()) * byte1 * 12, Setting.PLAYER_Y[m_aPlayers[byte0].getType()]);

        }

    }

    private void drawDrew(Graphics g)
   

⌨️ 快捷键说明

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