📄 gamemain.java
字号:
// FrontEnd Plus GUI for JAD
// DeCompiled : gamemain.class
import com.nokia.mid.ui.FullCanvas;
import java.io.PrintStream;
import java.util.Timer;
import javax.microedition.lcdui.*;
public class gamemain extends FullCanvas
implements Runnable
{
int gamestatus;
boolean conti;
int rate;
long fps;
Image offscreen;
Image gametitle;
private Thread t;
gamekeystatus gkeystatus;
tilemanger gametilemap;
sprite mysprite;
gamelogic mygamelogic;
Timer timer;
timerbar gamebar;
int lasttime;
int col;
int row;
public gamemain()
{
gamestatus = 0;
conti = true;
rate = 10;
fps = 0L;
offscreen = null;
gametitle = null;
t = null;
col = 0;
row = 0;
timer = new Timer();
gamebar = new timerbar();
gkeystatus = new gamekeystatus();
mygamelogic = new gamelogic();
mysprite = new sprite(mygamelogic.mapwidth, mygamelogic.mapheight);
gametilemap = new tilemanger(mygamelogic.map, mygamelogic.mapwidth, mygamelogic.mapheight);
if(isDoubleBuffered())
try
{
offscreen = Image.createImage(getWidth(), getHeight());
gametitle = Image.createImage("/title.png");
}
catch(Exception exception)
{
System.out.println(exception.getMessage());
}
else
System.out.println("no double buffering");
}
public void run()
{
long l = 0L;
long l2 = 0L;
while(conti)
{
long l1 = System.currentTimeMillis();
input();
logic();
repaint(0, 0, getWidth(), getHeight());
serviceRepaints();
long l3 = System.currentTimeMillis();
if(l3 - l1 > 0L)
fps = 1000L / (l3 - l1);
if(l3 - l1 < (long)rate)
try
{
Thread.sleep((long)rate - (l3 - l1));
}
catch(Exception exception) { }
}
}
public void input()
{
if(!gkeystatus.getkeystatus(2));
if(!gkeystatus.getkeystatus(5));
if(!gkeystatus.getkeystatus(1));
if(!gkeystatus.getkeystatus(6));
if(gkeystatus.getkeyclicked(8))
if(gamestatus == 0)
{
gamestatus = 1;
timer.schedule(gamebar, 1000L, 1000L);
} else
{
col = mysprite.spritecol;
row = mysprite.spriterow;
mysprite.bclick(gametilemap.mapx, gametilemap.mapy);
if(mygamelogic.bclick(row, col))
{
gametilemap.mapchange(mygamelogic.map);
gamebar.gametime = gamebar.gametime + 6;
}
}
}
public void logic()
{
switch(gamestatus)
{
case 1: // '\001'
if(gamebar.gettime() < 1)
gamestatus = 4;
if(mygamelogic.gameover())
{
lasttime = gamebar.gettime();
gamestatus = 2;
}
break;
case 2: // '\002'
System.gc();
mygamelogic.nextmap();
mysprite.spriteinit(mygamelogic.mapwidth, mygamelogic.mapheight);
gametilemap.mapinit(mygamelogic.map, mygamelogic.mapwidth, mygamelogic.mapheight);
gamestatus = 1;
gamebar.settime(45 + lasttime);
mygamelogic.washcount++;
break;
}
}
public void paint(Graphics g)
{
Graphics g1 = offscreen.getGraphics();
g1.setColor(0, 0, 0);
g1.fillRect(0, 0, getWidth(), getHeight());
if(gamestatus == 1)
{
gametilemap.drawmap(g1, mysprite.spritex, mysprite.spritey);
mysprite.drawsprite(g1, gametilemap.mapx, gametilemap.mapy);
g1.setColor(255, 255, 255);
g1.drawString(mygamelogic.gamelevel + " " + mygamelogic.washcount + " " + gamebar.gettime(), 16, 2, 0);
}
if(gamestatus == 0)
{
g1.setColor(255, 255, 255);
Graphics _tmp = g1;
Graphics _tmp1 = g1;
g1.drawImage(gametitle, 64, 64, 0x2 | 0x1);
}
if(gamestatus == 2)
{
g1.setColor(255, 255, 255);
Graphics _tmp2 = g1;
Graphics _tmp3 = g1;
g1.drawString("Level " + (mygamelogic.gamelevel + 1), 64, 64, 0x40 | 0x1);
}
if(gamestatus == 4)
{
g1.setColor(255, 255, 255);
Graphics _tmp4 = g1;
Graphics _tmp5 = g1;
g1.drawString("GAME OVER", 64, 64, 0x40 | 0x1);
Graphics _tmp6 = g1;
Graphics _tmp7 = g1;
g1.drawString("mail:js_lin@163.com", 64, 90, 0x40 | 0x1);
}
Graphics _tmp8 = g;
Graphics _tmp9 = g;
g.drawImage(offscreen, 0, 0, 0x10 | 0x4);
}
public void exit()
{
conti = false;
t = null;
}
public void start()
{
t = new Thread(this);
t.start();
}
public void keyPressed(int i)
{
int j = getGameAction(i);
switch(j)
{
case 2: // '\002'
mysprite.spritectrl(1);
break;
case 5: // '\005'
mysprite.spritectrl(2);
break;
case 1: // '\001'
mysprite.spritectrl(3);
break;
case 6: // '\006'
mysprite.spritectrl(4);
break;
}
gkeystatus.gamekeyPressed(j);
}
public void keyReleased(int i)
{
int j = getGameAction(i);
gkeystatus.gamekeyReleased(j);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -