-->

Tutorial membuat game tikus lapar bagian 2

Post a Comment
lanjut kebagian 2

Background.java
//Name:  Background.java
//Purpose: update and scroll the background image when player moves

package com.basithsteviejhei.mouse;

public class Background {

//local variables
private int bgX, bgY, speedX;

//constructor
public Background(int x, int y){
bgX = x;
bgY = y;
speedX = 0;//at the beggining the background must not move
}

//update and move the background when palyer moves
public void update() {
bgX += speedX;

//based on image of dimension 2160x480
if (bgX <= -2160){
bgX += 4320;
}
}

//getters//
public int getBgX() {
return bgX;
}

public int getBgY() {
return bgY;
}

public int getSpeedX() {
return speedX;
}

//setters//
public void setBgX(int bgX) {
this.bgX = bgX;
}

public void setBgY(int bgY) {
this.bgY = bgY;
}

public void setSpeedX(int speedX) {
this.speedX = speedX;
}

}



Bomb.java 
//Name:  Kamikazi.java
//Purpose: the bomb enemy with the coordinates

package com.basithsteviejhei.mouse;

//android libraries stored in SDK platform
import android.graphics.Rect;//hold 4 integer coordinates for rectangle

public class Bomb extends Enemy {

//constructor
public Bomb(int centerX, int centerY) {

setCenterX(centerX);//x axis coordinates
setCenterY(centerY);//y axis coordinates

}

@Override
public void update() {
centerX += speedX;
speedX = bg.getSpeedX() * 5 + movementSpeed;
r.set(centerX - 25, centerY - 25, centerX + 25, centerY + 35);

if (Rect.intersects(r, Mouse.yellowRed)) {
checkCollision();
}

}
public void subtractHealth(int health){
this.health-=health;
}

}


Cheese,java
//Name:  Cheese.java
//Purpose: the cheese reward with the coordinates


package com.basithsteviejhei.mouse;

public class Cheese extends Rewards {

//constructor
public Cheese(int centerX, int centerY) {

setCenterX(centerX);//x axis coordinates
setCenterY(centerY);//y axis coordinates

}

}

Enemy.java
//Name:  Enemy.java
//Purpose: all the attributes and functions of the enemy like health, death, collision and more

package com.basithsteviejhei.mouse;

//android libraries stored in SDK platform
import android.graphics.Rect;//hold 4 integer coordinates for rectangle

public class Enemy {

private int power;
protected int centerX;
protected int speedX;
protected int centerY;
protected Background bg = GameScreen.getBg1();
private Mouse Mouse = GameScreen.getMouse();

public Rect r = new Rect(0, 0, 0, 0);
protected int health;//total health of enemy
public boolean alive=true;

protected int movementSpeed;//speed of enemy

//Behavioral Method, update coordinates and intersects
public void update() {
follow();
centerX += speedX;
speedX = bg.getSpeedX() * 5 + movementSpeed;
r.set(centerX - 25, centerY - 25, centerX + 25, centerY + 35);

if (Rect.intersects(r, Mouse.yellowRed)) {
checkCollision();
}

}

//check if the enemy is killed by the bullets and update score
public void checkKillsByBullets(){
if ((this.health == 0) && (this.alive=true))
{
Mouse.addKamikaziKilled(1);
alive=false;
if (Settings.soundEnabled)
{
Assets.collision.play(1);
}
}
}

//check if mouse and enemy had collision
protected void checkCollision() {
if (Rect.intersects(r, Mouse.rect)|| Rect.intersects(r, Mouse.rect2) || Rect.intersects(r, Mouse.rect3) || Rect.intersects(r, Mouse.rect4)) {
die();
}
}

//the enemy follow the mouse
public void follow() {

if (centerX < -95 || centerX > 810){
movementSpeed = 0;
}
else if (Math.abs(Mouse.getCenterX() - centerX) < 5) {
movementSpeed = 0;
}
else {
if (Mouse.getCenterX() >= centerX) {
movementSpeed = 1;
} else {
movementSpeed = -1;
}
}

}

//enemy is die
public void die() {
this.setHealth(0);
Mouse.subtractHealth(10);
this.setCenterX(-100);

if (Settings.soundEnabled)
{
Assets.collision.play(1);
}
}

//when background moves, the enemy must move to the same direction
public Background getBg() {
return bg;
}
public void setBg(Background bg) {
this.bg = bg;
}

//getters//
public int getPower() {
return power;
}

public int getSpeedX() {
return speedX;
}

public int getCenterX() {
return centerX;
}

public int getCenterY() {
return centerY;
}

public int getHealth() {
return health;
}


//setters//
public void setHealth(int health) {
this.health = health;
}
public void setPower(int power) {
this.power = power;
}

public void setSpeedX(int speedX) {
this.speedX = speedX;
}

public void setCenterX(int centerX) {
this.centerX = centerX;
}

public void setCenterY(int centerY) {
this.centerY = centerY;
}

public void subtractHealth(int health){
this.health-=health;
}
}


Related Posts

Post a Comment

Subscribe Our Newsletter