?? showmap.java
字號:
offScreen.setClip(btTmp.pos[0],btTmp.pos[1],
+bulletList[btTmp.size][2],+bulletList[btTmp.size][2]);
offScreen.drawImage(this.fireImg[0],btTmp.pos[0] - bulletList[btTmp.size][0],
btTmp.pos[1] - bulletList[btTmp.size][1],20);
}
btTmp = null;
//Draw person
offScreen.setClip(perX,perY,PWIDTH,PHEIGHT);
offScreen.drawImage(this.personImg,perX - getPersonClip()[0],perY - getPersonClip()[1],20);
//Draw life
try{
lifePaint(perLife);
}catch(Exception e){
e.printStackTrace();
}
}
private void infoPaint(){
Font font = Font.getDefaultFont();
String topScore = "TopScore:" + maxScore;
offScreen.setClip(0,0,font.stringWidth(topScore),font.getHeight());
offScreen.drawString(topScore,0,0,Graphics.LEFT|Graphics.TOP);
}
private void playKey(int keyCode){
switch(getGameAction(keyCode)){
case UP:
personCurrent = 5;
moveMap(UP);
createBullet(true);
playPaint();
repaint2();
break;
case DOWN:
personCurrent = 4;
moveMap(DOWN);
createBullet(true);
playPaint();
repaint2();
break;
case LEFT:
personCurrent = 3;
moveMap(LEFT);
createBullet(true);
playPaint();
repaint2();
break;
case RIGHT:
personCurrent = 2;
moveMap(RIGHT);
createBullet(true);
playPaint();
repaint2();
break;
case FIRE:
personCurrent = 0;
createBullet(true);
playPaint();
repaint2();
default:
personCurrent = 0;
//System.out.println("keyCode:"+keyCode);
break;
}
}
public void keyPressed(int keyCode){
if(!keyEnable) return;
int gameaction = this.getGameAction(keyCode);
try{
switch(screenTurn){
case 0: //splash
screenTurn = 1;
menuitem = 1;
menuPaint();
menubarPaint();
repaint2();
effect.stopSound();
break;
case 1: //menu
switch(gameaction){
case UP:
if(menuitem > 1){
menuitem--;
}
menuPaint();
menubarPaint();
repaint2();
//System.out.println("menu up, menuitem:"+menuitem);
break;
case DOWN:
if(menuitem < 3){
menuitem++;
}
menuPaint();
menubarPaint();
repaint2();
//System.out.println("menu down, menuitem:"+menuitem);
break;
case FIRE:
switch(menuitem){
case 1:
screenTurn = 2;
playPaint();
stagePaint(stageLevel);
repaint2();
break;
case 2:
screenTurn = 2;
resetGame();
playPaint();
stagePaint(stageLevel);
repaint2();
break;
case 3:
quit();
break;
default:
break;
}
break;
default:
break;
}
break;
case 2: //stage
screenTurn = 3;
playPaint();
repaint2();
appRun = true;
thread = new Thread(this);
thread.start();
break;
case 3: //play
playKey(keyCode);
break;
case 4: //end stage
cleanScreen();
endPaint(perLife == 0);
repaint2();
break;
default:
break;
}
}catch(Exception e){
e.printStackTrace();
}
}
public void keyRepeated(int keyCode){
keyPressed(keyCode);
}
public void keyReleased(int keyCode){
personCurrent = 0;
}
public int[] getPersonPosition() {
int[] rtia = {
perX + PWIDTH / 2, perY + PHEIGHT / 2};
return rtia;
}
public int[] getOgrePosition() {
int[] rtia = { ogreX + ogreImg[oCurrent][yCurrent].getWidth() / 2,
ogreY[yCurrent] + ogreImg[oCurrent][yCurrent].getHeight() / 2};
return rtia;
}
public void run(){
while(appRun){
try{
Thread.sleep(300L);
}catch(Exception e){
e.printStackTrace();
}
if(change == 1){
if (current >= 2) {
current = 0;
}
else {
current++;
}
change = 0;
}else{
change++;
}
//set person current imge clip
personCurrent = (personCurrent == 0) ? 1 :((personCurrent == 1) ? 0 : personCurrent) ;
if(ogreAlive){
if(oCurrent == 1){
if(showInterval == 1){
ogreAlive = false;
showInterval = 0;
}else{
//if(yCurrent > 0) yCurrent--;
showInterval++ ;
}
}else{
if(ogreDirect){
ogreX += ogreMoveBlock;
if(ogreX > ogreMaxX) ogreDirect = false;
}else{
ogreX -= ogreMoveBlock;
if(ogreX < ogreMinX) ogreDirect = true;
}
switch(yCurrent){
case 0:
yCurrent = (generalInt(4) > 25) ? 0 : 1;
break;
case 1:
int tmp = generalInt(4);
yCurrent = (tmp > 25)? 1 : ((tmp < 13) ? 0 : 2);
break;
case 2:
yCurrent = (generalInt(4) > 25) ? 2 : 1;
break;
default:
break;
}
createBullet(false);
}
playPaint();
repaint2();
}else{
if(showInterval == 3){
ogreX = generalInt(4);
if (ogreX > ogreMaxX) {
ogreX -= ogreMaxX;
}
else if (ogreX < ogreMinX) {
ogreX += ogreMinX;
}
int compare = generalInt(4);
ogreDirect = generalInt(4) > 50;
oCurrent = 0;
yCurrent = 0;
ogreAlive = true;
repaint2();
showInterval = 0;
}else{
showInterval++;
}
}
//System.out.println("Score:"+score);
System.gc();
playPaint();
repaint2();
}
screenTurn = 4;
}
public void commandAction(Command comm,Displayable display){
if(comm.getCommandType() == Command.EXIT){
System.out.println("Exit");
quit();
}
}
public void quit(){
saveData(false);
this.appRun = false;
for (Enumeration en = bulletVector.elements(); en.hasMoreElements(); ) {
btTmp = (BulletTrace) en.nextElement();
btTmp.cancel();
bulletVector.removeElement(btTmp);
}
btTmp = null;
OgreBullet ob;
for(Enumeration en = ogreBulletVector.elements(); en.hasMoreElements(); ){
ob = (OgreBullet)en.nextElement();
ob.cancel();
ogreBulletVector.removeElement(ob);
}
ob = null;
System.gc();
app.exitMIDlet();
}
private void createBullet(boolean type){
if(type){
if (System.currentTimeMillis() - this.curTime > this.timeInterval) {
if (bulletVector.size() < bulletMax) {
BulletTrace bt = new BulletTrace(this);
bulletVector.addElement(bt);
timer.schedule(bt, moveTime, moveTime);
}
curTime = System.currentTimeMillis();
}
}else{
if (System.currentTimeMillis() - ogreCurTime > this.timeInterval * 10) {
if (ogreBulletVector.size() < bulletMax) {
OgreBullet bt = new OgreBullet(this);
ogreBulletVector.addElement(bt);
timer.schedule(bt, moveTime * 2, moveTime * 2);
}
ogreCurTime = System.currentTimeMillis();
}
}
}
private int generalInt(int bits){
if(bits > 0 && bits < 30){
return Integer.parseInt((""+random.nextInt()).substring(2,bits));
}else{
return Integer.parseInt((""+random.nextInt()).substring(2,4));
}
}
public int hitTest(int x,int y,int w,int h,int tx,int ty,int tw,int th){
int rti = 0;
if(x >= tx && (x + w) <= (tx + tw) && y >= ty && (y + h) <= (ty + th)){
rti = 1;
}
//System.out.println("hitTest x:"+x+" y:"+y+" w:"+w+" h:"+h+" tx:"+tx+" ty:"+ty+" tw:"+tw+" th:"+th+" hit:"+rti);
return rti;
}
public int[] getPersonClip(){
int m,n;
m = personCurrent % 4;
n = personCurrent / 4;
int[] rtia = {m * PWIDTH,n * PHEIGHT};
return rtia;
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -