首页 > 学院 > 开发设计 > 正文

经典飞机游戏代码S60

2019-11-18 16:02:52
字体:
来源:转载
供稿:网友

经典飞机游戏代码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.VeVb.com)



发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表