While compiling i get this error : constructer laser in class laser cannot be applied to given types;
required: Counter
required: no arguments
reason: actual and formal arguments lists differ in length
I would be really thankful if anybody could help me out. I am quite new to greenfoot
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
/**
* Write a description of class rocket here.
*
* @author (your name)
* @version (a version number or a date)
*/
public class rocket extends Actor
{
private int speed = 3;
public void act()
{
if(Greenfoot.isKeyDown("left"))
{
move(0 - speed);
}
if(Greenfoot.isKeyDown("right"))
{
move(speed);
}
schietAlien();
}
/**
*/
public void schietAlien()
{ String knop;
knop=Greenfoot.getKey();
if ( knop=="space")
{
getWorld().addObject(new laser(), getX(), getY()-5);
}
}
}
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
public class laser extends Actor
{
private Counter counter;
public laser(Counter pointCounter)
{
counter = pointCounter;
}
public void act()
{
setLocation(getX(),getY()-5);
if(foundAlien()) {
eatalien();
counter.add(1);
}
aanRandWereld();
}
public void eatalien()
{
Actor alien = getOneObjectAtOffset(0, 0, alien.class);
if(alien != null) {
getWorld().removeObject(alien);
}
}
public boolean foundAlien()
{
Actor alien = getOneObjectAtOffset(0, 0, alien.class);
if(alien != null) {
return true;
}
else {
return false;
}
}
public void aanRandWereld()
{
if(atWorldEdge())
{
getWorld().removeObject(this);
}
}
public boolean atWorldEdge()
{ if(getX() < 10 || getX() > getWorld().getWidth() - 10) return true; if(getY() < 10 || getY() > getWorld().getHeight() - 10) return true; else return false; }
}
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
import java.awt.Color;
/**
* A simple counter with graphical representation as an actor on screen.
*
* @author mik
* @version 1.0
*/
public class Counter extends Actor
{
private static final Color transparent = new Color(0,0,0,0);
private GreenfootImage background;
private int value;
private int target;
/**
* Create a new counter, initialised to 0.
*/
public Counter()
{
background = getImage(); // get image from class
value = 0;
target = 0;
updateImage();
}
/**
* Animate the display to count up (or down) to the current target value.
*/
public void act()
{
if (value < target) {
value++;
updateImage();
}
else if (value > target) {
value--;
updateImage();
}
}
/**
* Add a new score to the current counter value.
*/
public void add(int score)
{
target += score;
}
/**
* Return the current counter value.
*/
public int getValue()
{
return value;
}
/**
* Set a new counter value.
*/
public void setValue(int newValue)
{
target = newValue;
value = newValue;
updateImage();
}
/**
* Update the image on screen to show the current value.
*/
private void updateImage()
{
GreenfootImage image = new GreenfootImage(background);
GreenfootImage text = new GreenfootImage("" + value, 22, Color.BLACK, transparent);
image.drawImage(text, (image.getWidth()-text.getWidth())/2,
(image.getHeight()-text.getHeight())/2);
setImage(image);
}
}

