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

📄 foundcanvas.java

📁 用Kjava写的一个简单的小游戏!供初学者研究研究
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
      if (playerSprite.collidesWith(trapSprite[i], true)) {
        try {
          diePlayer.start();
        }
        catch (MediaException me) {
        }
        blood = 0;
      }
    }

    for (int i = 0; i < foodNum; i++) {
      foodSprite[i].nextFrame();
      if (playerSprite.collidesWith(foodSprite[i], true)) {
        try {
          Manager.playTone(ToneControl.C4 + 12, 250, 100);
        }
        catch (MediaException me) {
        }
        blood = Math.min(blood + 10, 60);
        placeSprite(foodSprite[i], wallLayer);
      }
    }

    for (int i = 0; i < yDemonNum; i++) {
      yDemonSprite[i].nextFrame();
      if (playerSprite.collidesWith(yDemonSprite[i], true)) {
        try {
          scorePlayer.start();
        }
        catch (MediaException me) {
          me.printStackTrace();
        }
        score += 5;
        placeSprite(yDemonSprite[i], wallLayer);
      }
    }

    for (int i = 0; i < birdNum; i++) {
      birdSprite[i].update();
      if (playerSprite.collidesWith(birdSprite[i], true)) {
        try {
          hurtPlayer.start();
        }
        catch (MediaException me) {
        }
        blood -= 10;
        placeSprite(birdSprite[i], wallLayer);
      }
    }

    for (int i = 0; i < elephantNum; i++) {
      elephantSprite[i].update();
      if (playerSprite.collidesWith(elephantSprite[i], true)) {
        try {
          hurtPlayer.start();
        }
        catch (MediaException me) {
        }
        blood -= 5;
      }
    }

    BelialSprite.update();
    if (playerSprite.collidesWith(BelialSprite, true)) {
      try {
        hHurtPlayer.start();
      }
      catch (MediaException me) {
      }
      blood -= 10;
    }
		
    if (blood <= 0) {
      try {
        //musicPlayer.stop();
        diePlayer.start();
      }
      catch (MediaException me) {
      }

      playerSprite.setVisible(false);
      updateHiScores();
      gameOver = true;
    }
  }

  private void draw(Graphics g) {
    g.drawImage(infoBar, 0, 0, Graphics.TOP | Graphics.LEFT);
    g.setColor(0X00FF00);
    g.setFont(Font.getFont(Font.FACE_SYSTEM, Font.STYLE_BOLD, Font.SIZE_MEDIUM));
    g.drawString("Blood:", 2, 1, Graphics.TOP | Graphics.LEFT);
    g.drawString("Deamon Gotten: " + score, 110, 1,
                 Graphics.TOP | Graphics.LEFT);
    g.setColor(255, 0, 0);
    g.fillRect(40, 3, blood, 12);

    manager.paint(g, 0, infoBar.getHeight());

    if (gameOver) {

      g.setColor(255, 50, 100);
      g.setFont(Font.getFont(Font.FACE_SYSTEM, Font.STYLE_BOLD, Font.SIZE_LARGE));
      g.drawString("GAME OVER", 120, 100, Graphics.TOP | Graphics.HCENTER);
      g.setColor(0XF20000);
      g.setFont(Font.getFont(Font.FACE_SYSTEM, Font.STYLE_BOLD,
                             Font.SIZE_LARGE));
      if (score == 0) {
        g.drawString("很遗憾,你一分也没得啊!", 120, 150,
                     Graphics.TOP | Graphics.HCENTER);
      }
      else {
        g.drawString("你得了" + score + " 分.", 120, 150,
                     Graphics.TOP |
                     Graphics.HCENTER);
      }

      /*g.setColor(255, 255, 255); // white
      g.setFont(Font.getFont(Font.FACE_SYSTEM, Font.STYLE_BOLD, Font.SIZE_LARGE));
      for (int i = 0; i < 5; i++) {
        g.drawString(Integer.toString(highScores[i]), 120, 170 + (i * 15),
                     Graphics.TOP | Graphics.HCENTER);
      }*/
    }
    flushGraphics();
  }

  private void newGame() {
    gameOver = false;
    blood = 60;
    score += score;

    playerSprite.setVisible(true);

    playerSprite.setPosition(440, 690);
    xView = playerSprite.getX() - ( (getWidth() - playerSprite.getWidth()) / 2);
    yView = playerSprite.getY() -
        ( (getHeight() - playerSprite.getHeight()) / 2);
    manager.setViewWindow(xView, yView, getWidth(),
                          getHeight() - infoBar.getHeight());

    /*try {
      musicPlayer.setMediaTime(0);
      musicPlayer.start();
    }
    catch (MediaException me) {
    }*/
  }

  private void placeSprite(Sprite sprite, TiledLayer barrier) {

    sprite.setPosition(Math.abs(rand.nextInt() % barrier.getWidth()) -
                       sprite.getWidth(),
                       Math.abs(rand.nextInt() % barrier.getHeight()) -
                       sprite.getHeight());

    while (sprite.collidesWith(barrier, true)) {
      sprite.setPosition(Math.abs(rand.nextInt() % barrier.getWidth()) -
                         sprite.getWidth(),
                         Math.abs(rand.nextInt() % barrier.getHeight()) -
                         sprite.getHeight());
    }
  }
/*
  private void placePlayerSprite(TiledLayer barrier) {
    for (int i = 0; i < birdNum; i++) {
      if (playerSprite.collidesWith(birdSprite[i], true)) {
        this.collide(playerSprite, landLayer);

      }
    }
    for (int i = 0; i < elephantNum; i++) {
      if (playerSprite.collidesWith(elephantSprite[i], true)) {
        this.collide(playerSprite, landLayer);

      }
    }
    for (int i = 0; i < yDemonNum; i++) {
      if (playerSprite.collidesWith(yDemonSprite[i], true)) {
        this.collide(playerSprite, landLayer);

      }
    }
    for (int i = 0; i < rDemonNum; i++) {
      if (playerSprite.collidesWith(rDemonSprite[i], true)) {
        this.collide(playerSprite, landLayer);
      }
    }
    for (int i = 0; i < foodNum; i++) {
      if (playerSprite.collidesWith(foodSprite[i], true)) {
        this.collide(playerSprite, landLayer);

      }
    }
    for (int i = 0; i < trapNum; i++) {
      if (playerSprite.collidesWith(trapSprite[i], true)) {
        this.collide(playerSprite, landLayer);
      }
    }

  }

  private void collide(Sprite sprite, TiledLayer barrier) {
    sprite.setPosition(Math.abs(rand.nextInt() % barrier.getWidth()) -
                       sprite.getWidth(),
                       Math.abs(rand.nextInt() % barrier.getHeight()) -
                       sprite.getHeight());

  }*/

  private void updateHiScores() {
    // See whether the current score made the hi score list
    int i;
    for (i = 0; i < 5; i++) {
      if (score >= highScores[i]) {
        break;
      }
    }

    // Insert the current score into the hi score list
    if (i < 5) {
      for (int j = 4; j > i; j--) {
        highScores[j] = highScores[j - 1];
      }
      highScores[i] = score;
    }
  }

  public void readHiScores() {
    RecordStore rs = null;
    try {
      rs = RecordStore.openRecordStore("Found", false);
    }
    catch (Exception e) {
    }

    if (rs != null) {
      try {
        int len;
        byte[] recordData = new byte[6];

        for (int i = 1; i <= rs.getNumRecords(); i++) {
          if (rs.getRecordSize(i) > recordData.length) {
            recordData = new byte[rs.getRecordSize(i)];
          }
          len = rs.getRecord(i, recordData, 0);
          highScores[i - 1] = (Integer.parseInt(new String(recordData, 0, len)));
        }
      }
      catch (Exception e) {
        System.err.println("Failed reading hi scores!");
      }

      // Close the record store
      try {
        rs.closeRecordStore();
      }
      catch (Exception e) {
        System.err.println("Failed closing hi score record store!");
      }
    }
    else {
      // The record store doesn't exist, so initialize the scores to 0
      for (int i = 0; i < 5; i++) {
        highScores[i] = 0;
      }
    }
  }

  private void writeHiScores() {
    try {
      RecordStore.deleteRecordStore("Found");
    }
    catch (Exception e) {
    }
    RecordStore rs = null;
    try {
      rs = RecordStore.openRecordStore("Found", true);
    }
    catch (Exception e) {
      System.err.println("Failed creating hi score record store!");
    }


    for (int i = 0; i < 5; i++) {
      String highScore = Integer.toString(highScores[i]);
      byte[] recordData = highScore.getBytes();

      try {
        rs.addRecord(recordData, 0, recordData.length);
      }
      catch (Exception e) {
        System.err.println("Failed writing hi scores!");
      }
    }
    try {
      rs.closeRecordStore();
    }
    catch (Exception e) {
      System.err.println("Failed closing hi score record store!");
    }
  }

}

⌨️ 快捷键说明

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