📄 setupcanvas.java
字号:
import javax.microedition.lcdui.*;
import javax.microedition.lcdui.game.GameCanvas;
import java.io.*;
public class SetupCanvas extends GameCanvas implements Runnable
{
private MainSelect mainSelect = null;
//画布变量部分
private int[][] chess = null;
private int m,n,y,x, dm, dn, dy, dx, d;
private String str[] = null;
private final int WIDTH,HEIGHT,width,height,hy,vx,bandLength,charHeight,vLocation;
private int k;
private Graphics g = null;
private boolean stop = false;
//系统设置变量部分
//背景色彩
private int bgColorR = 0, bgColorG = 0, bgColorB = 0;
//棋盘色彩
private int chessColorR = 0, chessColorG = 0, chessColorB = 0;
//楚河汉界色彩
private int riverColorR = 0, riverColorG = 0, riverColorB = 0;
//计时器色彩
private int timeColorR = 0, timeColorG = 0, timeColorB = 0;
//我方棋子色彩
private int myColorR = 0, myColorG = 0, myColorB = 0;
//对方棋子色彩
private int yourColorR = 0, yourColorG = 0, yourColorB = 0;
//字符色彩
private int fontColorR = 0, fontColorG = 0, fontColorB = 0;
//我方棋子选择后的色彩
private int selectedColorR = 0, selectedColorG = 0, selectedColorB = 0;
//选择框的色彩
private int selectColorR = 0, selectColorG = 0, selectColorB = 0;
//休眠时间,如果反应太快的话,可以手动增加它的值
private int sleepTime = 0;
//每次变化量
private final int ColorNumber;
private int which = 0;
private SetupRecord record = null;
private Setup setup = null;
private int[][] setupData = null;
public SetupCanvas(MainSelect ms, int which, int sleepTime, int colorNumber)
{
super(true);
mainSelect = ms;
this.which = which;
this.sleepTime = sleepTime;
ColorNumber = colorNumber;
//画布变量初始化
setFullScreenMode(true);
WIDTH=getWidth();
HEIGHT=getHeight();
width=WIDTH/10;
Font f = Font.getDefaultFont();
charHeight = f.getHeight();
height=(HEIGHT - 2*charHeight)/10;
hy = (HEIGHT - 9 * height)/2;
vx = (WIDTH - 8 * width)/2;
bandLength = Math.min(width ,height);
vLocation = vx + width * 4;
g=getGraphics();
//初始化象棋字符
str=new String[33];
str[0]="将";
str[1]="兵";
str[2]="兵";
str[3]="兵";
str[4]="兵";
str[5]="兵";
str[6]="炮";
str[7]="炮";
str[8]="车";
str[9]="车";
str[10]="马";
str[11]="马";
str[12]="相";
str[13]="相";
str[14]="士";
str[15]="士";
str[16]="帅";
str[17]="卒";
str[18]="卒";
str[19]="卒";
str[20]="卒";
str[21]="卒";
str[22]="炮";
str[23]="炮";
str[24]="车";
str[25]="车";
str[26]="马";
str[27]="马";
str[28]="象";
str[29]="象";
str[30]="仕";
str[31]="仕";
str[32]="";
initServer();
}
private void initServer()
{
chess=new int[10][9];
chess[0][0]=8;
chess[0][1]=10;
chess[0][2]=12;
chess[0][3]=14;
chess[0][4]=0;
chess[0][5]=15;
chess[0][6]=13;
chess[0][7]=11;
chess[0][8]=9;
for(int i=0;i<9;i++)
chess[1][i]=32;
chess[2][0]=32;
chess[2][1]=6;
chess[2][2]=32;
chess[2][3]=32;
chess[2][4]=32;
chess[2][5]=32;
chess[2][6]=32;
chess[2][7]=7;
chess[2][8]=32;
chess[3][0]=1;
chess[3][1]=32;
chess[3][2]=2;
chess[3][3]=32;
chess[3][4]=3;
chess[3][5]=32;
chess[3][6]=4;
chess[3][7]=32;
chess[3][8]=5;
for(int i=0;i<9;i++)
chess[4][i]=32;
for(int i=0;i<9;i++)
chess[5][i]=32;
chess[6][0]=21;
chess[6][1]=32;
chess[6][2]=20;
chess[6][3]=32;
chess[6][4]=19;
chess[6][5]=32;
chess[6][6]=18;
chess[6][7]=32;
chess[6][8]=17;
chess[7][0]=32;
chess[7][1]=23;
chess[7][2]=32;
chess[7][3]=32;
chess[7][4]=32;
chess[7][5]=32;
chess[7][6]=32;
chess[7][7]=22;
chess[7][8]=32;
for(int i=0;i<9;i++)
chess[8][i]=32;
chess[9][0]=25;
chess[9][1]=27;
chess[9][2]=29;
chess[9][3]=31;
chess[9][4]=16;
chess[9][5]=30;
chess[9][6]=28;
chess[9][7]=26;
chess[9][8]=24;
getUserSetup();
//********开启绘制线程
new Thread(this).start();
}
private void getUserSetup()
{
record = new SetupRecord();
setup = record.getUserSetup();
setupData = setup.getCanvas();
bgColorR = setupData[0][0];
bgColorG = setupData[0][1];
bgColorB = setupData[0][2];
chessColorR = setupData[1][0];
chessColorG = setupData[1][1];
chessColorB = setupData[1][2];
riverColorR = setupData[2][0];
riverColorG = setupData[2][1];
riverColorB = setupData[2][2];
timeColorR = setupData[3][0];
timeColorG = setupData[3][1];
timeColorB = setupData[3][2];
myColorR = setupData[4][0];
myColorG = setupData[4][1];
myColorB = setupData[4][2];
yourColorR = setupData[5][0];
yourColorG = setupData[5][1];
yourColorB = setupData[5][2];
fontColorR = setupData[6][0];
fontColorG = setupData[6][1];
fontColorB = setupData[6][2];
selectedColorR = setupData[7][0];
selectedColorG = setupData[7][1];
selectedColorB = setupData[7][2];
selectColorR = setupData[8][0];
selectColorG = setupData[8][1];
selectColorB = setupData[8][2];
}
private void setChance()
{
setupData[0][0] = bgColorR;
setupData[0][1] = bgColorG;
setupData[0][2] = bgColorB;
setupData[1][0] = chessColorR;
setupData[1][1] = chessColorG;
setupData[1][2] = chessColorB;
setupData[2][0] = riverColorR;
setupData[2][1] = riverColorG;
setupData[2][2] = riverColorB;
setupData[3][0] = timeColorR;
setupData[3][1] = timeColorG;
setupData[3][2] = timeColorB;
setupData[4][0] = myColorR;
setupData[4][1] = myColorG;
setupData[4][2] = myColorB;
setupData[5][0] = yourColorR;
setupData[5][1] = yourColorG;
setupData[5][2] = yourColorB;
setupData[6][0] = fontColorR;
setupData[6][1] = fontColorG;
setupData[6][2] = fontColorB;
setupData[7][0] = selectedColorR;
setupData[7][1] = selectedColorG;
setupData[7][2] = selectedColorB;
setupData[8][0] = selectColorR;
setupData[8][1] = selectColorG;
setupData[8][2] = selectColorB;
setup.setCanvas(setupData);
setup.setSleepTime(sleepTime);
record.modifySetup(setup);
record.closeSetupRecord();
}
public void run()
{
//System.out.println("进入画布绘制线程");
while(!stop)
{
long startTime = System.currentTimeMillis();
//***********************键响应
int keyState=getKeyStates();
if((keyState&GameCanvas.UP_PRESSED)!=0)
{
if(which == 0)
{
bgColorR = bgColorR + ColorNumber;
if(bgColorR >255)
{
bgColorR = 255;
}
}
if(which == 1)
{
chessColorR = chessColorR + ColorNumber;
if(chessColorR >255)
{
chessColorR = 255;
}
}
if(which == 2)
{
riverColorR = riverColorR + ColorNumber;
if(riverColorR >255)
{
riverColorR = 255;
}
}
if(which == 3)
{
timeColorR = timeColorR + ColorNumber;
if(timeColorR >255)
{
timeColorR = 255;
}
}
if(which == 4)
{
myColorR = myColorR + ColorNumber;
if(myColorR >255)
{
myColorR = 255;
}
}
if(which == 5)
{
yourColorR = yourColorR + ColorNumber;
if(yourColorR >255)
{
yourColorR = 255;
}
}
if(which == 6)
{
fontColorR = fontColorR + ColorNumber;
if(fontColorR >255)
{
fontColorR = 255;
}
}
if(which == 7)
{
selectedColorR = selectedColorR + ColorNumber;
if(selectedColorR >255)
{
selectedColorR = 255;
}
}
if(which == 8)
{
selectColorR = selectColorR + ColorNumber;
if(selectColorR >255)
{
selectColorR = 255;
}
}
}
if((keyState&GameCanvas.DOWN_PRESSED)!=0)
{
if(which == 0)
{
bgColorR = bgColorR - ColorNumber;
if(bgColorR < 0)
{
bgColorR = 0;
}
}
if(which == 1)
{
chessColorR = chessColorR - ColorNumber;
if(chessColorR < 0)
{
chessColorR = 0;
}
}
if(which == 2)
{
riverColorR = riverColorR - ColorNumber;
if(riverColorR < 0)
{
riverColorR = 0;
}
}
if(which == 3)
{
timeColorR = timeColorR - ColorNumber;
if(timeColorR < 0)
{
timeColorR = 0;
}
}
if(which == 4)
{
myColorR = myColorR - ColorNumber;
if(myColorR < 0)
{
myColorR = 0;
}
}
if(which == 5)
{
yourColorR = yourColorR - ColorNumber;
if(yourColorR < 0)
{
yourColorR = 0;
}
}
if(which == 6)
{
fontColorR = fontColorR - ColorNumber;
if(fontColorR < 0)
{
fontColorR = 0;
}
}
if(which == 7)
{
selectedColorR = selectedColorR - ColorNumber;
if(selectedColorR < 0)
{
selectedColorR = 0;
}
}
if(which == 8)
{
selectColorR = selectColorR - ColorNumber;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -