📄 mainmenu.java
字号:
// Decompiled by Jad v1.5.7f. Copyright 2000 Pavel Kouznetsov.
// Jad home page: http://www.geocities.com/SiliconValley/Bridge/8617/jad.html
// Decompiler options: packimports(3)
// Source File Name: MainMenu.java
package matchit2;
import javax.microedition.lcdui.*;
import javax.microedition.lcdui.game.GameCanvas;
// Referenced classes of package matchit2:
// GameScreen, MatchIt2
public class MainMenu extends GameCanvas
{
public MainMenu(MatchIt2 m)
{
super(false);
interrupted = false;
selected = 0;
try
{
matchit2 = m;
jbInit();
}
catch(Exception e)
{
e.printStackTrace();
}
}
private void jbInit()
throws Exception
{
ScreenHeight = getHeight();
ScreenWidth = getWidth();
display = Display.getDisplay(matchit2);
paintback();
paintselect();
}
protected void pointerPressed(int x, int y)
{
int tp = (ScreenWidth - imagesizes[1][0]) / 2;
int tp2 = (ScreenWidth + imagesizes[1][0]) / 2;
int ns = -1;
if(x > ScreenWidth - 10 && y > ScreenHeight - 10)
{
MatchIt2 _tmp = matchit2;
MatchIt2.quitApp();
return;
}
if(x > tp - imagesizes[0][0] - 13 && y > ScreenHeight - 58 && x < (tp - imagesizes[0][0] - 13) + imagesizes[0][0] + 6 && y < (ScreenHeight - 58) + imagesizes[0][1] + 5)
ns = 0;
if(x > tp - 3 && y > ScreenHeight - 58 && x < (tp - 3) + imagesizes[1][0] + 6 && y < (ScreenHeight - 58) + imagesizes[1][1] + 5)
ns = 1;
if(x > tp2 + 7 && y > ScreenHeight - 58 && x < tp2 + 7 + imagesizes[2][0] + 6 && y < (ScreenHeight - 58) + imagesizes[2][1] + 5)
ns = 2;
if(ns < 0)
return;
if(ns != selected)
{
selected = ns;
paintselect();
repaint();
} else
{
gamestart();
}
}
protected void keyPressed(int keyCode)
{
int action = getGameAction(keyCode);
int os = selected;
switch(action)
{
case 1: // '\001'
case 2: // '\002'
selected--;
break;
case 5: // '\005'
case 6: // '\006'
selected++;
break;
}
if(selected == -1)
selected = 2;
if(selected == 3)
selected = 0;
if(os != selected)
{
paintselect();
repaint();
}
if(action == 8)
{
interrupted = false;
gamestart();
}
}
public void paint(Graphics g)
{
flushGraphics();
}
private void paintback()
{
Graphics g = getGraphics();
g.setColor(5, 5, 5);
g.fillRect(0, 0, ScreenWidth, ScreenHeight);
try
{
Image img = Image.createImage("/res/img/lvl.png");
Image img0 = Image.createImage(img, 0, 0, imagesizes[0][0], imagesizes[0][1], 0);
Image img1 = Image.createImage(img, 0, 15, imagesizes[1][0], imagesizes[1][1], 0);
Image img2 = Image.createImage(img, 0, 30, imagesizes[2][0], imagesizes[2][1], 0);
int tp = (ScreenWidth - imagesizes[1][0]) / 2;
int tp2 = (ScreenWidth + imagesizes[1][0]) / 2;
g.drawImage(img0, tp - imagesizes[0][0] - 10, ScreenHeight - 55, 0);
g.setColor(0, 255, 0);
g.drawRect(tp - imagesizes[0][0] - 11, ScreenHeight - 56, imagesizes[0][0] + 2, imagesizes[0][1] + 1);
g.drawImage(img1, tp, ScreenHeight - 55, 0);
g.setColor(255, 255, 0);
g.drawRect(tp - 1, ScreenHeight - 56, imagesizes[1][0] + 2, imagesizes[1][1] + 1);
g.drawImage(img2, tp2 + 10, ScreenHeight - 55, 0);
g.setColor(255, 0, 0);
g.drawRect(tp2 + 9, ScreenHeight - 56, imagesizes[2][0] + 2, imagesizes[2][1] + 1);
img = null;
img0 = null;
img1 = null;
img2 = null;
img = Image.createImage("/res/img/select_lvl.png");
g.drawImage(img, (ScreenWidth - imagesizes[3][0]) / 2, 50, 0);
img = null;
g.setColor(255, 255, 255);
g.drawRect(ScreenWidth - 10, ScreenHeight - 10, 9, 9);
g.drawLine(ScreenWidth - 10, ScreenHeight - 10, ScreenWidth, ScreenHeight);
g.drawLine(ScreenWidth - 10, ScreenHeight, ScreenWidth, ScreenHeight - 10);
}
catch(Exception e)
{
e.printStackTrace();
}
g = null;
}
private void paintselect()
{
Graphics g = getGraphics();
int tp = (ScreenWidth - imagesizes[1][0]) / 2;
int tp2 = (ScreenWidth + imagesizes[1][0]) / 2;
if(selected != 0)
g.setColor(0, 0, 0);
else
g.setColor(0, 255, 0);
g.drawRect(tp - imagesizes[0][0] - 13, ScreenHeight - 58, imagesizes[0][0] + 6, imagesizes[0][1] + 5);
if(selected != 1)
g.setColor(0, 0, 0);
else
g.setColor(255, 255, 0);
g.drawRect(tp - 3, ScreenHeight - 58, imagesizes[1][0] + 6, imagesizes[1][1] + 5);
if(selected != 2)
g.setColor(0, 0, 0);
else
g.setColor(255, 0, 0);
g.drawRect(tp2 + 7, ScreenHeight - 58, imagesizes[2][0] + 6, imagesizes[2][1] + 5);
}
private void gamestart()
{
gamescreen = new GameScreen(matchit2, this, selected);
readImages();
gamescreen.repaint();
Display.getDisplay(matchit2).setCurrent(gamescreen);
gamescreen.repaint();
}
private void readImages()
{
gamescreen.images = new Image[gamescreen.SeedCount];
try
{
Image img = Image.createImage("/res/img/figs.png");
for(int i = 1; i <= gamescreen.SeedCount; i++)
{
gamescreen.images[i - 1] = Image.createImage(gamescreen.HSize - 2, gamescreen.VSize - 2);
Graphics g = gamescreen.images[i - 1].getGraphics();
g.drawImage(img, (1 - i) * (gamescreen.HSize - 2), 0, 0);
}
}
catch(Exception ee)
{
ee.printStackTrace();
}
if(gamescreen.HASSOUND)
{
gamescreen.SoundImages = new Image[5];
for(int i = 0; i <= 4; i++)
try
{
gamescreen.SoundImages[i] = Image.createImage("/res/img/sound" + i + ".png");
}
catch(Exception e)
{
e.printStackTrace();
}
}
try
{
gamescreen.HintImage = Image.createImage("/res/img/Hint.png");
gamescreen.ShuffleImage = Image.createImage("/res/img/Shuffle.png");
gamescreen.PauseImage = Image.createImage("/res/img/pause.png");
}
catch(Exception e)
{
e.printStackTrace();
}
}
public void goPause()
{
if(gamescreen != null)
{
gamescreen.goPause();
interrupted = true;
}
}
public void goActive()
{
if(interrupted)
{
gamescreen.goActive(false);
Display.getDisplay(matchit2).setCurrent(gamescreen);
}
}
public int ScreenHeight;
public int ScreenWidth;
public int imagesizes[][] = {
{
36, 14
}, {
67, 14
}, {
44, 14
}, {
176, 65
}
};
private Display display;
private MatchIt2 matchit2;
private GameScreen gamescreen;
public boolean interrupted;
private int selected;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -