Thanks, now my code looks like this:
It cannot find symbol in same here The errors occur to:
shotCoolDown, shootKey, Player, act(), myPlayerNum, didShoot,getImage
and in total I have 14 errors in that class, while in my main-world 2, eventhough I am currently unable to check to the programm having crashed
Note: Nearly every error is a "cannot find symbol - variable" type of error, while act() tells me that method act() is already defined in class Player
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot und MouseInfo)
//import java.lang.String;
//import java.lang.Math;
/**
* Ergänzen Sie hier eine Beschreibung für die Klasse Player.
*
* @author (Ihr Name)
* @version (eine Versionsnummer oder ein Datum)
*/
public class Player extends Actor
{
String leftKey, rightKey, upKey, downKey;
//GreenfootImage myImage;
// public int myPlayerNum = 0;
int playerNum;
// boolean didShoot = false;
public double xVel = 0.0;
public double yVel = 0.0;
public double terminalSpeed = 5.0;
public int counter;
boolean playerContact = false;
double currentForce = 0;
//public Pipe pipe;
Pipe pipe = new Pipe();
//int shotCoolDown = 0;
//String shootKey = "o";
public Player(int num, String image, String left, String right, String up, String down)
{
//myImage = new GreenfootImage(image);
//myPlayerNum = playerNum;
playerNum = num;
leftKey = left;
rightKey = right;
upKey = up;
downKey = down;
//didShoot = false;
myImage.scale(50, 50);
//setImage(myImage);
if (num == 0)
{
setImage(new GreenfootImage("tank.png"));
rightKey = "right";
leftKey = "left";
upKey = "up";
downKey = "down";
}
else
{
setImage( new GreenfootImage("tank2.png"));
rightKey = "d";
leftKey = "a";
upKey = "w";
downKey = "s";
}
getImage.scale(50, 50);
setImage(getImage());
}
/**
* Act - tut, was auch immer Player tun will. Diese Methode wird aufgerufen,
* sobald der 'Act' oder 'Run' Button in der Umgebung angeklickt werden.
*/
public void act()
{
movementEngine();
turnTowardsEnemy();
wallBounce();
calculateForce();
doBulletHit(myPlayerNum);
playerCollider();
mutualmovement();
shootStuff();
//if (this.Player.getWorld() == null) { getWorld().removeObject(this); return;}
}
public void mutualmovement()
{
//Pipe actor = (Pipe) getOneIntersectingObject(Pipe.class);
//if (actor != null) {
pipe.setLocation(this.getX(),this.getY());
}
public void turnTowardsEnemy()
{
if(playerNum == 1) {
turnTowards(BattleWorld.p2X, BattleWorld.p2Y);
}
else {
turnTowards(BattleWorld.p1X, BattleWorld.p1Y);
}
pipe.setRotation(this.getRotation());
}
public void movementEngine()
{
//int angle = getRotation();
setLocation((int) (getX() + xVel), (int) (getY() + yVel));
if(Greenfoot.isKeyDown(rightKey))
xVel += 0.5;
if(Greenfoot.isKeyDown(leftKey))
xVel -= 0.5;
if(Greenfoot.isKeyDown(upKey))
yVel -= 0.5;
if(Greenfoot.isKeyDown(downKey))
yVel += 0.5;
friction();
terminalVelocity();
}
public void friction()
{
if(xVel >= 0)
xVel -= 0.125;
if(xVel <= 0)
xVel += 0.125;
if(yVel >= 0)
yVel -= 0.125;
if(yVel <= 0)
yVel += 0.125;
}
public void terminalVelocity()
{
if(xVel >= terminalSpeed)
xVel = terminalSpeed;
if(xVel <= -terminalSpeed)
xVel = -terminalSpeed;
if(yVel >= terminalSpeed)
yVel = terminalSpeed;
if(yVel <= -terminalSpeed)
yVel = -terminalSpeed;
}
public void bleed(int particles, int x, int y)
{
for(int a = 0; a < particles; a++) {
bleed(x, y);
}
}
public void bleed(int x, int y)
{
getWorld().addObject(new Particle("blood", ((Greenfoot.getRandomNumber(21)-10)/4.0), ((Greenfoot.getRandomNumber(21)-10)/5.0)), x, y);
}
public boolean atWorldLeft()
{
if(getX() < 20)
return true;
else return false;
}
public boolean atWorldRight()
{
if(getX() > getWorld().getWidth() - 20)
return true;
else return false;
}
public boolean atWorldTop()
{
if(getY() < 20)
return true;
else return false;
}
public boolean atWorldBottom()
{
if(getY() > getWorld().getHeight() - 20)
return true;
else return false;
}
public void bleed()
{
getWorld().addObject(new Particle("blood", ((Greenfoot.getRandomNumber(21)-10)/4.0), ((Greenfoot.getRandomNumber(21)-10)/5.0)), getX(), getY());
}
public void wallBounce()
{
if(atWorldRight() && xVel > 0) {
xVel *= -1.1;
setLocation((int) (getX() + xVel), (int) (getY() + yVel));
}
if(atWorldLeft() && xVel < 0) {
xVel *= -1.1;
setLocation((int) (getX() + xVel), (int) (getY() + yVel));
}
if(atWorldTop() && yVel < 0) {
yVel *= -1.1;
setLocation((int) (getX() + xVel), (int) (getY() + yVel));
}
if(atWorldBottom() && yVel > 0) {
yVel *= -1.1;
setLocation((int) (getX() + xVel), (int) (getY() + yVel));
}
}
public void calculateForce()
{
currentForce = Math.hypot(Math.abs(xVel), Math.abs(yVel));
}
public void playerCollider()
{
if (getWorld() == null) return;
if(isTouching(Player.class)) {
playerContact = true;
Actor oPlayer = (Actor) getOneIntersectingObject(Player.class);
int oPlayerX = oPlayer.getX();
int oPlayerY = oPlayer.getY();
double k = 1.5 * currentForce;
int angle = getRotation();
if (oPlayerX > getX()) {
if(oPlayerY < getY()) {
xVel = (-1) * (k) * Math.cos(Math.toRadians(360-angle));
yVel = (1) * (k) * Math.sin(Math.toRadians(360-angle));
}
else {
xVel = (1) * (k) * Math.cos(Math.toRadians(angle-180));
yVel = (1) * (k) * Math.sin(Math.toRadians(angle-180));
}
}
else {
if(oPlayerY < getY()) {
xVel = (1) * (k) * Math.cos(Math.toRadians(180-angle));
yVel = (-1) * (k) * Math.sin(Math.toRadians(180-angle));
}
else {
xVel = (-1) * (k) * Math.cos(Math.toRadians(angle));
yVel = (-1) * (k) * Math.sin(Math.toRadians(angle));
}
}
}
else {
playerContact = false;
}
}
public void doBulletHit(int playerNum)
{
World myWorld = getWorld();
BattleWorld battleWorld = (BattleWorld)myWorld;
//myPlayerNum = playerNum;
if (isTouching(Bullet.class) && !(didShoot))
{
Bar bar = battleWorld.getBar(playerNum);
Actor bull = (Actor) getOneIntersectingObject(Bullet.class);
bleed((Greenfoot.getRandomNumber(3)+2), bull.getX(), bull.getY());
getWorld().removeObject(bull);
bar.loseHealth();
if(bar.health <=0)
{
GameOver gameover = new GameOver(myPlayerNum);
myWorld.addObject(gameover, myWorld.getWidth()/2, myWorld.getHeight()/2);
myWorld.removeObject(this);
if (++counter == 5) Greenfoot.setWorld(new TitleScreen());
}
}
}
//public void setShootKey(String key)
//{
//shootKey = key;
//}
protected void addedToWorld(World world)
{
world.addObject(pipe, getX(), getY());
}
public class Pipe extends Actor
{
String shootKey;
public Pipe()
{
shootKey = this.Player.playerNum == 0 ? "e": "o";
GreenfootImage img = new GreenfootImage("Rohr"+(this.Player.playerNum+1)+".PNG");
img.scale(25, 25);
setImage(img);
}
}
public void act()
{
if (this.Player.getWorld() == null) { getWorld().removeObject(this); return; }
shootStuff();
}
public void shootStuff()
{
if (shotCoolDown > 0) shotCoolDown--;
else if (Greenfoot.isKeyDown(shootKey))
{
getWorld().addObject(new Bullet(getRotation()), getX(), getY());
shotCoolDown = 20;
}
}
}myImage.scale(50, 50);
getImage.scale(50, 50);
doBulletHit(myPlayerNum);
if (isTouching(Bullet.class) && !(didShoot))
GameOver gameover = new GameOver(myPlayerNum);
shootKey = this.Player.playerNum == 0 ? "e": "o";
public void act()
if (this.Player.getWorld() == null) { getWorld().removeObject(this); return; }if (shotCoolDown > 0) shotCoolDown--;
else if (Greenfoot.isKeyDown(shootKey))
shotCoolDown = 20;
