java游戏中人物升级获取金币_用java制作吃金币游戏

这是一篇关于初学者用Java实现的吃金币小游戏的文章,通过代码展示了游戏的实现过程,包括精灵移动、金币旋转、碰撞检测等功能。游戏使用了一个第三方的游戏引擎。
摘要由CSDN通过智能技术生成

//下面是个人制作的吃金币的小游戏的代码,

//文章底下还有附带游戏文件,可以看到游戏的输出效果(该游戏是使用如鹏网的游戏引擎)

//本人初学者技术有限,做得不好,勿怪!

package java1;

import java.awt.Color;

import java.awt.Dimension;

import java.awt.event.KeyEvent;

import com.rupeng.game.GameCore;

class haha2 implements Runnable

{

public static void main(String[] args)

{

GameCore.start(new haha2());

}

public void run()

{

GameCore.setGameTitle("吃金币游戏");

GameCore.loadBgView("71_141208145117_4.jpg");

int birdNum = 0;

int xbirdData = 200;// 精灵birdNum的横坐标

int ybirdData = 200;// 精灵birdNum的纵坐标

GameCore.createSprite(birdNum, "bird");

GameCore.setSpritePosition(birdNum, xbirdData, ybirdData);

GameCore.playSpriteAnimate(birdNum, "fly", true);

int[] xData = { 30, 165, 276, 279, 309, 349, 474, 502 };// 金币的横坐标

int[] yData = { 21, 36, 71, 89, 135, 269, 307, 342 };// 金币的纵坐标

boolean[] coinIsDead = new boolean[8];// 判断金币是否被吃掉

int[] coinNums = { 1, 2, 3, 4, 5, 6, 7, 8 };// 金币的编码

// 游戏窗口的大小

Dimension gameSize = GameCore.getGameSize();

int gameWidth = gameSize.width;

int gameHeight = gameSize.height - 20;

// 精灵的大小

Dimension birdSize = GameCore.getSpriteSize(birdNum);

int birdWidth = birdSize.width;

int birdHeight = birdSize.height;

// 右上角 大金币(图片)

int bigcoinNum = 00;

GameCore.createImage(bigcoinNum);

GameCore.setImageSource(bigcoinNum, "00.png");

GameCore.setImagePosition(bigcoinNum, 900, 0);

// 右上角 吃掉金币的数量(文本)

int deadcoinTextNum = 2;

GameCore.createText(deadcoinTextNum, "X0");

GameCore.setTextPosition(deadcoinTextNum, 930, 0);

GameCore.setTextFontSize(deadcoinTextNum, 30);

GameCore.setTextColor(deadcoinTextNum, Color.yellow);

// 金币的分布位置

for (int i = 0; i < coinNums.length; i++)

{

int xcoin = xData[i];

int ycoin = yData[i];

int coinNum = coinNums[i];

GameCore.createSprite(coinNum, "coin");

GameCore.playSpriteAnimate(coinNum, "rotate", true);

GameCore.setSpritePosition(coinNum, xcoin, ycoin);

}

// 键盘输入,控制birdNum的移动

while (true)

{

int ac = GameCore.getPressedKeyCode();

if (ac == KeyEvent.VK_UP && ybirdData > 0)

{

ybirdData = ybirdData - 5;

GameCore.pause(30);

GameCore.setSpritePosition(birdNum, xbirdData, ybirdData);

}

if (ac == KeyEvent.VK_DOWN && ybirdData < gameHeight - birdHeight)

{

ybirdData = ybirdData + 5;

GameCore.pause(30);

GameCore.setSpritePosition(birdNum, xbirdData, ybirdData);

}

if (ac == KeyEvent.VK_LEFT && xbirdData > 0)

{

GameCore.setSpriteFlipX(birdNum, true);

xbirdData = xbirdData - 5;

GameCore.pause(30);

GameCore.setSpritePosition(birdNum, xbirdData, ybirdData);

}

if (ac == KeyEvent.VK_RIGHT && xbirdData < gameWidth - birdWidth)

{

GameCore.setSpriteFlipX(birdNum, false);

xbirdData = xbirdData + 5;

GameCore.pause(30);

GameCore.setSpritePosition(birdNum, xbirdData, ybirdData);

}

for (int i = 0; i < coinNums.length; i++)

{

/*

* boolean coinIsDeadData = coinIsDead[i]; if (coinIsDeadData) {

* continue; }

*/

int coinNum = coinNums[i];

int xcoin = xData[i];

int ycoin = yData[i];

GameCore.setSpritePosition(coinNum, xcoin, ycoin);

// 先得到金币的大小

Dimension coinSize = GameCore.getSpriteSize(coinNum);

int coinWidth = coinSize.width;

int coinHeight = coinSize.height;

// 金币的中心位置

int coinCenterX = xcoin + coinWidth / 2;

int coinCenterY = ycoin + coinHeight / 2;

// bird精灵的中心位置

int birdCenterX = xbirdData + birdWidth / 2;

int birdCenterY = ybirdData + birdHeight / 2;

double distanceBirdCoin = Math.pow((coinCenterX - birdCenterX) * (coinCenterX - birdCenterX)

+ (coinCenterY - birdCenterY) * (coinCenterY - birdCenterY), 0.5);

int deadcoinCount = 0;

if (distanceBirdCoin < 20)

{

GameCore.hideSprite(coinNum);

// 计算吃掉金币的数量

for (int j = 0; j < coinIsDead.length; j++)

{

if (coinIsDead[j] == true)

{

deadcoinCount++;

}

}

GameCore.setText(deadcoinTextNum, "X" + deadcoinCount);

}

}

// GameCore.pause(456);

}

}

}

标签:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值