import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) /** * Write a description of class Player here. * * @author (your name) * @version (a version number or a date) */ public class Player extends Actor { /** * Act - do whatever the Player wants to do. This method is called whenever * the 'Act' or 'Run' button gets pressed in the environment. */ private int speed; private int score; double dy=0; double g = 1.3; double boost = -5; public Player(){ intro = true; Gun = new Gun(this); //new gun to shoot speed = 5; //speed of character score = 0; //starting score multi = 1; //score multiplyer } public void act() { checkKeys(); checkOutOfBounds(); if (!intro){ checkDamage(); //check if hit by enemy (burger) checkPickup(); //whether picked up banana checkDead(); //whether life = 0 } } public void checkKeys(){ if(Greenfoot.isKeyDown("up")){ dy=boost; } if(Greenfoot.isKeyDown("space")){ Gun.shoot(); } } public int getSpeed(){ return speed; } public int getScore(){ return score; } public void displayGameOver(){ GameOver gameOver = new GameOver(); //Creating new variable called gameover, add it to the world. getWorld().addObject(gameOver, getWorld().getWidth()/2, getWorld().getHeight()/2); //Put it in the center Greenfoot.stop(); } public void checkOutOfBounds(){ int width = getWorld().getWidth(); int x = getX(); if(x > width) setLocation(width, y); if(x < 0) setLocation(0, y); } //checks whether player is hit by burger public void checkDamaged() { Enemy e = (Enemy) getOneIntersectingObject(Enemy.class); LifeCounter lc = getLifeCounter(); // try to find an intersecting Bullet or Enemy object if ( (e != null )) //if a burger is intersecting { if(e != null) getWorld().removeObject(e); lc.loseLife(); //lose a life... } } public void addSpeed() { speed++; } public void addAttack() { attack++; } public void addScore(int s) { score += (s * multi); } public void checkPickup() { Banana n =(Health) getOneIntersectingObject(Banana.class); if(n != null) { healthup = n.getType(); if(n!=null) getWorld().removeObject(n); addScore(50); setHealth(); } } public void setPower() { if (healthup == 0){ //BACK TO NORMAL setDefault(); System.out.println("RESET!"); } //SUPPORT else if(healthup == 1){ //FULL HEALTH LifeCounter lc = getLifeCounter(); lc.setLives(lc.getMaxLives()); } else if(healthup == 2){ //EXTRA LIFE LifeCounter lc = getLifeCounter(); lc.addLife(); } else if(healthup == 3){ //FULL HEALTH LifeCounter lc = getLifeCounter(); lc.addLife(); } else if(healthup == 4){ //EXTRA LIFE LifeCounter lc = getLifeCounter(); lc.addLife(); } } public void setDefault() { Gun2 = new Gun(this); healthUp = 0; multi = 1; } public void checkDead() { LifeCounter lc = getLifeCounter(); if(lc.getLives() <= 0) { //If lives = 0, display game over GameOver ga = new GameOver(); getWorld().addObject(ga, 250, 250); getWorld().removeObject(this); } } }
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) /** * Write a description of class LifeCounter here. * * @author (your name) * @version (a version number or a date) */ public class LifeCounter extends Actor { /** * Act - do whatever the LifeCounter wants to do. This method is called whenever * the 'Act' or 'Run' button gets pressed in the environment. */ private int lives, maxLives; public void act() { // Add your action code here. } pubic LifeCounter(int v){ lives = v; maxLives = v; } public int getLives(){ return lives; } public void loseLife(){ if(lives>0){lives--;} } public void addLife(){ if(lives < maxLives){lives++;} } public void setLives(int x){ if(x <= maxLives){ lives = x; } else{ lives = maxLives; } } public int getMaxLives() { return maxLives; } }