?? showmap.java
字號:
upMapWidth = upBlock - upMapX;
upMapX = upMapImg.getWidth() + upMapX - upBlock;
divide = true;
}
}
}
break;
case RIGHT:
perMovable = perX < perMaxX;
if(perMovable){
perX = (perX + upBlock) > perMaxX ? perMaxX:(perX + upBlock);
if(perX > 40){
BulletTrace.xSc = - 4;
}
}else{
moveBullet( - upBlock);
ogreX -= upBlock;
if(ogreX < (offWidth - upMapImg.getWidth())){
ogreX += upMapImg.getWidth();
}
if (divide){
if(upMapWidth > upBlock){
upMapX += upBlock;
upMapWidth -= upBlock;
}else{
upMapWidth = offWidth;
upMapX = upMapX + upBlock - upMapImg.getWidth();
divide = false;
}
}else{
upMapX += upBlock;
if(upMapImg.getWidth() - upMapX < offWidth){
upMapWidth = upMapImg.getWidth() - upMapX;
divide = true;
}
}
}
break;
default:
break;
}
}
private void moveBullet(int offset){
for(Enumeration en = bulletVector.elements(); en.hasMoreElements(); ){
((BulletTrace)en.nextElement()).move(offset);
}
for(Enumeration en = ogreBulletVector.elements(); en.hasMoreElements(); ){
((OgreBullet)en.nextElement()).move(offset);
}
}
protected void paint(Graphics g) {
/**@todo Implement this javax.microedition.lcdui.Canvas abstract method*/
g.drawImage(offImg,this.offScrX,this.offScrY,20);
personCurrent = (personCurrent == 6) ? 0 : personCurrent ;
}
public void repaint2(){
repaint();
serviceRepaints();
}
private void cleanScreen() {
int c = offScreen.getColor();
offScreen.setColor(255, 255, 255);
offScreen.setClip(0,0,WIDTH,HEIGHT);
offScreen.fillRect(offScreen.getClipX(),offScreen.getClipY(),
offScreen.getClipWidth(),offScreen.getClipHeight());
offScreen.setColor(c);
}
private void splashPaint() throws Exception{
if(splash == null){
System.gc();
splash = Image.createImage("/shoot/splash.png");
}
int c = offScreen.getColor();
offScreen.setColor(255, 255, 255);
offScreen.setClip(0,0,WIDTH,HEIGHT);
offScreen.fillRect(offScreen.getClipX(),offScreen.getClipY(),
offScreen.getClipWidth(),offScreen.getClipHeight());
offScreen.setColor(c);
offScreen.drawImage(splash,0,0,Graphics.TOP|Graphics.LEFT);
splash = null;
System.gc();
}
private void endPaint(boolean endGame){
String scr = "score: " + score;
String mscr = "High: " + maxScore;
String endMsg = "";
if(endGame){
screenTurn = 1;
endMsg = "game over";
stageLevel = 1;
score = 0;
}else{
screenTurn = 2;
endMsg = "next stage";
stageLevel++;
}
if(this.maxScore < score) maxScore = score;
perLife = 3 * plen;
ogreCount = 40;
saveData(false);
Font font = Font.getDefaultFont();
int x = (offWidth - font.stringWidth(scr))/2;
int y = (offHeight - font.getHeight() * 5)/2;
offScreen.setClip(x,y,font.stringWidth(scr),font.getHeight());
offScreen.drawString(scr,x,y,Graphics.TOP|Graphics.LEFT);
offScreen.setClip(x,y + font.getHeight() * 2,font.stringWidth(endMsg),font.getHeight());
offScreen.drawString(mscr,x,y + font.getHeight() * 2,Graphics.TOP|Graphics.LEFT);
offScreen.setClip(x,y + font.getHeight() * 4,font.stringWidth(endMsg),font.getHeight());
offScreen.drawString(endMsg,x,y + font.getHeight() * 2,Graphics.TOP|Graphics.LEFT);
scr = null;
endMsg = null;
System.gc();
}
private void menuPaint()throws Exception{
if(menu == null){
System.gc();
menu = Image.createImage("/shoot/menu.png");
}
int c = offScreen.getColor();
offScreen.setColor(255, 255, 255);
offScreen.setClip(0,0,WIDTH,HEIGHT);
offScreen.fillRect(offScreen.getClipX(),offScreen.getClipY(),
offScreen.getClipWidth(),offScreen.getClipHeight());
offScreen.setColor(c);
offScreen.drawImage(menu,0,0,Graphics.TOP|Graphics.LEFT);
menu = null;
System.gc();
}
private void menubarPaint()throws Exception{
if(menubar == null){
System.gc();
menubar = Image.createImage("/shoot/menubar.png");
}
offScreen.setClip(mbar[0],mbar[menuitem],menubar.getWidth(),menubar.getHeight());
offScreen.drawImage(menubar,mbar[0],mbar[menuitem],Graphics.TOP|Graphics.LEFT);
menubar = null;
System.gc();
}
private void stagePaint(int i) throws Exception{
if(stage == null){
System.gc();
stage = Image.createImage("/shoot/stage.png");
}
int numW = (stage.getWidth() - stagePos)/10;
int w = stagePos;
int h = stage.getHeight();
int x = (offWidth - w)/2 ;
int y = (offHeight - 2 * h)/2 ;
offScreen.setClip(x,y,w,h);
offScreen.drawImage(stage,x,y,Graphics.TOP | Graphics.LEFT);
int num = i/10;
x = (offWidth - 2 * numW)/2;
y = y + h;
offScreen.setClip(x,y,numW,h);
offScreen.drawImage(stage,x - (stagePos + num * numW),y,Graphics.TOP | Graphics.LEFT);
num = i % 10;
x = x + numW;
offScreen.setClip(x,y,numW,h);
offScreen.drawImage(stage,x - (stagePos + num * numW),y,Graphics.TOP | Graphics.LEFT);
stage = null;
System.gc();
}
private void lifePaint(int ll) throws Exception{
if(life == null){
System.gc();
life = Image.createImage("/shoot/life.png");
}
int x = 2;
int y = offHeight - life.getHeight();
int w = lifeLen;
int h = life.getHeight();
offScreen.setClip(x,y,w,h);
offScreen.drawImage(life,x,y,Graphics.TOP|Graphics.LEFT);
if(ll <= plen){
lifeBlockPaint(0,ll);
}else if(ll <= 2 * plen){
lifeBlockPaint(0,plen);
if(ll - plen > 0){
lifeBlockPaint(1,ll - plen);
}
}else if(ll <= 3*plen){
lifeBlockPaint(0,plen);
lifeBlockPaint(1,plen);
if(ll - 2*plen > 0){
lifeBlockPaint(2,ll - 2*plen);
}
}
}
private void lifeBlockPaint(int type,int len)throws Exception{
if(life == null){
System.gc();
life = Image.createImage("/shoot/life.png");
}
int x = 0;
int offset = 0;
int y = offHeight - life.getHeight();
int bw = (life.getWidth() - lifeLen)/3;
switch(type){
case 0:
x = lifeLen + 2;
offset = lifeLen;
break;
case 1:
x = lifeLen + bw * plen + 2;
offset = lifeLen + bw;
break;
case 2:
x = lifeLen + bw * 2*plen + 2;
offset = lifeLen + 2 * bw;
break;
}
for(int i = 0; i < len ; i++){
offScreen.setClip(x + i * bw,y,bw,life.getHeight());
offScreen.drawImage(life,x + i * bw - offset,y,Graphics.TOP|Graphics.LEFT);
}
}
private void playPaint() {
//Draw up-part map
if(divide){
int tmpint = this.offWidth - this.upMapWidth;
offScreen.setClip(0,0,this.upMapWidth,this.upScrHeight);
offScreen.drawImage(this.upMapImg,0 - this.upMapX, 0 - this.upMapY,20);
offScreen.setClip(this.upMapWidth, 0,
this.offWidth - this.upMapWidth,
this.upScrHeight);
offScreen.drawImage(this.upMapImg,this.upMapWidth,0 - this.upMapY,20);
}else{
offScreen.setClip(0,0,this.offWidth,this.upScrHeight);
offScreen.drawImage(this.upMapImg,0 - this.upMapX, 0 - this.upMapY,20);
}
//Draw down-part map
offScreen.setClip(0,0,this.offWidth,this.offHeight);
offScreen.drawImage(downMapImg[current],0,this.upScrHeight - 1,20);
//Draw ogre
OgreBullet ob;
if(ogreAlive){
offScreen.setClip(0, 0, this.offWidth, this.offHeight);
offScreen.drawImage(ogreImg[oCurrent][yCurrent], ogreX, ogreY[yCurrent], 20);
}
//Draw ogre bullet
int x,y,w,h;
for (Enumeration en = ogreBulletVector.elements();
en.hasMoreElements(); ) {
ob = (OgreBullet) en.nextElement();
if (ob.size < 0) {
ob.cancel();
ogreBulletVector.removeElement(ob);
continue;
}
if (ob.size == 0) {
if(stageLevel > 20){
x = perX;
y = perY;
w = PWIDTH;
h = PHEIGHT;
}else if(stageLevel > 10){
x = perX + 1;
y = perY + 1;
w = PWIDTH - 2;
h = PHEIGHT - 2;
}else{
x = perX + 2;
y = perY + 2;
w = PWIDTH - 4;
h = PHEIGHT - 4;
}
int tmpi = hitTest(ob.target[0], ob.target[1], 1, 1,x,y,w,h);
if(tmpi == 1){
personCurrent = 6;
if(perLife > 0) perLife--;
if(perLife == 0){
personCurrent = 7;
appRun = false;
}
System.out.println("You lost!");
}
}
offScreen.setClip(ob.pos[0], ob.pos[1], bulletList[ob.size][2],
bulletList[ob.size][2]);
offScreen.drawImage(fireImg[1],
ob.pos[0] - bulletList[ob.size][0],
ob.pos[1] - bulletList[ob.size][1], 20);
}
ob = null;
//Draw person bullet
for(Enumeration en = bulletVector.elements(); en.hasMoreElements() ;){
btTmp = (BulletTrace)en.nextElement();
if(btTmp.size > 5 ) {
btTmp.cancel();
bulletVector.removeElement(btTmp);
continue;
}
if (btTmp.size == 5) {
if(stageLevel > 20){
x = ogreX;
y = ogreY[yCurrent] - 1;
w = ogreImg[oCurrent][yCurrent].getWidth();
h = ogreImg[oCurrent][yCurrent].getHeight() - 2;
}else {
x = ogreX;
y = ogreY[yCurrent];
w = ogreImg[oCurrent][yCurrent].getWidth();
h = ogreImg[oCurrent][yCurrent].getHeight();
}
int tmpi = hitTest(btTmp.target[0], btTmp.target[1], 1, 1,x,y,w,h);
if(tmpi == 1){
score++;
effect.vibrator(200);
if(ogreCount > 0) ogreCount--;
if(ogreCount == 0) appRun = false;
System.out.println("score:"+score);
oCurrent = 1;
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -