你的位置:首页 > 软件开发 > Java > 吃金币游戏2.0版 新增新增炸弹功能 新增游戏倒计时功能 使用如鹏游戏引擎制作窗体 一维数组设置金币

吃金币游戏2.0版 新增新增炸弹功能 新增游戏倒计时功能 使用如鹏游戏引擎制作窗体 一维数组设置金币

发布时间:2017-11-02 12:00:27
package com.swift;import java.awt.Color;import java.awt.Point;import java.awt.event.KeyEvent;import com.rupeng.game.GameCore;/** * @author s ...
package com.swift;import java.awt.Color;import java.awt.Point;import java.awt.event.KeyEvent;import com.rupeng.game.GameCore;/** * @author swift * @version 2.0 * @category 新增炸弹功能,精灵如果吃到炸弹立即死亡,游戏结束; * @category 新增游戏倒计时功能,倒计时结束前吃完金币则胜利,没有吃完则失败 */public class Coin2 implements Runnable { public static void main(String[] args) {  GameCore.start(new Coin2()); } @Override public void run() {  GameCore.setGameSize(800, 345);  GameCore.setGameTitle("吃金币游戏2.0");  GameCore.loadBgView("bg.jpg");  // 女精灵  int spriteGirl = 0;  GameCore.createSprite(spriteGirl, "guizi");  GameCore.playSpriteAnimate(spriteGirl, "run", true);  GameCore.setSpritePosition(spriteGirl, 140, 190);  // 使用数组放置8个金币  int[] coinNum = { 1, 2, 3, 4, 5, 6, 7, 8 };  int[] coinXDate = { 100, 200, 300, 400, 500, 600, 700, 730 };  int[] coinYDate = { 140, 180, 150, 190, 140, 170, 160, 140 };  //boolean[] coinIsDead = new boolean[8];    GameCore.createImage(0);  GameCore.setImageSource(0, "bigCoin.png");  GameCore.setImagePosition(0, 710, 20);  GameCore.createText(0, "NUM");  GameCore.setTextColor(0, Color.WHITE);  GameCore.setTextPosition(0, 650, 25);  GameCore.createText(1, "0");  GameCore.setTextPosition(1, 760, 25);  GameCore.setTextColor(1, Color.WHITE);  // 另一种初始化数组方法 boolean[]  boolean[] coinIsDead={false,false,false,false,false,false,false,false};  for (int i = 0; i < coinNum.length; i++) {   GameCore.createSprite(coinNum[i], "coin");   GameCore.setSpritePosition(coinNum[i], coinXDate[i], coinYDate[i]);   GameCore.playSpriteAnimate(coinNum[i], "rotate", true);  }  for (;;) {   int codeNum = GameCore.getPressedKeyCode();   Point position = GameCore.getSpritePosition(spriteGirl);   if (codeNum == KeyEvent.VK_UP || codeNum == KeyEvent.VK_W) {    if (position.y > 135) {     GameCore.setSpritePosition(spriteGirl, position.x, --position.y);     GameCore.pause(1);    }   }   if (codeNum == KeyEvent.VK_DOWN || codeNum == KeyEvent.VK_S) {    if (position.y < 190) {     GameCore.setSpritePosition(spriteGirl, position.x, ++position.y);     GameCore.pause(1);    }   }   if (codeNum == KeyEvent.VK_LEFT || codeNum == KeyEvent.VK_A) {    if (position.x > 0) {     GameCore.setSpriteFlipX(spriteGirl, true);     GameCore.setSpritePosition(spriteGirl, --position.x, position.y);     GameCore.pause(2);    }   }   if (codeNum == KeyEvent.VK_RIGHT || codeNum == KeyEvent.VK_D) {    if (position.x < 730) {     GameCore.setSpriteFlipX(spriteGirl, false);     GameCore.setSpritePosition(spriteGirl, ++position.x, position.y);     GameCore.pause(1);    }   }   Point pGirl = GameCore.getSpritePosition(spriteGirl);   for (int i = 0; i < coinNum.length; i++) {    if(coinIsDead[i]) {     continue;    }    Point pCoin = GameCore.getSpritePosition(coinNum[i]);    double distance = Math.sqrt((Math.pow((pCoin.x - pGirl.x), 2) + Math.pow((pCoin.y - pGirl.y), 2)));    if (distance < 30) {     GameCore.hideSprite(coinNum[i]);     coinIsDead[i] = true;     int textNum = 0;//这句含义很大,无限循环每次到这清零,不然数字无限疯长     for(int j=0;j<coinNum.length;j++) {      if(coinIsDead[j]==true){//我把这写成了i,所以只要吃掉一个,就是8了,应该是j       textNum++;      }     }     GameCore.setText(1, Integer.toString(textNum));//这句放在循环外边,不然    }   }  } }}

 

原标题:吃金币游戏2.0版 新增新增炸弹功能 新增游戏倒计时功能 使用如鹏游戏引擎制作窗体 一维数组设置金币

关键词:

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

可能感兴趣文章

我的浏览记录