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

📄 cardcanvas.java

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

import java.io.PrintStream;

import java.util.Vector;

import javax.microedition.lcdui.*;


public class CardCanvas extends Canvas implements CommandListener
{
    private Command restartCommand;
    private Command newCommand;
    private Command helpCommand;
    private Command aboutCommand;
    private Command exitCommand;
    private Duel duel;
    private Image cardback;
    private Image logo;

    public CardCanvas(Duel d)
    {
        restartCommand = new Command("\u53d1\u724c", Command.SCREEN, 1); //4

        newCommand = new Command("\u91cd\u65b0\u5f00\u5c40", Command.SCREEN, 1); //5
        helpCommand = new Command("\u73A9\u6CD5\u5E2E\u52A9", Command.HELP, 1); //5
        aboutCommand = new Command("\u5173\u4E8E", Command.HELP, 1); //5
        exitCommand = new Command("\u9000\u51fa", Command.EXIT, 1);

        addCommand(restartCommand);
        addCommand(newCommand);
        addCommand(helpCommand);
        addCommand(aboutCommand);
        addCommand(exitCommand);

        setCommandListener(this);
        duel = d;
    }

    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;
        }

        //load logo picture
        if (duel.getStatus() == Config.STATUS_LOGO)
        {
            drawStart(g);

            return;
        }

        //destory logo and load pig picture
        if (duel.getStatus() == Config.STATUS_NEW)
        {
            //destrory logo resource
            destoryLogo();


            //load pig picture
            drawPig(g);

            return;
        }

        if (duel.getStatus() != Config.STATUS_RUN)
        {
            return;
        }else
        {
            drawP1(g, duel);
            drawP2(g, duel);
            drawP3(g, duel);
            drawP4(g, duel);
            drawCardsRound(g);

            return;
        }
    }

    /**
     * 重新开一局,把原来的成绩清空
     */
    public void duelNewStart()
    {
        duel.restart();
        repaint();
    }

    /**
     * 仅仅是重新发牌,换牌
     */
    public void duelStart()
    {
        duel.start();
        repaint();
    }

    protected void keyPressed(int keyCode)
    {
        if (duel == null)
        {
            return;
        }

        if (duel.whoseTurn() != 0)
        {
            return;
        }

        switch (getGameAction(keyCode))
        {
        case 3: // '\003'
        case 4: // '\004'
        case 7: // '\007'
        default:
            break;

        case 1: // '\001'
        case 2: // '\002'

            if (duel.getSelectIndex() == 0)
            {
                return;
            }

            if (duel.getSelectIndex() < 0)
            {
                duel.setSelectIndex(0);
            }else
            {
                duel.setSelectIndex(duel.getSelectIndex() - 1);
            }

            repaint();

            break;

        case 5: // '\005'
        case 6: // '\006'

            if (duel.getSelectIndex() == (duel.getPlayer1().left() - 1))
            {
                return;
            }

            if (duel.getSelectIndex() < 0)
            {
                duel.setSelectIndex(0);
            }else
            {
                duel.setSelectIndex(duel.getSelectIndex() + 1);
            }

            repaint();

            break;

        case 8: // '\b'
            duel.deal();

            break;
        }
    }

    /**
     * down user
     * @param g
     * @param d
     */
    private void drawP1(Graphics g, Duel d)
    {
        int x = Config.P1_CARD[0];
        int y = Config.P1_CARD[1];

        try
        {
            Card[] cs = d.getPlayer1().getCards();
            int n = 0;

            for (int i = 0; i < cs.length; i++)
            {
                if (cs[i] != null)
                {
                    int y2 = y;

                    if (n == d.getSelectIndex())
                    {
                        y2 -= 8;
                    }

                    g.drawImage(cs[i].getImage(), x, y2, 20);
                    x += 10;
                    n++;
                }
            }
        }catch (Exception e)
        {
            e.printStackTrace();
        }

        try
        {
            //white
            g.setColor(Config.FONT_COLOR);
            //add pic
            //    g.drawString(d.getPlayer1().getName(), Config.P1_NAME[0],Config.P1_NAME[1], 20);
            //show score
            g.drawString(String.valueOf(String.valueOf(
                                                (new StringBuffer("")).append(
                                                        d.getPlayer1()
                                                         .getName())
                                                                      .append(":")
                                                                      .append(duel.getScore(
                                                                                      d.getPlayer1()
                                                                                       .getName())))),
                         Config.P1_NAME[0], Config.P1_NAME[1], 20);

            // g.drawImage(d.getPlayer1().getHeader(), Config.P1_NAME[0],                         Config.P1_NAME[1], 20);
        }catch (Exception e)
        {
            e.printStackTrace();
        }
    }

    /**
     * left user
     * @param g
     * @param d
     */
    private void drawP2(Graphics g, Duel d)
    {
        /*  int x = Config.P2_CARD[0];
          int y = Config.P2_CARD[1];

          try
          {
              Card[] cs = d.getPlayer2().getCards();

              for (int i = 0; i < cs.length; i++)
              {
                  if (cs[i] != null)
                  {
                      g.drawImage(getCardBack(), x, y, 20);
                      y += 3;
                  }
              }
          }catch (Exception e)
          {
              e.printStackTrace();
          }
         */
        try
        {
          //white
            g.setColor(Config.FONT_COLOR);

            //add pic
            g.drawString(String.valueOf(String.valueOf(
                                                (new StringBuffer("")).append(

⌨️ 快捷键说明

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