📄 foundcanvas.java
字号:
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 + -