📄 cardcanvas.java
字号:
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 + -