📄 penguinscreen.java
字号:
&& http.getResponseCode() == HttpConnection.HTTP_OK) {
if ( (Ret = ParseNetData(httpData)) < 0) {
UpdateState(NETERROR);
}
else {
UpdateState(NETDISP);
}
}
else {
UpdateState(NETERROR);
}
bNetStart = false;
paintLoadPos = 0;
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;
if (BufferSurface != null) {
g = BufferSurface.getGraphics();
}
switch (state) {
case COPYRIGHT:
if (bStateMapEntry) {
bStateMapEntry = false;
g.setColor(255, 255, 255);
g.fillRect(0, 0, 176, 208);
g.setColor(255, 255, 255);
drawImageEx(g, mapImage, 37, 81, 0, 0, 112, 80);
}
break;
case INPUT:
g.setColor(0, 0, 0);
g.fillRect(0, 0, getWidth(), getHeight());
drawImageEx(g, mapImage, 30, 85, 0, 302, 125, 12); //text
drawImageEx(g, mapImage, 48, 100, 0, 288, 68, 14); //text
drawImageEx(g, mapImage, 60, 125, 0, 208, 62, 39); //alpha table
//drawImageEx(g, mapImage, 43, 167, 149, 232, 90, 22); //OK
drawNum(g, 80, 70, 176, 199, ActualScore);
//Hu hai qing Add
//倒计时
drawImageEx(g, mapImage, 60, 30, 358, 208, 44, 13);
drawNum1(g, 110, 30, 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++) {
drawImageEx(g, mapImage, 125 + i * 9, 105,
0 + ( (name[order][i]) % 7) * 9,
208 + 10 * (name[order][i] / 7), 9, 9);
}
g.setClip(0, 0, 176, 208);
g.setColor(255, 0, 0);
//Hu hai qing Add
if (namelen[order] == 4 && FireKey) {
currentLetter = 27;
//选中哪个字母,那个字母会被框圈住,画一个框出来
g.drawRect(60 + (currentLetter % 7) * 9,
125 + 10 * (currentLetter / 7), 8, 9);
}
else {
g.drawRect(60 + (currentLetter % 7) * 9,
125 + 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, 248, 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, 52, 30, 176, 144, 72, 18); //TITLE
drawImageEx(g, mapImage, 35, 70, 249, 238, 106, 50); //HELP
drawImageEx(g, mapImage, 43, 167, 149, 232, 90, 22); //OK
bStateMapEntry = false;
}
break;
case MENU:
if (bStateMapEntry) {
drawImageEx(g, mapImage, 0, 0, 0, 0, getWidth(),
getHeight());
drawImageEx(g, mapImage, 80, 110, 176, 180, 13, 7);
drawImageEx(g, mapImage, 80, 183, 189, 180, 13, 7);
//利用菜单类里头的坐标画出菜单
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, 52, 30, 176, 108, 72, 18); //TITLE
drawImageEx(g, mapImage, 43, 167, 149, 232, 90, 22); //OK
drawImageEx(g, mapImage, 30, 80, 57 * (1 - optionSelect),
247, 54, 13); //text of option
drawImageEx(g, mapImage, 101, 80,
27 * (1 - optionMenu[0]) +
54 * (1 - optionSelect), 275, 27, 13); //open/close
drawImageEx(g, mapImage, 30, 100, 27 * optionSelect, 261,
28, 13); //text
drawImageEx(g, mapImage, 101, 100,
27 * (1 - optionMenu[1]) + 54 * optionSelect,
275, 27, 13); //open/close
if (optionSelect == 0) {
drawImageEx(g, mapImage, 90, 80, 207, 180, 5, 9); //Left arrow
drawImageEx(g, mapImage, 134, 80, 217, 180, 5, 9); //Right arrow
}
else {
drawImageEx(g, mapImage, 90, 100, 207, 180, 5, 9); //Left arrow
drawImageEx(g, mapImage, 134, 100, 217, 180, 5, 9); //Right arrow
}
break;
case DEMOLOCAL:
case LOCAL:
g.setColor(0, 0, 0);
g.fillRect(0, 0, getWidth(), getHeight());
drawImageEx(g, mapImage, 20, 70, 57, 261, 26, 13); //order
drawImageEx(g, mapImage, 70, 70, 86, 261, 26, 13); //name
drawImageEx(g, mapImage, 120, 70, 112, 261, 26, 13); //score
drawImageEx(g, mapImage, 43, 167, 149, 232, 90, 22); //OK
drawImageEx(g, mapImage, 52, 30, 176, 0, 72, 18); //TITLE
for (int i = 0; i < 5; i++) {
int YY = 95 + 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, 30, YY, 176, 199, i + 1);
drawNum(g, 133 - digit * 5, YY, 176, 199,
newsreel[i]);
}
else {
drawNum(g, 30, YY, 176, 199, i + 1);
drawNum(g, 133 - digit * 5, YY, 176, 199,
newsreel[i]);
}
if (namelen[i] == 0) {
for (int j = 0; j < 4; j++) {
drawImageEx(g, mapImage, 63 + j * 10, YY, 62,
238,
9, 9); //....
}
}
else {
//这儿也是需要更换新的图片的位置,80,255是旧坐标
if (order == i) {
for (int j = 0; j < namelen[i]; j++) {
drawImageEx(g, mapImage, 63 + j * 9, YY,
71 +
( (name[i][j] % 7)) * 9,
208 + 10 * (name[i][j] / 7),
9, 9);
}
}
else {
for (int j = 0; j < namelen[i]; j++) {
drawImageEx(g, mapImage, 63 + j * 9, YY,
0 +
( (name[i][j]) % 7) * 9,
208 + 10 * (name[i][j] / 7),
9, 9);
}
}
}
}
if (bShowOK) {
drawImageEx(g, mapImage, 44, 96, 248, 223, 86, 15);
}
//Zxhred end
break;
case UPLOAD:
if (bStateMapEntry) {
bStateMapEntry = false;
drawImageEx(g, mapImage, 22, 72, 0, 26, 133, 64); //黄底
uploadMenu.paint(g, mapImage);
}
break;
case NET:
case SCOREUPLOAD:
g.setColor(0, 0, 0);
g.fillRect(19, 189, 139, 4);
drawImageEx(g, uploadImage, 52, 171, 31, 1, 89, 14);
drawImageEx(g, uploadImage, 18, 188, 0, 16, 141, 6);
drawImageEx(g, uploadImage, paintLoadPos + 19, 189, 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("A fatal error occured when ");
drawStringEx(g, strErr, 10, 60, 150, 20);
strErr = "get data from server";
drawStringEx(g, strErr, 10, 80, 150, 20);
strErr = "Please try again or contact ";
drawStringEx(g, strErr, 10, 100, 150, 20);
strErr = "the server administrator";
drawStringEx(g, strErr, 10, 120, 150, 20);
break;
case NETDISP:
//画出网络排名的分数,姓名和名次
g.setColor(0, 0, 0);
g.fillRect(0, 0, getWidth(), getHeight());
// drawImageEx(g, menuImage, 0, 33, 383, 0, getWidth(), getHeight()-33);
drawImageEx(g, menuImage, 20, 70, 57, 261, 26, 13); //order
drawImageEx(g, menuImage, 70, 70, 86, 261, 26, 13); //name
drawImageEx(g, menuImage, 120, 70, 112, 261, 26, 13); //score
drawImageEx(g, menuImage, 43, 167, 149, 232, 90, 22); //OK
drawImageEx(g, menuImage, 52, 30, 176, 18, 72, 18); //TITLE
for (int i = 0; i < 5; i++) {
int YY = 95 + i * 12;
int digit = 0;
for (int result = netScore[i] / 10; result != 0;
result /= 10) {
digit++;
}
//Zxhred mod
if (posInHttpData == i + 1) {
//自身名次高亮显示
drawNum(g, 30, YY, 176, 199, netOrder[i]);
drawNum(g, 133 - digit * 5, YY, 176, 199,
netScore[i]);
}
else {
drawNum(g, 30, YY, 176, 199, netOrder[i]);
drawNum(g, 133 - digit * 5, YY, 176, 199,
netScore[i]);
}
if (netNameLen[i] == 0) {
for (int j = 0; j < 4; j++) {
drawImageEx(g, menuImage, 63 + j * 10, YY, 62,
238,
9, 9);
}
}
else {
if (posInHttpData == i + 1) {
for (int j = 0; j < netNameLen[i]; j++) {
drawImageEx(g, menuImage, 63 + j * 9, YY,
71 +
( (netName[i][j] % 7)) * 9,
208 + 10 * (netName[i][j] / 7),
9, 9);
}
}
else {
for (int j = 0; j < netNameLen[i]; j++) {
drawImageEx(g, me
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -