Character falling too fast for detection to occur and falls through floor. Trying to reduce "private int acceleration = 1;" into double/float but error appears. Code:P.S Working in v 3.0.4
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
import java.awt.Color;
/**
* Write a description of class Character here.
*
* @author (your name)
* @version (a version number or a date)
*/
public class Character extends Actor
{
private int Speed = 0;
private int acceleration = 1;
private boolean jumping;
private int jumpStrength = 11;
private int speed = 2;
/**
* Act - do whatever the Character wants to do. This method is called whenever
* the 'Act' or 'Run' button gets pressed in the environment.
*/
public void act()
{
Movement();
checkFall();
}
public void Movement()
{
if (Greenfoot.isKeyDown("d"))
{
move(3);
}
if (Greenfoot.isKeyDown("a"))
{
move(-3);
}
if (Greenfoot.isKeyDown("w") && jumping == false)
{
Jump();
}
}
public void Jump()
{
Speed = Speed - jumpStrength;
jumping = true;
Fall();
}
public void Fall()
{
setLocation(getX(), getY() + Speed);
if (Speed <= 9)
{
Speed = Speed + acceleration;
}
jumping = true;
}
public void checkFall()
{
Level1 level1 = getWorldOfType(Level1.class);
GreenfootImage img = level1.getBackground();
if (Color.GREEN.equals(img.getColorAt(getX(), getY() + getImage().getHeight()/2)))
{
Speed = 0;
jumping = false;
}
else
{
Fall();
}
}
}
