📄 options.java
字号:
import com.nokia.mid.ui.FullCanvas;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;
public class Options extends FullCanvas
{
private DragonSoul inc;
private static final int d[] = {
2, 2, 3, 3, 2, 2
};
//菜单的索引值
private int selectedIndex;
public Image number;
public Image check_box;
private String optionMenu[] = {
"声音",
"难度",
"回合数",
"时间"
};
protected void showNotify()
{
inc.loadLights();
}
/**
* 游戏设定类构造函数
* @param inc DragonSoul类对象
*/
public Options(DragonSoul inc)
{
this.inc = inc;
selectedIndex = 0;
try {
number = Image.createImage("/digits.png");
check_box = Image.createImage("/check_box.png");
} catch (Exception e){}
}
/**
* 按键响应函数
* @param i1 按键响应代码
*/
protected void keyPressed(int i1)
{
//menuBk = System.currentTimeMillis();
if(i1 == 50 || i1 == -1)
{
selectedIndex = selectedIndex <= 0 ? optionMenu.length - 1 : selectedIndex - 1;
repaint();
return;
}
if(i1 == 56 || i1 == -2)
{
selectedIndex = selectedIndex >= optionMenu.length - 1 ? 0 : selectedIndex + 1;
repaint();
return;
}
if(i1 == 53 || i1 == -6 || i1 == getKeyCode(8))
{
inc.setting[selectedIndex]++;
if(inc.setting[selectedIndex] >= d[selectedIndex])
inc.setting[selectedIndex] = 0;
repaint();
return;
}
if(i1 == -7)
{
// inc.saveIndex();
inc.saveSetting();
inc.backToMenu();
}
}
/**
* 绘制游戏设定画面
* @param g1 Graphics
*/
protected void paint(Graphics g1)
{
int _fldtry = getWidth() / 5;
//g1.setClip(0, 0, getWidth(), getHeight());
g1.setColor(0xffffff);
g1.fillRect(0, 0, getWidth(), getHeight());
for(int i1 = 0; i1 < (getWidth() - 1) /inc.menuBk.getWidth() + 1; i1++)
g1.drawImage(inc.menuBk, i1 * inc.menuBk.getWidth(), 0, 0x10 | 0x4);
for(int j1 = 0; j1 < optionMenu.length; j1++)
{
int l1 = 23 + 21 * (j1 + 1);
if (j1 == selectedIndex) {
g1.drawImage(inc.fistImage, _fldtry - 18, l1 - 12, 0x10 | 0x4);
}
if(j1 == 0)
{
g1.setClip((getWidth() - _fldtry) - 10, l1 - check_box.getHeight(), check_box.getWidth() / 2, check_box.getHeight());
int i2 = ((1 - inc.setting[j1]) * check_box.getWidth()) / 2;
g1.drawImage(check_box, getWidth() - ((_fldtry + 10) + i2), l1 - check_box.getHeight(), 0x10 | 0x4);
}
if(j1 == 1)
{
String s = inc.getGameRank() ? "易" : "难";
int l2 = getWidth() - (_fldtry + 10 - check_box.getWidth() / 4);
g1.setColor(0);
g1.drawString(s, l2 + 1, l1 + 1, 0x20 | 0x1);
g1.setColor(0x993300);
g1.drawString(s, l2, l1, 0x20 | 0x1);
}
if(j1 == 2)
{
int j2 = getWidth() - (_fldtry + 10 - check_box.getWidth() / 4);
drawNumber(g1, inc.setting[2] * 2 + 1, j2 - number.getWidth() / 10 / 2, l1 - number.getHeight(), 1);
}
if(j1 == 3)
{
int k2 = getWidth() - (_fldtry + 10 - check_box.getWidth() / 4);
if(inc.setting[3] == 0)
drawNumber(g1, 50, k2 -number.getWidth() / 10, l1 -number.getHeight(), 2);
else
if(inc.setting[3] == 1)
drawNumber(g1, 100, k2 - ((number.getWidth() / 10) * 3) / 2, l1 -number.getHeight(), 3);
else
if(inc.setting[3] == 2)
g1.drawImage(inc.m, k2, (l1 - 4) + 2, 0x20 | 0x1);
}
g1.setClip(0, 0, getWidth(), getHeight());
g1.setColor(0);
g1.drawString(optionMenu[j1], _fldtry - 0, l1 + 1, 0x20 | 0x4);
g1.setColor(0x993300);
g1.drawString(optionMenu[j1], _fldtry - 1, l1, 0x20 | 0x4);
}
//int k1 = (27 + 21 * (selectedIndex + 1)) - inc.fistImage.getHeight() ;
// g1.drawImage(inc._fldchar, 0, getHeight(), 0x20 | 0x4);
// g1.drawImage(inc._fldif, getWidth(), getHeight(), 0x20 | 0x8);
}
/**
* 绘制设定的对局时间
* @param g1 Graphics
* @param i1 int,回合数或时间
* @param j1 int,回合数或时间横坐标
* @param k1 int,回合数或时间纵坐标
* @param l1 int,回合数或时间的状态
*/
private void drawNumber(Graphics g1, int i1, int j1, int k1, int l1){
for (int i2 = 0; i2 < l1; i2++) {
int j2 = 1;
for(int k2 = 0; k2 < l1 - i2 - 1; k2++)
j2 *= 10;
int l2 = (i1 / j2) % 10;
g1.setClip(j1 + (number.getWidth() / 10) * i2, k1,number.getWidth() / 10, number.getHeight());
g1.drawImage(number, j1 + (number.getWidth() / 10) * (i2 - l2), k1, 0x10 | 0x4);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -