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;