📄 gamecanvas.java
字号:
import com.nokia.mid.sound.Sound;
import com.nokia.mid.ui.*;
import java.io.*;
import java.util.*;
import javax.microedition.lcdui.*;
import javax.microedition.rms.RecordStore;
public class gamecanvas extends FullCanvas
{
private Image offimage;
private Graphics offscreenbuffer;
DirectGraphics DGoffscreenbuffer;
private Image tileimage;
private Graphics tileimagebuffer;
DirectGraphics DGtileimagebuffer;
private Image bobgfx[];
public int keypressed;
public int game_keypressed;
public int screenX;
public int screenY;
public main midlet;
public String tunes[];
public int red;
public int green;
public int blue;
public int i;
public int mode;
public int textmode;
public int waiter;
public static RecordStore HighScore;
public Timer animTimer;
public int animperiod;
public String playerName;
public int score;
public String soundopt;
public String musicopt;
public String levelopt;
public int difficulty;
public int optioncur;
public int hy;
public String highscoreplayers[];
public int highscorepoints[];
public int arrow_x;
public char playerNamechars[];
public int lives;
public Random random;
public int sprites[][];
public int anzahlsprites;
public int spritecount;
private Image icons[];
private Image loadicon;
public int anzahl_icons;
private Image loadfont;
public int fontwidth;
public int fontheight;
public int playerXpos;
public int playerYpos;
public int player;
public int playerdir;
public int lastmm;
public int playeranimdelay;
public int logo;
public int iecom;
public int titel;
public int door1;
public int door2;
public int explo;
public int extra;
public byte leveldata[];
public byte leveldata2[];
public byte maskdata[];
public int levelbreite;
public int levelhoehe;
public int levelxpos;
public int levelypos;
public int lastlevelxpos;
public int lastlevelypos;
public int levelinfo[][];
public int level;
public byte MASK_PLAYER_RELEASE;
public byte MASK_WALKWAY;
public byte MASK_WALL;
public byte MASK_LADDER;
public byte MASK_PLAYERRELEASE;
public byte MASK_VASE_START;
public byte MASK_VASE_END;
public byte MASK_FIRERELEASE;
public byte MASK_FIREDIRCHANGE;
public byte MASK_PLASMARELEASE;
public byte MASK_GATE;
public byte MASK_DEAD;
public int skycolor;
public int faderdir;
public int faderypos;
public int fading;
public long startTime;
public long endTime;
public int gateblocks;
public int titelscrolldir;
public int titelwaiter;
public int scrollX;
public int scrollY;
public int softxpos;
public int softypos;
public int jumpspeed;
public int playerjumps;
public int lastlevelnr;
public int lastenemynr;
public int keyuppressed;
public int playerfalling;
public int XposOffset;
public int aufleiter;
public int explowaiter;
public int extrajumps;
public int extrajumpspeed;
public int extraypos;
public byte keys;
public int diamant;
public int playerhit;
public int playerhitdir;
public int playerpower;
public int playerflashing;
public int playerlostlive;
public int hitrotate;
public int hitrotatedelay;
public int lastplayerxpos;
public int lastplayerypos;
public int lastscrollx;
public int lastscrolly;
public int exploonly;
public int firereleased;
public int playerONlift;
public int extralife;
public int swordpower;
public int energyfound;
public int levelok;
Sound sound;
public int pause;
public gamecanvas(main mymidlet)
{
//System.out.println("???????");
/*for (int i=0;i<10 ;i++ )
{
if (true)
{
System.out.println("true");
continue;
}
System.out.println("false");
}*/
screenX = 128;
screenY = 128;
mode = 0;
textmode = 0;
waiter = 0;
animperiod = 25;
playerName = " ";
score = 0;
soundopt = "YES";
musicopt = "YES";
levelopt = "EASY";
difficulty = 1;
optioncur = 1;
hy = 0;
arrow_x = 0;
lives = 3;
anzahlsprites = 60;
spritecount = 0;
anzahl_icons = 0;
fontwidth = 8;
fontheight = 8;
playerXpos = 0;
playerYpos = 0;
player = 0;
playerdir = 0;
lastmm = -1;
playeranimdelay = 0;
levelbreite = 0;
levelhoehe = 0;
levelxpos = 0;
levelypos = 0;
lastlevelxpos = -1;
lastlevelypos = -1;
level = 0;
MASK_PLAYER_RELEASE = 84;
MASK_WALKWAY = 82;
MASK_WALL = 81;
MASK_LADDER = 83;
MASK_PLAYERRELEASE = 84;
MASK_VASE_START = 85;
MASK_VASE_END = 88;
MASK_FIRERELEASE = 89;
MASK_FIREDIRCHANGE = 90;
MASK_PLASMARELEASE = 91;
MASK_GATE = 98;
MASK_DEAD = 96;
skycolor = 0x234c64;
faderdir = 0;
faderypos = 0;
fading = 0;
gateblocks = 0;
titelscrolldir = 0;
titelwaiter = 0;
scrollX = 0;
scrollY = 0;
softxpos = 0;
softypos = 0;
jumpspeed = 0;
playerjumps = 0;
lastlevelnr = -1;
lastenemynr = -1;
keyuppressed = 0;
playerfalling = 0;
XposOffset = 0;
aufleiter = 0;
explowaiter = 0;
extrajumps = 0;
extrajumpspeed = 0;
extraypos = 0;
keys = 0;
diamant = 0;
playerhit = 0;
playerhitdir = 0;
playerpower = 100;
playerflashing = 0;
playerlostlive = 0;
hitrotate = 0;
hitrotatedelay = 0;
lastplayerxpos = 0;
lastplayerypos = 0;
lastscrollx = 0;
lastscrolly = 0;
exploonly = 0;
firereleased = 0;
playerONlift = 0;
extralife = 0;
swordpower = 0;
energyfound = 0;
levelok = 0;
sound = null;
pause = 0;
midlet = mymidlet;
InitSpriteMaster();//现在sprites为[60][10] 并且所有的[...][0]都是-1;
InitGFX();//导入图片 确定显示范围并初始化了sprites的前5
levelinfo = new int[9][3];
levelinfo[0][0] = 101;
levelinfo[0][1] = 1;
levelinfo[0][2] = 0x384952;
levelinfo[1][0] = 102;
levelinfo[1][1] = 2;
levelinfo[1][2] = 0x384952;
levelinfo[2][0] = 103;
levelinfo[2][1] = 1;
levelinfo[2][2] = 0x384952;
levelinfo[3][0] = 204;
levelinfo[3][1] = 2;
levelinfo[3][2] = 0x3c4d38;
levelinfo[4][0] = 205;
levelinfo[4][1] = 1;
levelinfo[4][2] = 0x3c4d38;
levelinfo[5][0] = 206;
levelinfo[5][1] = 2;
levelinfo[5][2] = 0x3c4d38;
levelinfo[6][0] = 207;
levelinfo[6][1] = 3;
levelinfo[6][2] = 0x3c4d38;
levelinfo[7][0] = 208;
levelinfo[7][1] = 3;
levelinfo[7][2] = 0x3c4d38;
levelinfo[8][0] = 209;
levelinfo[8][1] = 3;
levelinfo[8][2] = 0;
random = new Random();
highscoreplayers = new String[6];
highscorepoints = new int[6];
playerNamechars = new char[7];
InitScores();//初始化积分榜
tunes = new String[5];
tunes[0] = "024a3a400400a3144608370491611820dc124585204605205a06106e06205204e04584d84504504608370491611820dc124585204605205a06106a06205a05204d85184504504e846883343142cc493a11a20cd0c50b3124e846883343142cc308491811820d412460836c49461141148000";
tunes[1] = "024a3a400400751c458558610690a22c49a6289b08b126986186106985584584d8558618690a228498420c30d30e20d30c312458558618698a22849a4289b08b126986186186906184584d85586986104d044000";
tunes[2] = "024a3a4004000b2082d449388000";
tunes[3] = "024a3a400400171c82342d4491a15a28b516468000";
tunes[4] = "024a3a400400211e45a560618a22c22c22c49b816813820dc1245800";
animTimer = new Timer();
//System.out.println(animperiod);//25
animTimer.schedule(new AnimationTask(this), 0L, animperiod);
}
protected void keyPressed(int keyCode)
{
game_keypressed = getGameAction(keyCode);
keypressed = keyCode;
}
protected void keyReleased(int keyCode)
{
game_keypressed = 0;
keypressed = 0;
}
public void DoAll()
{
startTime = System.currentTimeMillis();
//textmode 10
switch(mode)
{
default:
break;
case 0: // '\0'
waiter = 1;
mode = 70;
textmode = 71;
red = 250;
green = 250;
blue = 250;
//不调用drawSprites() 因为sprites[][0]还都是-1
break;
case 70: // 'F'//画渐变效果
if(red > 0)
{
red = red - 25;
green = green - 25;
blue = blue - 25;
//red = red - 5;
//green = green - 5;
//blue = blue - 5;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -