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

📄 scorecanvas.java

📁 小手机屏幕的红心大战.rar(JAVA源码-J2EE源码)
💻 JAVA
字号:
package com.skybright.pig;

import javax.microedition.lcdui.*;


public class ScoreCanvas extends Canvas implements CommandListener
{
    private Command cmdContinue; //继续,在一局没有结束
    private Command cmdNextGame; //一局结束后,再开一局
     private Command exitCommand;
    private Duel duel;

    public ScoreCanvas(Duel d)
    {
        cmdContinue = new Command("\u7EE7\u7EED", 4, 1);
        cmdNextGame = new Command("\u518d\u62f1\u4e00\u5c40", 4, 1);
        exitCommand = new Command("\u9000\u51fa", 4, 1);
        
        duel = d;
        addCommand(cmdContinue);
         addCommand(exitCommand);
        setCommandListener(this);
    }

    public void show()
    {
        PigMiDlet.display.setCurrent(this);
    }

    public void paint(Graphics g)
    {
        g.setColor(Config.BACKGROUND[0], Config.BACKGROUND[1],
                   Config.BACKGROUND[2]);
        g.fillRect(0, 0, getWidth(), getHeight());

        if (duel == null)
        {
            return;
        }

        if (duel.getStatus() != Config.STATUS_GAMEOVER)
        {
            return;
        }else
        {
            drawTitle(g);

            // play1 win all
            if (duel.getPlayer1().getScore() == 26)
            {
                CardHand h = duel.getPlayer1();
                drawScore(g, h, Config.SCORE1[0], Config.SCORE1[1], 0);
                h = duel.getPlayer2();
                drawScore(g, h, Config.SCORE2[0], Config.SCORE2[1], 26);
                h = duel.getPlayer3();
                drawScore(g, h, Config.SCORE3[0], Config.SCORE3[1], 26);
                h = duel.getPlayer4();
                drawScore(g, h, Config.SCORE4[0], Config.SCORE4[1], 26);

                return;
            }

            //play2 win all
            if (duel.getPlayer2().getScore() == 26)
            {
                CardHand h = duel.getPlayer1();
                drawScore(g, h, Config.SCORE1[0], Config.SCORE1[1], 26);
                h = duel.getPlayer2();
                drawScore(g, h, Config.SCORE2[0], Config.SCORE2[1], 0);
                h = duel.getPlayer3();
                drawScore(g, h, Config.SCORE3[0], Config.SCORE3[1], 26);
                h = duel.getPlayer4();
                drawScore(g, h, Config.SCORE4[0], Config.SCORE4[1], 26);

                return;
            }

            //play3 win all
            if (duel.getPlayer3().getScore() == 26)
            {
                CardHand h = duel.getPlayer1();
                drawScore(g, h, Config.SCORE1[0], Config.SCORE1[1], 26);
                h = duel.getPlayer2();
                drawScore(g, h, Config.SCORE2[0], Config.SCORE2[1], 26);
                h = duel.getPlayer3();
                drawScore(g, h, Config.SCORE3[0], Config.SCORE3[1], 0);
                h = duel.getPlayer4();
                drawScore(g, h, Config.SCORE4[0], Config.SCORE4[1], 26);

                return;
            }

            //play4 win all
            if (duel.getPlayer4().getScore() == 26)
            {
                CardHand h = duel.getPlayer1();
                drawScore(g, h, Config.SCORE1[0], Config.SCORE1[1], 26);
                h = duel.getPlayer2();
                drawScore(g, h, Config.SCORE2[0], Config.SCORE2[1], 26);
                h = duel.getPlayer3();
                drawScore(g, h, Config.SCORE3[0], Config.SCORE3[1], 26);
                h = duel.getPlayer4();
                drawScore(g, h, Config.SCORE4[0], Config.SCORE4[1], 0);

                return;
            }

            CardHand h = duel.getPlayer1();
            drawScore(g, h, Config.SCORE1[0], Config.SCORE1[1]);
            h = duel.getPlayer2();
            drawScore(g, h, Config.SCORE2[0], Config.SCORE2[1]);
            h = duel.getPlayer3();
            drawScore(g, h, Config.SCORE3[0], Config.SCORE3[1]);
            h = duel.getPlayer4();
            drawScore(g, h, Config.SCORE4[0], Config.SCORE4[1]);

            return;
        }
    }

    private void drawTitle(Graphics g)
    {
        String t = "\u5f97\u5206: \u672c\u5c45\u5f97\u5206/\u603b\u5206";

        String n = duel.getScore().whoOver();

        if (n == null)
        {
           g.setColor(Config.FONT_COLOR);

            g.drawString(t, 40, 3, 20);

            return;
        }else
        {
            g.setColor(Config.FONT_COLOR);

            t = String.valueOf(String.valueOf(n))
                      .concat("\u5931\u8D25\uFF0C\u6E38\u620F\u7ED3\u675F\uFF01");
            g.drawString(t, 40, 3, 20);


            //更换标签按钮
            addCommand(cmdNextGame);
            removeCommand(cmdContinue);
            setCommandListener(this);

            return;
        }
    }

    /**
     * 原来程序中CardHand getScore没有考虑到全收后,应该显示0,而不是26
     * @param g
     * @param h
     * @param x1
     * @param y1
     * @param curScore 实际的分数
     */
    private void drawScore(Graphics g, CardHand h, int x1, int y1, int curScore)
    {
      g.setColor(Config.FONT_COLOR);



        //add pic
        g.drawString(String.valueOf(String.valueOf(h.getName())).concat(":"),
                     x1, y1, 20);

        //  g.drawImage(h.getHeader(), x1, y1, 20);
        Card[] cards = h.getScoreCards();
        int x = x1 + 30;
        int y = y1;

        for (int i = 0; i < cards.length; i++)
        {
            if (cards[i] != null)
            {
                g.drawImage(cards[i].getImage(), x, y, 20);
                x += 8;
            }
        }


        //   int i=h.getScore();
     g.setColor(Config.FONT_COLOR);

        g.drawString(String.valueOf(String.valueOf((new StringBuffer("")).append(
                                                           curScore)
                                                                         .append("/")
                                                                         .append(duel.getScore(
                                                                                         h.getName())))),
                     x + 7, y, 20);
    }

    private void drawScore(Graphics g, CardHand h, int x1, int y1)
    {
      g.setColor(Config.FONT_COLOR);



        //add pic
        g.drawString(String.valueOf(String.valueOf(h.getName())).concat(":"),
                     x1, y1, 20);

        //  g.drawImage(h.getHeader(), x1, y1, 20);
        Card[] cards = h.getScoreCards();
        int x = x1 + 30;
        int y = y1;

        for (int i = 0; i < cards.length; i++)
        {
            if (cards[i] != null)
            {
                g.drawImage(cards[i].getImage(), x, y, 20);
                x += 8;
            }
        }
g.setColor(Config.FONT_COLOR);

        g.drawString(String.valueOf(String.valueOf((new StringBuffer("")).append(
                                                           h.getScore())
                                                                         .append("/")
                                                                         .append(duel.getScore(
                                                                                         h.getName())))),
                     x + 7, y, 20);
    }

    public void commandAction(Command c, Displayable p)
    {
        //  String n = duel.getScore().whoOver();
        //   if (n == null) //如果一局没有结束
        //  {
        if (c == cmdContinue)
        {
            duel.nextMatch();
        }else if (c == cmdNextGame)
        {
            //add cmdContinue
            addCommand(cmdContinue);          
            //remove next game cmd
            removeCommand(cmdNextGame);
            setCommandListener(this);

            duel.nextMatch();
        }else if (c == exitCommand)
        {
        	 duel.quit();
         // PigMiDlet.display.setCurrent(null);
        }

        //  }else  //如果结束了
        //  {
        // }
    }
}

⌨️ 快捷键说明

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