Change 'Laser' to 'LaserWall' and correct the spelling of 'connectdLaser'.
public class Player extends Actor
{
public void act()
{
movement();
}
public Player()
{
GreenfootImage myImage = getImage();
int myNewHeight = (int)myImage.getHeight()/3;
int myNewWidth = (int)myImage.getWidth()/3;
myImage.scale(myNewWidth, myNewHeight);
}
public void movement()
{
if(Greenfoot.isKeyDown("right"))
{
setRotation(0);
if(getOneObjectInFront(Wall.class)==null)
if(getOneObjectInFront(Maze.class)==null)
if(getOneObjectInFront(LaserWall.class)==null)
move(5);
}
if(Greenfoot.isKeyDown("left"))
{
setRotation(180);
if(getOneObjectInFront(Wall.class)==null)
if(getOneObjectInFront(Maze.class)==null)
if(getOneObjectInFront(LaserWall.class)==null)
move(5);
}
if(Greenfoot.isKeyDown("up"))
{
setRotation(270);
if(getOneObjectInFront(Wall.class)==null)
if(getOneObjectInFront(Maze.class)==null)
if(getOneObjectInFront(LaserWall.class)==null)
move(5);
}
if(Greenfoot.isKeyDown("down"))
{
setRotation(90);
if(getOneObjectInFront(Wall.class)==null)
if(getOneObjectInFront(Maze.class)==null)
if(getOneObjectInFront(LaserWall.class)==null)
move(5);
}
}
private Actor getOneObjectInFront(Class c)
{
GreenfootImage myImage = getImage();
int distanceToFront = myImage.getWidth();
int xOffset = (int)Math.ceil(distanceToFront*Math.cos(Math.toRadians(getRotation())));
int yOffset = (int)Math.ceil(distanceToFront*Math.sin(Math.toRadians(getRotation())));
return (getOneObjectAtOffset(xOffset, yOffset, c));
}
}import greenfoot.*;
public class LaserButton extends Actor
{
private static final GreenfootImage locked = new GreenfootImage("lock.png");
private static final GreenfootImage opened = new GreenfootImage("open.png");
private LaserWall laser;
public LaserButton(LaserWall actor)
{
laser = actor;
setImage(locked);
}
public void act()
{
if (laser.getWorld() != null && isTouching Player.class))
{
getWorld().removeObject(laser);
setImage(opened);
}
}
}LaserWall laser = new LaserWall(); addObject(laser, << wherever >>); LaserButton button = new LaserButton(laser); addObject(button, << wherever >>); // this button will remove laser added to world two lines up