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 Scroller
{
int gravity;
/**
* Act - do whatever the Player wants to do. This method is called whenever
* the 'Act' or 'Run' button gets pressed in the environment.
*/
public void act()
{
checkKeyPress(); //This should be included in the act() method so that the game is always checking for user input.
gravity--;
setLocation(getX(), getY() - gravity);
checkForJump();
if(getOneIntersectingObject(Enemy.class)!=null){
displayGameOver();
Greenfoot.stop();
}
}
/**
* This is used for responding to keyboard input by the user.
* This will only happen when the player is far enough to the left or right of the screen for scrolling to be needed.
* Code to make the character jump is below.
*/
public void checkKeyPress()
{
MyWorld World = (MyWorld) getWorld();
Scroller scroller = (Scroller) World.getScroller();
if(Greenfoot.isKeyDown("left") && scroller.shouldScroll == false)
{
move(-3);
}
else if(Greenfoot.isKeyDown("right") && scroller.shouldScroll == false)
{
move(3);
}
}
private void checkForJump(){
MyWorld World = (MyWorld) getWorld();
Scroller scroller = (Scroller) World.getScroller();
if(Greenfoot.isKeyDown("space") && scroller.shouldScroll == false){
gravity = 20; // this will make the character jump
}
else if(getOneIntersectingObject(Ground.class)){
gravity = 0;
}
}
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();
}
/**
* This method will make the player move right a certain amount.
* Entering a negative amount will cause a movement towards the left.
* @param The speed of the movement
*/
public void move(int amount)
{
int x = getX() + amount;
int y = getY();
setLocation(x, y);
}
}
}
