⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 socanvas.java

📁 我是第一次 上传的请多指教 这是 JAVA源码 经过实验 可以成功运行 请大家主明 转载
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
/* * To change this template, choose Tools | Templates * and open the template in the editor. *//** * * @author Administrator */import javax.microedition.lcdui.*;import javax.microedition.lcdui.game.*;import java.util.*;import java.io.*;import javax.microedition.media.*;import javax.microedition.media.control.*;public class SOCanvas extends GameCanvas implements Runnable {  private Random         rand;  private Display        display;  private boolean        sleeping;  private long           frameDelay;  private LayerManager   layers;  private Image          background;  private Image          smallCar;  private MovingSprite   playerSprite;  private MovingSprite[] blobboSprite = new MovingSprite[3];  private MovingSprite[] jellySprite = new MovingSprite[3];  private MovingSprite[] timmySprite = new MovingSprite[3];  private MovingSprite[] missileSprite = new MovingSprite[10];  private Sprite[]       explosionSprite = new Sprite[3];  private Player         musicPlayer;  private Player         explosionPlayer;  private Player         gameoverPlayer;  private boolean        gameOver;  private int            score, carsLeft;  public SOCanvas(Display d) {    super(true);    display = d;    // Initialize the random number generator    rand = new Random();    // Set the frame rate (30 fps)    frameDelay = 33;  }    public void start() {    // Set the canvas as the current screen    display.setCurrent(this);    // Initialize the background and small car images    try {      background = Image.createImage("/StarryNight.png");      smallCar = Image.createImage("/SmallCar.png");    }    catch (IOException e) {      System.err.println("Failed loading images!");    }    // Initialize the sprites    try {      // Create the player car sprite      playerSprite = new MovingSprite(Image.createImage("/Car.png"), 0, 0,        MovingSprite.BA_STOP, this);      int sequence5[] = { 0, 0, 1, 1, 2, 2, 2, 2, 2, 2, 3, 3, 4, 4, 3, 3, 2, 2, 1, 1 };      int sequence3[] = { 0, 0, 0, 1, 1, 1, 2, 2, 2, 1, 1, 1 };      for (int i = 0; i < 3; i++) {        // Create the Blobbo alien sprites        blobboSprite[i] = new MovingSprite(Image.createImage("/Blobbo.png"), 20, 21, 3, 2,          MovingSprite.BA_BOUNCE, this);        blobboSprite[i].setFrameSequence(sequence5);        blobboSprite[i].setVisible(false);        // Create the Jelly alien sprites        jellySprite[i] = new MovingSprite(Image.createImage("/Jelly.png"), 21, 21, 1, 4,          MovingSprite.BA_BOUNCE, this);        jellySprite[i].setFrameSequence(sequence3);        jellySprite[i].setVisible(false);        // Create the Timmy alien sprites        timmySprite[i] = new MovingSprite(Image.createImage("/Timmy.png"), 21, 11, 5, 0,          MovingSprite.BA_WRAP, this);        timmySprite[i].setFrameSequence(sequence3);        timmySprite[i].setVisible(false);        // Create the explosion sprites        explosionSprite[i] = new Sprite(Image.createImage("/Explosion.png"), 21, 21);        explosionSprite[i].setVisible(false);      }      // Create the missile sprites      for (int i = 0; i < 10; i++) {        missileSprite[i] = new MovingSprite(Image.createImage("/Missiles.png"), 11, 11, 0, 0,          MovingSprite.BA_HIDE, this);        missileSprite[i].setVisible(false);      }    }    catch (IOException e) {      System.err.println("Failed loading images!");    }    // Create the layer manager and add the sprites to it    layers = new LayerManager();    layers.append(playerSprite);    for (int i = 0; i < 3; i++) {      layers.append(blobboSprite[i]);      layers.append(jellySprite[i]);      layers.append(timmySprite[i]);      layers.append(explosionSprite[i]);    }    for (int i = 0; i < 10; i++) {      layers.append(missileSprite[i]);    }    // Initialize the music and wave players    try {      InputStream is = getClass().getResourceAsStream("Music.mid");      musicPlayer = Manager.createPlayer(is, "audio/midi");      musicPlayer.prefetch();      musicPlayer.setLoopCount(-1);      is = getClass().getResourceAsStream("Explosion.wav");      explosionPlayer = Manager.createPlayer(is, "audio/X-wav");      explosionPlayer.prefetch();      is = getClass().getResourceAsStream("GameOver.wav");      gameoverPlayer = Manager.createPlayer(is, "audio/X-wav");      gameoverPlayer.prefetch();    }    catch (IOException ioe) {    }    catch (MediaException me) {    }    // Start a new game    newGame();    // Start the animation thread    sleeping = false;    Thread t = new Thread(this);    t.start();  }    public void stop() {    // Close the music and wave players    musicPlayer.close();    explosionPlayer.close();    gameoverPlayer.close();    // Stop the animation    sleeping = true;  }    public void run() {    Graphics g = getGraphics();        // The main game loop    while (!sleeping) {      update();      draw(g);      try {        Thread.sleep(frameDelay);      }      catch (InterruptedException ie) {}    }  }  private void update() {    // Check to see whether the game is being restarted    if (gameOver) {      int keyState = getKeyStates();      if ((keyState & FIRE_PRESSED) != 0)        // Start a new game        newGame();      // The game is over, so don't update anything      return;    }    // Process user input to move the car and fire missiles    int keyState = getKeyStates();    if ((keyState & LEFT_PRESSED) != 0) {      playerSprite.setXSpeed(-2);    }    else if ((keyState & RIGHT_PRESSED) != 0) {      playerSprite.setXSpeed(4);    }    if ((keyState & FIRE_PRESSED) != 0) {      // Play a fire sound      try {        Manager.playTone(ToneControl.C4 + 12, 10, 100);      }      catch (Exception e) {      }      addMissile(playerSprite);    }    playerSprite.update();    // Update the alien and explosion sprites    for (int i = 0; i < 3; i++) {      if (blobboSprite[i].isVisible()) {        blobboSprite[i].update();        blobboSprite[i].nextFrame();      }      if (jellySprite[i].isVisible()) {        jellySprite[i].update();        jellySprite[i].nextFrame();      }      if (timmySprite[i].isVisible()) {        timmySprite[i].update();        timmySprite[i].nextFrame();      }      if (explosionSprite[i].isVisible()) {        if (explosionSprite[i].getFrame() < 3)          explosionSprite[i].nextFrame();        else          explosionSprite[i].setVisible(false);      }    }    // Check for collisions and update the missile sprites    for (int i = 0; i < 10; i++) {      if (missileSprite[i].isVisible()) {        // Is the missile a player missile?        if (missileSprite[i].getFrame() == 0) {          for (int j = 0; j < 3; j++) {            // Did the missile hit a Blobbo alien?            if (blobboSprite[j].isVisible())              if (missileSprite[i].collidesWith(blobboSprite[j], false)) {                // Play a destruction sound                try {                  Manager.playTone(ToneControl.C4 - 6, 100, 100);                }                catch (Exception e) {                }                // Create an explosion                addExplosion(blobboSprite[j]);                // Hide the sprites and update the score                blobboSprite[j].setVisible(false);                missileSprite[i].setVisible(false);                score += 10;                break;              }            // Did the missile hit a Jelly alien?            if (jellySprite[j].isVisible())              if (missileSprite[i].collidesWith(jellySprite[j], false)) {                // Play a destruction sound                try {                  Manager.playTone(ToneControl.C4 - 6, 100, 100);                }                catch (Exception e) {                }                // Create an explosion                addExplosion(jellySprite[j]);                // Hide the sprites and update the score                jellySprite[j].setVisible(false);                missileSprite[i].setVisible(false);                score += 15;                break;              }            // Did the missile hit a Timmy alien?            if (timmySprite[j].isVisible())              if (missileSprite[i].collidesWith(timmySprite[j], false)) {                // Play a destruction sound                try {

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -