i need helo walking on platform. my player seems to be falling through the platform. heres the code!
import greenfoot.*;
import java.util.List;
import java.util.ArrayList; // (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 Actor2
{
private int speed = 2; //movement speed
private int vSpeed = 0; //vertical speed
private int acceleration = 2; //gravity effect while falling
private int jumpStrength = -8;
/**
* 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()
{
move();
}
public void move()
{
if(Greenfoot.isKeyDown("W"))
{
vSpeed = jumpStrength;
fall();
}
if(Greenfoot.isKeyDown("D"))
{
setLocation(getX()+3, getY());
animate();
}
if(Greenfoot.isKeyDown("A"))
{
setLocation(getX()-3, getY());
}
if(Greenfoot.isKeyDown("space"))
{
}
}
private int imageTimer;
private int maxImageTime = 10;
public void animate()
{
if (imageTimer%maxImageTime == 0)
{
if (imageTimer == 0) setImage("Walk3.fw.png" /* +".png" */); // or whatever
else setImage("Spritewalk2.fw.png" /* +".png" */); // or whatever
}
imageTimer = (imageTimer+1)%(maxImageTime*2);
}
public void fall()
{
setLocation(getX(), getY()+vSpeed);
vSpeed = vSpeed + acceleration;
}
public boolean onPlatform()
{
Actor under = getOneObjectAtOffset (0, getImage().getHeight()/2, Platform1.class);
return under != null;
}
public void checkFall()
{
if (onPlatform())
{
vSpeed = 0;
}
else
{
fall();
}
}
}
