I have been trying to make my game end with my code, but i don't know why it can't end while the Main character is touching the enemy more than 10 times...
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
/**
* Write a description of class GameEnd here.
*
* @author (your name)
* @version (a version number or a date)
*/
public class GameOver extends Actor
{
private int HP = 10;
/**
* Act - do whatever the GameEnd wants to do. This method is called whenever
* the 'Act' or 'Run' button gets pressed in the environment.
*/
public void act()
{
GameOver();
if (HP == 0)
{
Greenfoot.stop();
}
}
public int GameOver()
{
Actor Item1 = getOneIntersectingObject(Item_1.class);
if (Item1 != null )
{
HP += 1;
}
Actor Item2 = getOneIntersectingObject(Item_2.class);
if(Item2 != null)
{
HP += 0.5;
}
Actor Enemy1 = getOneIntersectingObject(Enemy_1.class);
Actor Enemy2 = getOneIntersectingObject(Enemy_2.class);
Actor Enemy3 = getOneIntersectingObject(Enemy_3.class);
if (Enemy1 != null) {
HP -= 1;
}
if (Enemy2 != null)
{
HP -= 1;
}
if (Enemy3 != null)
{
HP -= 1;
}
return HP;
}
}
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
/**
* Write a description of class MainCharacter here.
*
* @author (your name)
* @version (a version number or a date)
*/
public class MainCharacter extends Actor
{
private boolean spaceDown;
//private int Score = 10;
/**
* Act - do whatever the MainCharacter wants to do. This method is called whenever
* the 'Act' or 'Run' button gets pressed in the environment.
*/
public void act()
{
int speed = 3;
checkFire();
if(Greenfoot.isKeyDown("up"))
{
setLocation(getX(), getY() - speed);
}
if(Greenfoot.isKeyDown("down"))
{
setLocation(getX(), getY() + speed);
}
if(Greenfoot.isKeyDown("left"))
{
setLocation(getX() - speed, getY());
}
if(Greenfoot.isKeyDown("right"))
{
setLocation(getX()+ speed, getY());
}
Actor enemy_1 = getOneIntersectingObject(Enemy_1.class);
if(enemy_1 != null) {
getWorld().removeObject(enemy_1);
}
Actor enemy_2 = getOneIntersectingObject(Enemy_2.class);
if(enemy_2 != null) {
getWorld().removeObject(enemy_2);
}
Actor enemy_3 = getOneIntersectingObject(Enemy_3.class);
if(enemy_3 != null) {
getWorld().removeObject(enemy_3);
}
Actor Item_1 = getOneIntersectingObject(Item_1.class);
if(Item_1 != null) {
getWorld().removeObject(Item_1);
}
Actor Item_2 = getOneIntersectingObject(Item_2.class);
if(Item_2 != null) {
getWorld().removeObject(Item_2);
}
/*Actor Item1 = getOneIntersectingObject(Item_1.class);
if (Item1 != null )
{
Score += 1;
}
Actor Item2 = getOneIntersectingObject(Item_2.class);
if(Item2 != null)
{
Score += 0.5;
}
Actor Enemy1 = getOneIntersectingObject(Enemy_1.class);
Actor Enemy2 = getOneIntersectingObject(Enemy_2.class);
Actor Enemy3 = getOneIntersectingObject(Enemy_3.class);
if (Enemy1 != null||Enemy2 != null||Enemy3 != null) {
Score -= 1;
}
if (Score == 0)
{
Greenfoot.stop();
}*/
}
public void checkFire()
{
if(!spaceDown && Greenfoot.isKeyDown("space"))
{
spaceDown = true;
getWorld().addObject(new Bullet(), getX(), getY());
}
if (spaceDown && !Greenfoot.isKeyDown("space"))
{
spaceDown = false;
}
}
}
