?? gamecanvas.java.bak
字號:
}
tileimagebuffer.setColor(0, 0, 0);
tileimagebuffer.fillRect(0, 0, 128, faderypos);
tileimagebuffer.fillRect(0, 128 - faderypos, 128, 128);
}
if(levelok > 0)
{
if(levelok == 90)
if(musicopt == "YES" && level < 8)
PlaySound(4);
else
if(musicopt == "YES")
PlaySound(1);
levelok--;
if(faderypos < 68)
{
DrawText(tileimagebuffer, "LEVEL COMPLETED", screenX / 2, 50, 3);
DrawText(tileimagebuffer, "SCORE ".concat(String.valueOf(String.valueOf(score))), screenX / 2, 60, 3);
}
if(faderypos == 68)
if(level < 8)
{
mode = 11;
textmode = 0;
level++;
} else
{
mode = 14;
textmode = 14;
level = 9;
faderdir = 2;
levelok = 0;
}
}
g.setClip(0, 0, screenX, screenY);
g.drawImage(tileimage, 0, 0, 20);
if(keypressed == -7 && mode == 20 && pause != 0)
{
pause = 0;
keypressed = 0;
}
if(keypressed == -7 && mode == 20)
{
pause = 1;
keypressed = 0;
}
if(pause == 1)
{
DrawText(g, "PAUSE", screenX / 2, 50, 3);
DrawText(g, "RESUME", 77, 117, 0);
}
if(keypressed == 42 && mode == 20 && pause == 0)
{
g.setColor(170, 0, 0);
g.fillRoundRect(10, 10, screenX - 20, screenY - 20, 10, 10);
g.setColor(255, 216, 0);
g.drawRoundRect(12, 12, screenX - 25, screenY - 25, 5, 5);
DrawText(g, "INVENTORY", screenX / 2, 20, 3);
DrawText(g, "KEYS", 25, 40, 0);
DrawText(g, "".concat(String.valueOf(String.valueOf(keys))), screenX - 32, 40, 1);
DrawText(g, "LIVES", 25, 50, 0);
DrawText(g, "".concat(String.valueOf(String.valueOf(lives))), screenX - 32, 50, 1);
DrawText(g, "YINYANG", 25, 60, 0);
DrawText(g, "".concat(String.valueOf(String.valueOf(diamant))), screenX - 32, 60, 1);
DrawText(g, "POWER", 25, 70, 0);
DrawText(g, "".concat(String.valueOf(String.valueOf(playerpower))), screenX - 32, 70, 1);
DrawText(g, "SWORD", 25, 80, 0);
DrawText(g, "".concat(String.valueOf(String.valueOf((swordpower + 1) * 5))), screenX - 32, 80, 1);
DrawText(g, "LEVEL", 25, 90, 0);
DrawText(g, String.valueOf(String.valueOf((new StringBuffer("")).append(level + 1))), screenX - 32, 90, 1);
}
}
public void InitGFX()
{
LoadGFX();//導入圖片
LoadFont("font.png");//導入字母圖片
if(tileimagebuffer == null)
{
tileimage = Image.createImage(screenX, screenY);
tileimagebuffer = tileimage.getGraphics();
DGtileimagebuffer = DirectUtils.getDirectGraphics(tileimagebuffer);
tileimagebuffer.setClip(0, 0, screenX, screenY);
}
if(offscreenbuffer == null)
{
offimage = Image.createImage(screenX + 16, screenY + 16);
offscreenbuffer = offimage.getGraphics();
DGoffscreenbuffer = DirectUtils.getDirectGraphics(offscreenbuffer);
offscreenbuffer.setClip(0, 0, screenX + 16, screenY + 16);
}//以上為了確定顯示區域做準備
iecom = bornSprite(0, 0, 0, 20, 0, 1, 0, 0, 0);
//System.out.println(iecom);0
logo = bornSprite(1, 0, 0, 20, 0, 1, 0, 0, 0);
//System.out.println(logo);1
door1 = bornSprite(14, 0, 0, 20, 0, 0, 0, 0, 0);
//System.out.println(door1);2
door2 = bornSprite(14, 0, 0, 20, 0, 0, 0, 0, 0);
//System.out.println(door2);3
extra = bornSprite(15, 0, 0, 3, 0, 0, 0, 0, 0);
//System.out.println(extra);4
//(int animnr, int xpos, int ypos, int anchor, int manipulation, int directpos, int spritetype,
//int dat1, int dat2)
}
public void LoadGFX()
{
bobgfx = new Image[31];
try
{
bobgfx[0] = Image.createImage("/iecom.png");
bobgfx[3] = Image.createImage("/explo1.png");
bobgfx[4] = Image.createImage("/explo2.png");
bobgfx[5] = Image.createImage("/explo3.png");
bobgfx[6] = Image.createImage("/standR.png");
bobgfx[7] = Image.createImage("/jumpR.png");
bobgfx[8] = Image.createImage("/attackR1.png");
bobgfx[9] = Image.createImage("/attackR2.png");
bobgfx[10] = Image.createImage("/runR1.png");
bobgfx[11] = Image.createImage("/runR2.png");
bobgfx[12] = Image.createImage("/up1.png");
bobgfx[13] = Image.createImage("/duckenR.png");
bobgfx[15] = Image.createImage("/key.png");
bobgfx[16] = Image.createImage("/energy.png");
bobgfx[17] = Image.createImage("/coin.png");
bobgfx[18] = Image.createImage("/yinyang.png");
bobgfx[19] = Image.createImage("/fire1.png");
bobgfx[20] = Image.createImage("/fire2.png");
bobgfx[21] = Image.createImage("/fire3.png");
bobgfx[22] = Image.createImage("/burner.png");
bobgfx[24] = Image.createImage("/bat1.png");
bobgfx[25] = Image.createImage("/bat2.png");
}
catch(IOException e)
{
System.err.println("ERROR: GFX LOADING ".concat(String.valueOf(String.valueOf(e))));
}
}
public void InitScores()
{
try
{
HighScore = RecordStore.openRecordStore("Scores", true);//建立Scores的recordStore 如果沒有則新建
if(HighScore.getNumRecords() == 0)//如果是新建的RS 則按下列規則初始化
{
playerName = "NINJA";
score = 5000;
AddHighScore();//將記錄添加到RS中
playerName = "SCHMUSI";
score = 4000;
AddHighScore();
playerName = "ELMO";
score = 3000;
AddHighScore();
playerName = "NNOIZ";
score = 2000;
AddHighScore();
playerName = "INDY";
score = 1000;
AddHighScore();
playerName = "KID";
score = 500;
AddHighScore();
score = 0;
playerName = " ";
GetHighScore();
} else
{
GetHighScore();//從RS中取得記錄
}
}
catch(Exception exception) { }
score = 0;
playerName = ".......";
}
public void InsertScore()
{
for(int isx = 0; isx < 6; isx++)
{
if(score <= highscorepoints[isx])
continue;
for(int isx2 = 5; isx2 > isx; isx2--)
{
highscorepoints[isx2] = highscorepoints[isx2 - 1];
highscoreplayers[isx2] = highscoreplayers[isx2 - 1];
}
highscorepoints[isx] = score;
highscoreplayers[isx] = playerName;
score = 0;
}
for(int isx = 1; isx < 7; isx++)
try
{
ByteArrayOutputStream baos = new ByteArrayOutputStream();
DataOutputStream os = new DataOutputStream(baos);
os.writeUTF(highscoreplayers[isx - 1]);
os.writeInt(highscorepoints[isx - 1]);
os.close();
byte data[] = baos.toByteArray();
HighScore.setRecord(isx, data, 0, data.length);
baos.close();
}
catch(Exception exception) { }
}
public void GetHighScore()//從RS中取得記錄并相應的放到highscoreplayers和highscorepoints[6備用
{
for(int hsi = 1; hsi < 7; hsi++)
try
{
byte data[] = HighScore.getRecord(hsi);
DataInputStream is = new DataInputStream(new ByteArrayInputStream(data));
highscoreplayers[hsi - 1] = is.readUTF();
highscorepoints[hsi - 1] = is.readInt();
is.close();
}
catch(Exception exception) { }
}
public void AddHighScore()//將記錄添加到RS中
{
try
{
ByteArrayOutputStream baos = new ByteArrayOutputStream();
DataOutputStream os = new DataOutputStream(baos);
os.writeUTF(playerName);
os.writeInt(score);
os.close();
byte data[] = baos.toByteArray();
int id = HighScore.addRecord(data, 0, data.length);
baos.close();
}
catch(Exception exception) { }
}
public void InitSpriteMaster()
{
//System.out.println(anzahlsprites); //60
sprites = new int[anzahlsprites][10];
for(i = 0; i < anzahlsprites; i++)
sprites[i][0] = -1;
}
public int bornSprite(int animnr, int xpos, int ypos, int anchor, int manipulation, int directpos, int spritetype,
int dat1, int dat2)
{
int SpriteNr = -1;
spritecount = 0;
//System.out.println(anzahlsprites);//60
for(i = 0; i < anzahlsprites; i++)
{
if(sprites[i][0] == -1)
{
// System.out.println(2);
sprites[i][0] = 0;
sprites[i][1] = animnr;
sprites[i][2] = xpos;
sprites[i][3] = ypos;
sprites[i][4] = anchor;
sprites[i][5] = manipulation;
sprites[i][6] = directpos;
sprites[i][7] = spritetype;
sprites[i][8] = dat1;
sprites[i][9] = dat2;
SpriteNr = i;
i = anzahlsprites;
//這樣的話調用幾次就是幾 很巧妙
}
spritecount++;//5
}
//System.out.println(SpriteNr);
return SpriteNr;
}
public void MoveEnemies()
{
for(int ee = 0; ee < anzahlsprites; ee++)
{
if(sprites[ee][0] != 1 && sprites[ee][0] != -99)
continue;
if(sprites[ee][7] >= 500 && sprites[ee][7] < 510)
{
if(getSpriteXpos(player) + 8 >= getSpriteXpos(ee) - 8 && getSpriteXpos(player) + 8 <= getSpriteXpos(ee) + 8 && getSpriteYpos(player) > getSpriteYpos(ee) && getSpriteYpos(player) < getSpriteYpos(ee) + sprites[ee][8] + 16 && sprites[ee][7] == 500)
sprites[ee][7] = 501;
if(sprites[ee][7] == 501)
{
if(GetIcon(sprites[ee][2], sprites[ee][3] - 8) != 104)
setSpritePos(ee, getSpriteXpos(ee), getSpriteYpos(ee) + 4);
else
sprites[ee][7] = 502;
} else
if(GetIcon(sprites[ee][2], sprites[ee][3] + 8) != 103)
setSpritePos(ee, getSpriteXpos(ee), getSpriteYpos(ee) - 1);
else
sprites[ee][7] = 500;
setSpritePos(ee, getSpriteXpos(ee) - 8, getSpriteYpos(ee) - 8);
if(checkkollision(player, ee, 9, 8) == 1 && playerlostlive == 0 && playerflashing == 0)
{
if(playerjumps == 0 && playerONlift == 0 && playerfalling == 0)
{
lastplayerxpos = playerXpos;
lastplayerypos = playerYpos;
lastscrollx = scrollX;
lastscrolly = scrollY;
}
PlayerDead();
}
setSpritePos(ee, getSpriteXpos(ee) + 8, getSpriteYpos(ee) + 8);
}
if(sprites[ee][7] >= 600 && sprites[ee][7] < 610)
{
if(getSpriteXpos(player) + 8 >= getSpriteXpos(ee) - 8 && getSpriteXpos(player) + 8 <= getSpriteXpos(ee) + 8 && getSpriteYpos(player) < getSpriteYpos(ee) && getSpriteYpos(player) > getSpriteYpos(ee) - sprites[ee][8] && sprites[ee][7] == 600)
sprites[ee][7] = 601;
if(sprites[ee][7] == 601)
{
if(GetIcon(sprites[ee][2], sprites[ee][3] + 8) != 106)
setSpritePos(ee, getSpriteXpos(ee), getSpriteYpos(ee) - 4);
else
sprites[ee][7] = 602;
} else
if(GetIcon(sprites[ee][2], sprites[ee][3] - 8) != 105)
setSpritePos(ee, getSpriteXpos(ee), getSpriteYpos(ee) + 1);
else
sprites[ee][7] = 600;
setSpritePos(ee, getSpriteXpos(ee) - 8, getSpriteYpos(ee) - 8);
if(checkkollision(player, ee, 9, 8) == 1 && playerlostlive == 0 && playerflashing == 0)
{
if(playerjumps == 0 && playerONlift == 0 && playerfalling == 0)
{
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -