Hello! im new in here and i been working with simple process so far.
I need help with movement of my Actor.
I have one class called Bucket and i want to make it like a "wall" i mean i dont want my character to step on the bucket.
Sorry for my english and thanks for reading this.
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
import java.util.List;
import java.util.ArrayList;
/**
* Write a description of class player here.
*
* @author (your name)
* @version (a version number or a date)
*/
public class Player extends Actor
{
private GreenfootImage playerNorth;
private GreenfootImage playerSouth;
private GreenfootImage playerWest;
private GreenfootImage playerWest1;
private GreenfootImage playerEast;
private boolean step;
private boolean down;
private static final int EAST = 0;
private static final int WEST = 1;
private static final int NORTH = 2;
private static final int SOUTH = 3;
private int direction;
/**
* 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()
{
processKeys();
}
/**
* Handle keyboard input.
*/
private void processKeys()
{
int dx = 0, dy = 0;
if (Greenfoot.isKeyDown("up")) moveNorth();
if (Greenfoot.isKeyDown("down")) moveSouth();
if (Greenfoot.isKeyDown("left")) moveWest();
if (Greenfoot.isKeyDown("right")) moveEast();
if (getOneIntersectingObject(Bucket.class) != null){
switch(direction) {
case SOUTH :
setLocation(getX(), getY()-5);
case EAST :
setLocation(getX()-5, getY());
case NORTH :
setLocation(getX(), getY()+5);
case WEST :
setLocation(getX()+5, getY());
}
}
}
private void moveWest()
{
if ( step == true)
{
setImage("playerWest1.png");
step = false;
}
else if( step == false) {
setImage("playerWest2.png");
step = true;
}
else{
setImage("playerWest.png");
}
setLocation(getX()-5, getY());
}
private void moveEast() {
if ( step == true)
{
setImage("playerEast1.png");
step = false;
}
else if( step == false) {
setImage("playerEast2.png");
step = true;
}
else{
setImage("playerEast.png");
}
setLocation(getX()+5, getY());
}
private void moveSouth(){
if(Greenfoot.isKeyDown("down")) {
if ( step == true)
{
setImage("playerSouth1.png");
step = false;
}
else if( step == false) {
setImage("playerSouth2.png");
step = true;
}
else{
setImage("playerSouth.png");
}
setLocation(getX(), getY()+5);
}
}
private void moveNorth(){
if(Greenfoot.isKeyDown("up")){
if ( step == true)
{
setImage("playerNorth1.png");
step = false;
}
else if( step == false) {
setImage("playerNorth2.png");
step = true;
}
else{
setImage("playerNortht.png");
}
setLocation(getX(), getY()-5);
}
}
}

