📄 penguinscreen.java
字号:
netTimeOut = 0;
}
break;
case NETERROR:
//设置网络错误界面,超时则退回到菜单界面
errorTimeOut += aTimeTick;
if (errorTimeOut > 30000) {
UpdateState(MENU);
errorTimeOut = 0;
}
break;
case END:
//退出时保存数据
saveRecord();
gameMIDlet.quitApp();
return;
//Pause
case PAUSE:
break;
}
//subCheck(subList,sptList);
//重新渲染
repaint();
serviceRepaints();
}
/**
* 渲染
* @param g 图形设备句柄
*/
protected void paint(Graphics g) {
try {
Graphics tempSaved = g;
switch (state) {
case COPYRIGHT:
if (bStateMapEntry) {
bStateMapEntry = false;
g.setColor(255, 255, 255);
g.fillRect(0, 0, getWidth(), getHeight());
g.setColor(255, 255, 255);
drawImageEx(g, mapImage, 12, 41, 0, 0, 103, 45);
}
break;
case INPUT:
g.setColor(0, 0, 0);
g.fillRect(0, 0, getWidth(), getHeight());
drawImageEx(g, mapImage, 11, 36, 121, 112, 107, 11); //text
drawImageEx(g, mapImage, 11, 50, 62, 112, 59, 11); //text
drawImageEx(g, mapImage, 33, 66, 135, 73, 63, 39); //alpha table
drawNum(g, 52, 25, 128, 186, ActualScore);
//Hu hai qing Add
//倒计时
drawImageEx(g, mapImage, 33, 9, 212, 93, 37, 11);
drawNum1(g, 77, 7, RemainSecond);
//Check Return Keys
boolean exist = false;
for (int i = 0; i < namelen[order]; i++) {
if (name[order][i] == 27) {
//用户输入回车键,更新到上传界面
UpdateState(UPLOAD);
newsreel[order] = ActualScore;
exist = true;
}
}
if (exist) {
namelen[order]--;
break;
}
for (int i = 0; i < namelen[order]; i++) {
if (name[order][i] == 26) {
//退格键处理
if (i == 0) {
namelen[order]--;
}
else {
namelen[order] = namelen[order] - 2;
}
}
}
if (namelen[order] > 4) {
//用户输入超长,则替换最后一个字符
name[order][3] = name[order][4];
namelen[order] = 4;
}
//hu hai qing end
for (int i = 0; i < namelen[order]; i++) {
//根据字母表画出名字
if (name[order][i] >= 21) {
drawImageEx(g, mapImage, 78 + i * 9, 52,
135 + ( (name[order][i]) % 7) * 9,
73 + 10 * (name[order][i] / 7), 9, 9);
}
else {
drawImageEx(g, mapImage, 78 + i * 9, 52,
135 + ( (name[order][i]) % 7) * 9,
73 + 10 * (name[order][i] / 7), 9, 10);
}
}
g.setClip(0, 0, getWidth(), getHeight());
g.setColor(255, 0, 0);
//Hu hai qing Add
if (namelen[order] == 4 && FireKey) {
currentLetter = 27;
//选中哪个字母,那个字母会被框圈住,画一个框出来
g.drawRect(33 + (currentLetter % 7) * 9,
66 + 10 * (currentLetter / 7), 8, 9);
}
else {
g.drawRect(33 + (currentLetter % 7) * 9,
66 + 10 * (currentLetter / 7), 8, 9);
}
//Hu hai qing end
break;
case DEMO:
if (bStateMapEntry) {
bStateMapEntry = false;
}
break;
case LINK:
if (bStateMapEntry) {
drawImageEx(g, mapImage, 0, 0, getWidth() * nowLinkPage,
0, getWidth(),
getHeight()); //TITLE
bStateMapEntry = false;
}
break;
case HELP:
//利用菜单类里头的坐标画出菜单
if (bStateMapEntry) {
g.setColor(0, 0, 0);
g.fillRect(0, 0, getWidth(), getHeight());
drawImageEx(g, mapImage, 36, 11, 0, 56, 56, 14); //TITLE
drawImageEx(g, mapImage, 24, 35, 185, 0, 70, 71); //HELP
drawImageEx(g, mapImage, 30, 109, 95, 141, 70, 17); //OK
bStateMapEntry = false;
}
break;
case MENU:
if (bStateMapEntry) {
drawImageEx(g, mapImage, 0, 0, 0, 0, getWidth(),
getHeight());
drawImageEx(g, mapImage, 0, 0, 56, 18, 128, 55);
drawImageEx(g, mapImage, 0, 55, 0, 178, 128, 45);
drawImageEx(g, mapImage, 0, 100, 128, 195, 128, 28);
drawImageEx(g, mapImage, 59, 52, 213, 81, 10, 6);
drawImageEx(g, mapImage, 59, 110, 213, 87, 10, 6);
drawImageEx(g, mapImage, 20 ,115 ,166, 139, 80, 12);//@2004Bangbang
mainMenu.paint(g, mapImage);
bStateMapEntry = false;
}
break;
case OPTION:
curFrame = 0;
g.setColor(0, 0, 0);
g.fillRect(0, 0, getWidth(), getHeight());
drawImageEx(g, mapImage, 36, 13, 0, 28, 56, 14); //TITLE
drawImageEx(g, mapImage, 30, 109, 95, 141, 70, 17); //OK
drawImageEx(g, mapImage, 15, 40, 48 * (1 - optionSelect),
127, 47, 11); //text of option
drawImageEx(g, mapImage, 77, 40,
24 * (1 - optionMenu[0]) +
48 * (1 - optionSelect), 155, 23, 11); //open/close
drawImageEx(g, mapImage, 15, 68, 48 * optionSelect, 141,
23, 11); //text
drawImageEx(g, mapImage, 77, 68,
24 * (1 - optionMenu[1]) + 48 * optionSelect,
155, 23, 11); //open/close
if (optionSelect == 0) {
drawImageEx(g, mapImage, 67, 42, 212, 71, 5, 9); //Left arrow
drawImageEx(g, mapImage, 106, 42, 222, 71, 5, 9); //Right arrow
}
else {
drawImageEx(g, mapImage, 67, 70, 212, 71, 5, 9); //Left arrow
drawImageEx(g, mapImage, 106, 70, 222, 71, 5, 9); //Right arrow
}
break;
case DEMOLOCAL:
case LOCAL:
g.setColor(0, 0, 0);
g.fillRect(0, 0, getWidth(), getHeight());
drawImageEx(g, mapImage, 13, 31, 0, 167, 23, 11); //order
drawImageEx(g, mapImage, 50, 31, 24, 167, 23, 11); //name
drawImageEx(g, mapImage, 88, 31, 48, 167, 23, 11); //score
drawImageEx(g, mapImage, 29, 109, 95, 141, 70, 17); //OK
drawImageEx(g, mapImage, 36, 11, 0, 98, 56, 14); //TITLE
for (int i = 0; i < 5; i++) {
int YY = 48 + i * 12;
int digit = 0;
for (int result = newsreel[i] / 10; result != 0;
result /= 10) {
digit++;
}
//Zxhred mod
//增加了if (order == i)的判断,在退到菜单状态时order == -1
if (order == i) {
drawNum(g, 16, YY, 128, 178, i + 1);
drawNum(g, 105 - digit * 5, YY, 128, 178,
newsreel[i]);
}
else {
drawNum(g, 16, YY, 128, 186, i + 1);
drawNum(g, 105 - digit * 5, YY, 128, 186,
newsreel[i]);
}
if (namelen[i] == 0) {
for (int j = 0; j < 4; j++) {
drawImageEx(g, mapImage, 45 + j * 10, YY, 124,
103,
9, 9); //画....
}
}
else {
if (order == i) {
for (int j = 0; j < namelen[i]; j++) {
if (name[i][j] >= 21) {
drawImageEx(g, mapImage, 45 + j * 9, YY,
62 +
( (name[i][j] % 7)) * 9,
73 + 10 * (name[i][j] / 7),
9, 9);
}
else {
drawImageEx(g, mapImage, 45 + j * 9, YY,
62 +
( (name[i][j] % 7)) * 9,
73 + 10 * (name[i][j] / 7),
9, 10);
}
}
}
else {
for (int j = 0; j < namelen[i]; j++) {
if (name[i][j] >= 21) {
drawImageEx(g, mapImage, 45 + j * 9, YY,
135 +
( (name[i][j]) % 7) * 9,
73 + 10 * (name[i][j] / 7),
9, 9);
}
else {
drawImageEx(g, mapImage, 45 + j * 9, YY,
135 +
( (name[i][j]) % 7) * 9,
73 + 10 * (name[i][j] / 7),
9, 10);
}
}
}
}
}
if (bShowOK) {
drawImageEx(g, mapImage, 24, 58, 165, 124, 80, 14);
}
//Zxhred end
break;
case UPLOAD:
if (bStateMapEntry) {
bStateMapEntry = false;
drawImageEx(g, mapImage, 9, 37, 0, 26, 111, 54); //黄底
uploadMenu.paint(g, mapImage);
}
break;
case NET:
case SCOREUPLOAD:
drawImageEx(g, mapImage, 2, 98, 0, 0, 123, 22);
drawImageEx(g, mapImage, paintLoadPos + 2, 115, 0, 22, 27,
4);
break;
case NETERROR:
g.setColor(255, 255, 255);
g.fillRect(0, 0, getWidth(), getHeight());
g.setColor(0, 0, 0);
String strErr = new String("Connection Error");
drawStringEx(g, strErr, 10, 60, 120, 30);
break;
case NETDISP:
//画出网络排名的分数,姓名和名次
g.setColor(0, 0, 0);
g.fillRect(0, 0, getWidth(), getHeight());
drawImageEx(g, mapImage, 13, 31, 0, 167, 23, 11); //order
drawImageEx(g, mapImage, 50, 31, 24, 167, 23, 11); //name
drawImageEx(g, mapImage, 88, 31, 48, 167, 23, 11); //score
drawImageEx(g, mapImage, 29, 109, 95, 141, 70, 17); //OK
drawImageEx(g, mapImage, 36, 11, 0, 112, 56, 14); //TITLE
for (int i = 0; i < 5; i++) {
int YY = 48 + i * 12;
int digit = 0;
for (int result = netScore[i] / 10; result != 0;
result /= 10) {
digit++;
}
//Zxhred mod
if (posInHttpData == i + 1) {
//自身名次高亮显示
drawNum(g, 16, YY, 128, 178, netOrder[i]);
drawNum(g, 105 - digit * 5, YY, 128, 178,
netScore[i]);
}
else {
drawNum(g, 16, YY, 128, 186, netOrder[i]);
drawNum(g, 105 - digit * 5, YY, 128, 186,
netScore[i]);
}
if (netNameLen[i] == 0) {
for (int j = 0; j < 4; j++) {
drawImageEx(g, mapImage, 45 + j * 10, YY, 124,
103,
9, 9);
}
}
else {
//这儿也是需要更换新的图片的位置,80,255是旧坐标
if (posInHttpData == i + 1) {
for (int j = 0; j < netNameLen[i]; j++) {
if (netName[i][j] >= 21) {
drawImageEx(g, mapImage, 45 + j * 9, YY,
62 +
( (netName[i][j] % 7)) * 9,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -