WEB开发网
开发学院软件开发Java 经典飞机游戏代码S60 阅读

经典飞机游戏代码S60

 2007-12-23 12:38:08 来源:WEB开发网   
核心提示: //** //// AIMS v1.0 ENGLISH// (C) IECOM 2004 // DEVELOPED BY Krzysztof Osmulski <clyde@o2.pl>//** /* TipS AND ISSUES *-For All s60 implements use a runt

经典飞机游戏代码S60 

//****************************************************************************** 
//                    
// AIMS v1.0 ENGLISH
// (C) IECOM 2004 
//  DEVELOPED BY Krzysztof Osmulski <clyde@o2.pl>                    
//****************************************************************************** 
/* TipS AND ISSUES
 *-For All s60 implements use a runtime PRepared flipped image because of some bug
 *when try to use image clipping and flipping (from NOKIA UI API) at the same time
 */

import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import java.util.*;
import java.io.*;
import java.lang.Math.*;
import javax.microedition.rms.*;

//#if _NOKIA_ _S60_
import com.nokia.mid.ui.*;
   //#if !_MMAPI_
   import com.nokia.mid.sound.Sound;
   //#endif
//#endif
  
//#if _MIDP20_
//# import javax.microedition.lcdui.game.*;
//#endif
//#if _MMAPI_
//# import javax.microedition.media.*;
//# import javax.microedition.media.control.*;
//#endif

//------------------------------------------------------------------------------ 
public class AIMS extends MIDlet {

  private Display display;
  private GameScreen screen;
  public boolean started = false;

  public AIMS() {
   
   screen = new GameScreen(this);
  
  }

  public void startApp() throws MIDletStateChangeException {
   if(display == null)
    display = Display.getDisplay(this);
   display.setCurrent(screen);
   //start the SHOW
   screen.th=new Thread(screen);
   screen.th.start();
  }

  public void pauseApp() {
    screen.menumode=1;
    screen.gamemode=10;
    notifyPaused();
  }

  public void destroyApp(boolean unconditional) {
    screen.th=null;
    screen.saveRMS();
    notifyDestroyed();

  }

  public void hideNotify(){
  }

  public void showNotify() {
   display.setCurrent(screen);
  }

  public void exitRequested() {
    destroyApp(false);
  }

}

//------------------------------------------------------------------------------
//#if _NOKIA_ _S60_
class GameScreen extends FullCanvas implements Runnable
//#else
//# class GameScreen extends Canvas implements Runnable
//#endif
{

   //#if _NOKIA_ _S60_
   static final int LSOFTKEY=-6,RSOFTKEY=-7;
   //#elif _V_
//#   static final int LSOFTKEY=21,RSOFTKEY=22;
   //#elif _V220_ _E398_ _V980_
//#   static final int LSOFTKEY=-21,RSOFTKEY=-22;
   //#elif _SIEM_
//#   static final int LSOFTKEY=-1,RSOFTKEY=-4;
   //#elif _SE_ _SAGEM_
//#   static final int LSOFTKEY=-6,RSOFTKEY=-7;
   //#endif
  static Image[] bobgfx;
  static Image Tiles;
  static Image myFont;
  static Image Tilebuffer;
  static Graphics TilebufferP;
  //#if _NOKIA_
  static DirectGraphics TilebufferDG; 
  //#endif
 //static Image Backbuffer;
 //static Graphics BackbufferP;
 //static DirectGraphics BackbufferDG;

  static int keypressed, game_keypressed;
  //#if _S40_
//#  //15 just for intro normal 10 changed in the end of intro (but not for s40MIDP20)
//#  static int FPS=15;
//#  final static int anzahlobjekte=30;
//#  final static int screenX=128;
//#  final static int screenY=128;
//#  final static int LZONE_SLOWER=7;
   //#if _MMAPI_
//#   final static int PAUSE_Y=screenY-screenY/4-3;
   //#else
//#   final static int PAUSE_Y=screenY/2;
   //#endif
//#  final static int MENU_Y=screenY-screenY/6-1;
  //#elif _S45_
//#  //15 just for intro normal 10 changed in the end of intro (but not for s40MIDP20)
//#  static int FPS=15;
//#  final static int anzahlobjekte=35;
//#  final static int screenX=128;
//#  final static int screenY=160;
//#  final static int LZONE_SLOWER=5;
//#  final static int MENU_Y=screenY-screenY/6-7;
//#  final static int PAUSE_Y=MENU_Y-18;
  //#elif _S60_
  static int FPS=18;
  final static int anzahlobjekte=40;
  final static int screenX=176;
  final static int screenY=208;
  final static int LZONE_SLOWER=4;
  final static int MENU_Y=screenY-screenY/6-10;

  final static int PAUSE_Y=MENU_Y-20;
  //because of some API problems with clipping and flipping at the same time we need a second Tiles image
  Image Tiles_f;
  //#elif _V_ _E398_
//#  static int FPS=15;
//#  final static int anzahlobjekte=40;
//#  final static int screenX=176;
//#  final static int screenY=204;
//#  final static int LZONE_SLOWER=4;
//#  final static int MENU_Y=screenY-screenY/6-12;
//#  final static int PAUSE_Y=MENU_Y-20;
  //#elif _V220_
//#  static int FPS=12;
//#  final static int anzahlobjekte=30;
//#  final static int screenX=128;
//#  final static int screenY=116;
//#  final static int LZONE_SLOWER=7;
//#  final static int MENU_Y=screenY-screenY/6-5;
//#  final static int PAUSE_Y=MENU_Y-18;
  //#elif _65_
//#  static int FPS=12;
//#  final static int anzahlobjekte=37;
//#  final static int screenX=132;
//#  final static int screenY=176;
//#  final static int LZONE_SLOWER=5;
//#  final static int MENU_Y=screenY-screenY/6-10;
//#  final static int PAUSE_Y=MENU_Y-20;
  //#elif _C65_
//#  static int FPS=12;
//#  final static int anzahlobjekte=30;
//#  final static int screenX=130;
//#  final static int screenY=130;
//#  final static int LZONE_SLOWER=7;
//#  final static int PAUSE_Y=screenY-screenY/4-5;
//#  final static int MENU_Y=screenY-screenY/6-3;
  //#elif _FKZ500_
//#  static int FPS=15;
//#  final static int anzahlobjekte=35;
//#  final static int screenX=128;
//#  final static int screenY=160;
//#  final static int LZONE_SLOWER=5;
//#  final static int MENU_Y=screenY-screenY/6-10;
//#  final static int PAUSE_Y=MENU_Y-18;
  //#elif _S700_
//#  static int FPS=18;
//#  final static int anzahlobjekte=50;
//#  final static int screenX=240;
//#  final static int screenY=266;
//#  final static int LZONE_SLOWER=3;
//#  final static int MENU_Y=screenY-screenY/6-23;
//#  final static int PAUSE_Y=MENU_Y-20;
  //#elif _Z1010_ _V980_
//#  static int FPS=18;
//#  final static int anzahlobjekte=45;
//#  final static int screenX=176;
//#  final static int screenY=220;
//#  final static int LZONE_SLOWER=4;
//#  final static int MENU_Y=screenY-screenY/6-12;
//#  final static int PAUSE_Y=MENU_Y-20;
//#  //SAGEM
  //#elif _V65_
//#  static int FPS=13;
//#  final static int anzahlobjekte=30;

//#  final static int screenX=128;
//#  final static int screenY=128;
//#  final static int LZONE_SLOWER=7;
//#  final static int PAUSE_Y=screenY-screenY/4-3;
//#  final static int MENU_Y=screenY-screenY/6-1;
  //#endif
  final static int tiledimension=16; // CONST for TILEWIDTH
 
  final static int tilesPerX=screenX/tiledimension+1;
  final static int tilesPerY=screenY/tiledimension+1;
 
  static AIMS midlet;
  //static Timer animTimer;
  //final static int animperiod = 35; 
  static int i=0;
  static int player;
  static int schussdelay = 3;
  static int temp1,temp2,temp3,temp4,temp5;
  public static int gamemode=0;
  public static int menumode=0;
  static int ai=0;
  static int score=0;
  static int lifes=-1;

  static int[][] ObjectDB,playerBulletsDB,bulletsDB;
 

  static byte[] leveldata,maskdata;
  static int levelbreite=0;  // levelwidth in tiles
  static int levelhoehe=0;   // levelhight in tiles
  static int level=0;
 
 
  
  // SCROLL VARS
  static int levelXPos=0;  // LevelPosition in Tiles 
  static int levelypos=0;  // LevelPosition in Tiles 
  static int lastlevelxpos=0; // actual LevelXposition in Tiles
  static int lastlevelypos=0; // actual LevelYPosition in Tiles 
  static int scrollxpos;  // scrollxpos/tiledimension = levelxpos 
  static int scrollypos;  // scrollypos/tiledimension = levelypos 
  static int softscrollx;  // softscroll x (0-15)
  static int softscrolly;  // softscroll y (0-15)
 
  // vars for target calculation of the bullets
  static int targetXoffset=0;  
  static int targetYoffset=0;
  static int targetquadrant=0;
  static int zielerfassungswinkel=0;
 static int teilquadrantwinkel=0;
 
 static int devicewaiter=3; // WAITER
 static boolean musicopt=true;  // music yes=1 / no=0
 static boolean soundopt=true;  // sound yes=1 / no=0
 static int waiter=0;   // a waiter var
 static int explowaiter=2;  // waiter for all explosions
 //static int flamewaiter=2;  // waiter for flameanimation when enemey was hit

(出处:http://www.cncms.com)


Tags:经典 飞机 游戏

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接