This site requires JavaScript, please enable it in your browser!
Greenfoot back
chrl98
chrl98 wrote ...

2014/1/4

constructor cannot be applied to given types

chrl98 chrl98

2014/1/4

#
Hi, I'm back again with another question, sorry. When I try to compile my EnemyTank class, it gives the following error: "Constructor EnemyTank in class EnemyTank cannot be applied to given types required: boolean found: no arguments reason: actual and formal argument lists differ in length Code for EnemyTank class:

import greenfoot.*;  // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
import java.awt.Color;
import java.lang.Object;
import java.lang.Class;
import java.util.List;
import java.awt.Point;

public class EnemyTank extends Vehicle implements LandUnit
{
    private static GreenfootImage base = new GreenfootImage("TankBase.png");
    private static GreenfootImage sBase = new GreenfootImage("STankBase.png");
    private static GreenfootImage xplosion = new GreenfootImage("atomic_bomb.png");
    private static final int ROTATION_SPEED = 1;
    private static final double ACCELERATION = .05;
    private static final double MAX_SPEED = 2;
    private TankGun gun;
    private boolean large;
    private TankTracks tracks;
    private boolean big;
    private GreenfootImage image1;
    private GreenfootImage image2;
    private GreenfootImage image3;
    private GreenfootImage background;
    private boolean Startgame = false;
    private boolean clicked = false;
    
  
    public EnemyTank(boolean big)
    {
        setImage(big ? sBase : base);
        large = big;
        gun = new TankGun(big);
    }
    public void act()
    {
        super.act();
        if (tracks == null || tracks.getWorld() == null || Math.sqrt(Math.pow(tracks.getX() - getX(), 2) + Math.pow(tracks.getY() - getY(), 2)) > (large ? 6 : 4))
        {
            tracks = new TankTracks(getRotation() + (speed > 0 ? 0 : 180), large);
            getWorld().addObject(tracks, getX(), getY());
        }
        moveAround();
        lookForObject();
        RandomMove(); 
    }
        public boolean canSee(Class clss)
    {
        Actor actor = getOneObjectAtOffset(0, 0, clss);
        return actor != null;        
    }
        public void rotate(int r)
     {
         super.rotate(r);
         gun.setRotation(gun.getRotation() + r);
    }
     public void setLocation(int x, int y)
    {
        super.setLocation(x, y);
        gun.setLocation(x, y);
    }
    public void addedToWorld(World world)
    {
        super.addedToWorld(world);
        world.addObject(gun, getX(), getY());
    }
    public boolean isLarge()
    {
        return large;
    }

......

}
    
Error concerning lines 28-33.
davmac davmac

2014/1/4

#
What line are you actually getting the error on? It sound like you are, somewhere, trying to create a new EnemyTank without passing the required boolean parameter, but I can't see that in the code you've posted. (Seeing as your constructor requires a boolean parameter, you must always pass a boolean when you create a new EnemyTank instance, eg "new EnemyTank(true)")
chrl98 chrl98

2014/1/5

#
The error hasn't happened now, but thats because I've decided to omit the code temporarily for the Enemytank class. The error occurs when I compile the TerrainWorld constructor

import greenfoot.World;
import greenfoot.GreenfootImage;
import greenfoot.Greenfoot;
import greenfoot.MouseInfo;
import greenfoot.UserInfo;
import java.util.List;
import java.awt.Point;
import java.awt.Graphics2D;
import java.awt.Color;
import java.awt.AlphaComposite;
import java.awt.Font;

/**
 * Write a description of class Terrain here.
 * 
 * @author Taylor Born
 * @version May 2012
 */
public class TerrainWorld extends World
{
    public static TerrainWorld main;
    public static AmmoCounter ammocounter = new AmmoCounter();
    public static ScoreCounter counter = new ScoreCounter();
    private Point lastMouse = new Point(getWidth() / 2, getHeight() / 2);
    private GreenfootImage grass = new GreenfootImage("Grass.jpg");
    //Timer timer = new Timer();
    private Unit player;
    private static int score = 0;
    //private Sector[][] sectors = new Sector[3][3];
    private Sector[] sectors = new Sector[5];
    private double screenX, screenY;
    private int saveIt;
    private Message saveMessage = new Message("Saving..");
    private AmmoCounter theAmmoCounter;
    private ScoreCounter theScoreCounter;
    private int timer = 0;
    private boolean ranStartMenu;
    
    public TerrainWorld()
    {
        //
        super(600, 400, 1, false);
        main = this;
        CodeKeyUser.enter();
        Greenfoot.start();
        addObject(new AmmoCounter(), 120, 30);
        AmmoCounter ammocounter = new AmmoCounter();
        addObject(new GamePic(), 110,200);
        GamePic gamepic = new GamePic();
        addObject(new GamePic(), 495, 200);
        GamePic gamepic2 = new GamePic();
        addObject(new ScoreCounter(),540,310);
        ScoreCounter scorecounter = new ScoreCounter();
        addObject(new AmmoSign(), 60, 30);
        AmmoSign ammosign = new AmmoSign();
        addObject(new LifeCounter(), 120, 55);
        LifeCounter lifecounter = new LifeCounter();
        addObject(new LiveSign(),60, 55);
        LiveSign livesign = new LiveSign();
        addObject(new ScoreSign(),490,310);
        ScoreSign scoresign = new ScoreSign();
        addObject(new StoreButton(), 560,30);
        StoreButton storebutton = new StoreButton();
        //addObject(new Timer(),120, 80);
        //Timer clock = new Timer();
        //timer.setText("Time left"+ (timer/60));
        //addObject(new CDSign(), 60, 80);
        //CDSign cdsign = new CDSign();
        addObject(new Play(), 300, 140);
        Play playbutton = new Play();
        addObject(new Clock(true, true, 60, "Time left:"), 85, 370);
        addObject(new CreditsButton(), 300, 280);
        CreditsButton creditsbutton = new CreditsButton();
        addObject(new EnemyTruck(), Greenfoot.getRandomNumber(getWidth()),Greenfoot.getRandomNumber(getHeight()));
        EnemyTruck enemytruck = new EnemyTruck();
        addObject(new EnemyTruck(), Greenfoot.getRandomNumber(getWidth()),Greenfoot.getRandomNumber(getHeight()));
        EnemyTruck enemytruck2 = new EnemyTruck();
                addObject(new EnemyTruck(), Greenfoot.getRandomNumber(getWidth()),Greenfoot.getRandomNumber(getHeight()));
        EnemyTruck enemytruck3 = new EnemyTruck();
                addObject(new EnemyTruck(), Greenfoot.getRandomNumber(getWidth()),Greenfoot.getRandomNumber(getHeight()));
        EnemyTruck enemytruck4 = new EnemyTruck();
                addObject(new EnemyTruck(), Greenfoot.getRandomNumber(getWidth()),Greenfoot.getRandomNumber(getHeight()));
        EnemyTruck enemytruck5 = new EnemyTruck();
                addObject(new EnemyTruck(), Greenfoot.getRandomNumber(getWidth()),Greenfoot.getRandomNumber(getHeight()));
        EnemyTruck enemytruck6 = new EnemyTruck();
                addObject(new EnemyTruck(), Greenfoot.getRandomNumber(getWidth()),Greenfoot.getRandomNumber(getHeight()));
        EnemyTruck enemytruck7 = new EnemyTruck();
                addObject(new EnemyTruck(), Greenfoot.getRandomNumber(getWidth()),Greenfoot.getRandomNumber(getHeight()));
        EnemyTruck enemytruck8 = new EnemyTruck();
                addObject(new EnemySoldier(), Greenfoot.getRandomNumber(getWidth()),Greenfoot.getRandomNumber(getHeight()));
        EnemySoldier enemysoldier = new EnemySoldier();
        addObject(new EnemySoldier(), Greenfoot.getRandomNumber(getWidth()),Greenfoot.getRandomNumber(getHeight()));
        EnemySoldier enemysoldier2 = new EnemySoldier();
        addObject(new EnemySoldier(), Greenfoot.getRandomNumber(getWidth()),Greenfoot.getRandomNumber(getHeight()));
        EnemySoldier enemysoldier3 = new EnemySoldier();
        addObject(new EnemySoldier(), Greenfoot.getRandomNumber(getWidth()),Greenfoot.getRandomNumber(getHeight()));
        EnemySoldier enemysoldier4 = new EnemySoldier();
        addObject(new EnemySoldier(), Greenfoot.getRandomNumber(getWidth()),Greenfoot.getRandomNumber(getHeight()));
        EnemySoldier enemysoldier5 = new EnemySoldier();
        addObject(new EnemySoldier(), Greenfoot.getRandomNumber(getWidth()),Greenfoot.getRandomNumber(getHeight()));
        EnemySoldier enemysoldier6 = new EnemySoldier();
        addObject(new EnemySoldier(), Greenfoot.getRandomNumber(getWidth()),Greenfoot.getRandomNumber(getHeight()));
        EnemySoldier enemysoldier7 = new EnemySoldier();
        addObject(new EnemySoldier(), Greenfoot.getRandomNumber(getWidth()),Greenfoot.getRandomNumber(getHeight()));
        EnemySoldier enemysoldier8 = new EnemySoldier();
        addObject(new InstructionsButton(), 300, 210);
        InstructionsButton instructionsbutton = new InstructionsButton();
         addObject(new EnemyHelicopter(), Greenfoot.getRandomNumber(getWidth()),Greenfoot.getRandomNumber(getHeight()));
        EnemyHelicopter enemyhelicopter = new EnemyHelicopter();
        addObject(new EnemyHelicopter(), Greenfoot.getRandomNumber(getWidth()),Greenfoot.getRandomNumber(getHeight()));
        EnemyHelicopter enemyhelicopter2 = new EnemyHelicopter();
        addObject(new EnemyHelicopter(), Greenfoot.getRandomNumber(getWidth()),Greenfoot.getRandomNumber(getHeight()));
        EnemyHelicopter enemyhelicopter3 = new EnemyHelicopter();
        addObject(new EnemyHelicopter(), Greenfoot.getRandomNumber(getWidth()),Greenfoot.getRandomNumber(getHeight()));
        EnemyHelicopter enemyhelicopter4 = new EnemyHelicopter();
                addObject(new EnemyHelicopter(), Greenfoot.getRandomNumber(getWidth()),Greenfoot.getRandomNumber(getHeight()));
        EnemyHelicopter enemyhelicopter5 = new EnemyHelicopter();
                addObject(new EnemyHelicopter(), Greenfoot.getRandomNumber(getWidth()),Greenfoot.getRandomNumber(getHeight()));
        EnemyHelicopter enemyhelicopter6 = new EnemyHelicopter();
                addObject(new EnemyHelicopter(), Greenfoot.getRandomNumber(getWidth()),Greenfoot.getRandomNumber(getHeight()));
        EnemyHelicopter enemyhelicopter7 = new EnemyHelicopter();
                addObject(new EnemyHelicopter(), Greenfoot.getRandomNumber(getWidth()),Greenfoot.getRandomNumber(getHeight()));
        EnemyHelicopter enemyhelicopter8= new EnemyHelicopter();
 
        addObject(new EnemyTank(),Greenfoot.getRandomNumber(getWidth()),Greenfoot.getRandomNumber(getHeight()));
        EnemyTank enemytank = new EnemyTank();
                addObject(new EnemyTank(),Greenfoot.getRandomNumber(getWidth()),Greenfoot.getRandomNumber(getHeight()));
        EnemyTank enemytank2 = new EnemyTank();
                addObject(new EnemyTank(),Greenfoot.getRandomNumber(getWidth()),Greenfoot.getRandomNumber(getHeight()));
        EnemyTank enemytank3 = new EnemyTank();
                addObject(new EnemyTank(),Greenfoot.getRandomNumber(getWidth()),Greenfoot.getRandomNumber(getHeight()));
        EnemyTank enemytank4 = new EnemyTank();
                addObject(new EnemyTank(),Greenfoot.getRandomNumber(getWidth()),Greenfoot.getRandomNumber(getHeight()));
        EnemyTank enemytank5 = new EnemyTank();
                addObject(new EnemyTank(),Greenfoot.getRandomNumber(getWidth()),Greenfoot.getRandomNumber(getHeight()));
        EnemyTank enemytank6 = new EnemyTank();
        //if (UserInfo.isStorageAvailable() && UserInfo.getMyInfo().getUserName().equals("bourne"))
        newGame();
        setBackground(pic);
        prepare();
        //List objectslookingfor = getObjects(EnemyTruck.class);  
        //if (objectslookingfor.size() == 0) 
        //{
          // addObject(new EnemyTruck(), Greenfoot.getRandomNumber(getWidth()), Greenfoot.getRandomNumber(getHeight()));
        //}
    }

chrl98 chrl98

2014/1/5

#
Error in lines 125 and down, and sorry for the extremely messy coding.
danpost danpost

2014/1/5

#
Either add another constructor to your EnemyTank class, as follows:
public EnemyTank()
{
    this(false};
}
Or, create your EnemyTank objects with 'new EnemyTank(false)' (unless you want a large one -- then use 'true')
chrl98 chrl98

2014/1/5

#
Working now, enemy tanks fully functional and back at top speed again! Thanks Danpost and davmac for your help, greatly appreciate it!
Link99 Link99

2016/6/9

#
I need help with something similar, in my pokemon game I want to have an enemy appear every few steps I take, but the constructor for enemy required an int and a class from playerheroes.
danpost danpost

2016/6/9

#
Link99 wrote...
I need help with something similar, in my pokemon game I want to have an enemy appear every few steps I take, but the constructor for enemy required an int and a class from playerheroes.
You should start a new discussion thread on your issue -- not revive one that is over two years old. Also, you need to supply the codes you are currently using (the class of the enemy and the class of the playerheroes).
You need to login to post a reply.