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

📄 tablecanvas.java

📁 一款麻将游戏的J2me源代码
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
    	try
    	{
        m_aPlayers[currentPlayer()].chooseDiscard();
        m_Timer = new Timer();
        Thread.sleep(450L);
        (new TableTask(this,(byte)8)).start();        
        //m_Timer.schedule(new TableTask(this, (byte)8), 450L);
  		}
  		catch(Exception e)
  		{
  		}
    }

    public boolean handheldChooseDiscard()
    {
        if(m_aPlayers[currentPlayer()].getGoalPos() == m_aPlayers[currentPlayer()].getDiscardPos())
            return false;
        if(m_aPlayers[currentPlayer()].isHuman() && m_aPlayers[currentPlayer()].getGoalPos() < m_aPlayers[currentPlayer()].getInHandCount() / 2 + 1 || !m_aPlayers[currentPlayer()].isHuman() && m_aPlayers[currentPlayer()].getGoalPos() > m_aPlayers[currentPlayer()].getInHandCount() / 2)
            m_aPlayers[currentPlayer()].leftDiscardPos();
        else
            m_aPlayers[currentPlayer()].rightDiscardPos();
        repaint();
        return true;
    }

    private void gotSelfKongChance()
    {
    	try
    	{
        if(m_aPlayers[currentPlayer()].isHuman())
        {
            humanGotSelfKongChance();
        } else
        {
            m_Timer = new Timer();
        Thread.sleep(450L);
        (new TableTask(this,(byte)16)).start();            
            //m_Timer.schedule(new TableTask(this, (byte)16), 450L);
        }
      }
      catch(Exception e)
      {
      }
    }

    private void humanGotSelfKongChance()
    {
        m_btStatus = 14;
        m_Timer = new Timer();
        m_btHint = 0;
        m_Timer.schedule(new HintTask(this), 450L, 450L);
    }

    private void gotSelfHouChance()
    {
    	try
    	{
        if(m_aPlayers[currentPlayer()].isHuman())//如果当前是玩家
        {
            humanGotSelfHouChance();
        } else
        {
            m_Timer = new Timer();
        Thread.sleep(450L);
        (new TableTask(this,(byte)11)).start();            
            //m_Timer.schedule(new TableTask(this, (byte)11), 450L);
        }
      }
      catch(Exception e)
      {
      }
    }

    private void humanGotSelfHouChance()
    {
        m_btStatus = 6;
        m_Timer = new Timer();
        m_btHint = 0;
        m_Timer.schedule(new HintTask(this), 450L, 450L);
    }

    public void sortInHand()
    {
        m_btStatus = 4;
        for(byte byte0 = 0; byte0 < m_aPlayers.length; byte0++)
            m_aPlayers[byte0].sortInHand();

        repaint();
    }

    public byte lastDealing()
    {
        m_btStatus = 3;
        m_aPlayers[++m_btTurn % 2].setLastDealtTile(m_Wall.nextTile());
        
        repaint();
        if(currentPlayer() != 1) return 3;
        return 4;
    }

    public byte dealing()
    {
        m_btStatus = 2;
        m_aPlayers[++m_btTurn % 2].setDealtTiles(m_Wall.deal());
       
        repaint();
        int result;
        if(currentPlayer() != 1 || m_aPlayers[currentPlayer()].getInHandCount() != 12)
        return 2;
        return 3;
    }

    public void initLayout()
    {
        m_btStatus = 1;
        repaint();
    }

    public void paint(Graphics g)
    {
    	////System.out.println(Runtime.getRuntime().totalMemory()-Runtime.getRuntime().freeMemory());
    	////System.gc(); 	
    	  //System.out.println("status"+m_btStatus);
        Graphics g1 = m_iBuffer.getGraphics();
        System.out.println(m_btStatus);
        g1.setColor(94, 169, 95);
        g1.fillRect(0, 0, getWidth(), getHeight());
        g1.drawImage(m_table,45,40,0);
         
        switch(m_btStatus)
        {
        case 8: // '\b'
        case 16: // '\020'
        case 18: // '\022'
        default:
            break;

        case 1: // '\001'
            drawBasicLayout(g1);
            break;

        case 2: // '\002'
        case 3: // '\003'
        case 4: // '\004'
            drawBasicLayout(g1);
            drawInHand(g1);
            break;

        case 5: // '\005'
            drawBasicLayout(g1);
            drawInHand(g1);
            drawMelded(g1);
            drawDiscarded(g1);
            drawPicked(g1);
            drawTen(g1);
            break;

        case 6: // '\006'和牌
            drawBasicLayout(g1);
            drawInHand(g1);
            drawMelded(g1);
            drawDiscarded(g1);
            drawTen(g1);
            if(m_btHint == 0)
                drawPicked(g1);
            else
                drawCup(g1);
            break;

        case 7: // '\007'
            drawBasicLayout(g1);
            drawInHand(g1);
            drawMelded(g1);
            drawDiscarded(g1);
            drawTen(g1);
            break;

        case 9: // '\t'
            drawBasicLayout(g1);
            drawInHand(g1);
            drawMelded(g1);
            drawDiscarded(g1);
            drawPicked(g1);
            drawTen(g1);
            break;

        case 10: // '\n'
            drawBasicLayout(g1);
            drawDrew(g1);
            drawMelded(g1);
            drawDiscarded(g1);
            drawTen(g1);
            drawDraw(g1);
            break;

        case 11: // '\013'
            drawBasicLayout(g1);
            drawInHandForHou(g1);
            drawMelded(g1);
            drawDiscarded(g1);
            drawTen(g1);
            drawHouTile(g1);
            break;

        case 12: // '\f'
        		refresh=true;
            drawFanTilesForHou(g1);
            drawInHandForHou(g1);
            drawMelded(g1);
            drawTen(g1);
            drawHouTile(g1);     
            g1.setClip(0,0,176,208);
            g1.drawString("暂停",0,getHeight()-20,0);      
            break;

        case 13: // '\r'
            drawInHandForPoint(g1);
            drawMelded(g1);
            drawTenForPoint(g1);
            drawHouTile(g1);
            drawFanTilesForPoint(g1);
            drawHead(g1);    
            g1.setClip(0,0,176,208);
            g1.drawString("暂停",0,getHeight()-20,0);                         
            break;

        case 14: // '\016'
            drawBasicLayout(g1);
            drawInHand(g1);
            drawMelded(g1);
            drawDiscarded(g1);
            drawTen(g1);
            if(m_btHint == 0)
                drawPicked(g1);
            else
                drawArrow(g1);
            break;

        case 15: // '\017'
            drawBasicLayout(g1);
            drawInHandForSelfKongChoice(g1);
            drawMeldedForSelfKongChoice(g1);
            drawDiscarded(g1);
            drawPickedForSelfKongChoice(g1);
            break;

        case 17: // '\021'
            drawBasicLayout(g1);
            drawInHand(g1);
            drawMelded(g1);
            drawDiscarded(g1);
            drawTen(g1);
            drawMeldedArrow(g1);
            break;

        case 19: // '\023'
            drawBasicLayout(g1);
            drawInHandForMeldChoice(g1);
            drawMelded(g1);
            drawTen(g1);
            drawDiscarded(g1);
            break;

        case 20: // '\024'和牌
            drawBasicLayout(g1);
            drawInHand(g1);
            drawMelded(g1);
            drawTen(g1);
            drawDiscarded(g1);
            drawCup(g1);
            break;

        case 21: // '\025'
            drawBasicLayout(g1);
            drawInHandForHou(g1);
            drawMelded(g1);
            drawTen(g1);
            drawDiscarded(g1);
            drawHouTile(g1);
            break;
        }
        g1=null;
        ImgUtil.drawImage(g, m_iBuffer, 0, 0);
//        g.setColor(0xffffff);
//        g.drawString(String.valueOf(Runtime.getRuntime().freeMemory()),0,0,0);
        switch(m_btStatus)
        {
        	case 10:
        	case 6:
        	case 20:
                g.setColor(0xffffff);
                g.drawString("按OK键或5键继续",getWidth()/2,getHeight()-30,17);
                break;

⌨️ 快捷键说明

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