Hey,
Im really new in these greenfoot things and try to make the game curve fever.
Everything works yet except off removing the objects if they hit the line(doesnt matter if hitting their own lines or the line from the other object). I tried every method I know but I only get errors or my object gets removed instantly after start.
I deleted everything related to removing the objects because of hitting the line and asking now for your help.
I hope I copied everything right as code, if not just tell me.
Sorry formy bad english :)
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot und MouseInfo) /** * Ergänzen Sie hier eine Beschreibung für die Klasse MyWorld. * * @author (Ihr Name) * @version (eine Versionsnummer oder ein Datum) */ public class MyWorld extends World { public static int LocXPlayer1; public static int LocYPlayer1; public static int LocXPlayer2; public static int LocYPlayer2; GreenfootSound backgroundMusic = new GreenfootSound("WormBaron.mp3"); /** * Konstruktor für Objekte der Klasse MyWorld * */ public MyWorld() { // Erstellt eine neue Welt mit 700x700 Zellen und einer Zell-Größe von 1x1 Pixeln. super(700, 700, 1); generateLocations(); generateObjects(); } public void playSound() { //Hinergrundmusik wrd mit der Lautstärke () und in duerschleife abgespielt. backgroundMusic.playLoop(); backgroundMusic.setVolume(20); } public void act() { playSound(); } public void generateObjects() { //erstellt die Spieler und den Timer addObject(new Player1(), LocXPlayer1, LocYPlayer1); addObject(new Player2(), LocXPlayer2, LocYPlayer2); addObject(new Timer(), 350, 350); } public void generateLocations() { //generiert zufällige Koordinaten für die Spieler im Berreich von 50 und 650 mit Voraussetzung, dass ein bestimmter Abstand zwischen den Spielern besteht. LocXPlayer1 = getRandomNumber(50, 650); LocYPlayer1 = getRandomNumber(50, 650); LocXPlayer2 = getRandomNumber(50, 650); LocYPlayer2 = getRandomNumber(50, 650); if(Math.abs(LocXPlayer1-LocXPlayer2)<75 || Math.abs(LocYPlayer1-LocYPlayer2)<75){ generateLocations(); } } public int getRandomNumber(int start,int end) { //Funktion zum Generieren von zufälligen Zahlen. int normal = Greenfoot.getRandomNumber(end-start+1); return normal+start; } }
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot und MouseInfo) /** * 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 { /** * 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() { // Ergänzen Sie Ihren Quelltext hier... } }
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot und MouseInfo) /** * Ergänzen Sie hier eine Beschreibung für die Klasse Player1. * * @author (Ihr Name) * @version (eine Versionsnummer oder ein Datum) */ public class Player1 extends Player { /** * Act - tut, was auch immer Player1 tun will. Diese Methode wird aufgerufen, * sobald der 'Act' oder 'Run' Button in der Umgebung angeklickt werden. */ public void act() { // Ergänzen Sie Ihren Quelltext hier... createTrack(); movement(); move(2); delteAtEdge(); } public void movement() { if (Greenfoot.isKeyDown("right")) { turn(4); } if (Greenfoot.isKeyDown("left")) { turn(-4); } } public void createTrack() { getWorld().addObject(new Line1(), getX(), getY()); } public void delteAtEdge() { if(getX() > 697) { getWorld().removeObject(this); } else if(getX() < 3) { getWorld().removeObject(this); } else if(getY() < 3) { getWorld().removeObject(this); } else if(getY() > 697) { getWorld().removeObject(this); } } }
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot und MouseInfo) /** * Ergänzen Sie hier eine Beschreibung für die Klasse Line1. * * @author (Ihr Name) * @version (eine Versionsnummer oder ein Datum) */ public class Line1 extends Player1 { /** * Act - tut, was auch immer Line1 tun will. Diese Methode wird aufgerufen, * sobald der 'Act' oder 'Run' Button in der Umgebung angeklickt werden. */ public void act() { // Ergänzen Sie Ihren Quelltext hier... } }
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot und MouseInfo) /** * Ergänzen Sie hier eine Beschreibung für die Klasse Player2. * * @author (Ihr Name) * @version (eine Versionsnummer oder ein Datum) */ public class Player2 extends Player { /** * Act - tut, was auch immer Player2 tun will. Diese Methode wird aufgerufen, * sobald der 'Act' oder 'Run' Button in der Umgebung angeklickt werden. */ public void act() { // Ergänzen Sie Ihren Quelltext hier... createTrack(); movement(); move(2); delteAtEdge(); } public void movement() { if (Greenfoot.isKeyDown("d")) { turn(4); } if (Greenfoot.isKeyDown("a")) { turn(-4); } } public void createTrack() { getWorld().addObject(new Line2(), getX(), getY()); } public void delteAtEdge() { if(getX() > 697) { getWorld().removeObject(this); } else if(getX() < 3) { getWorld().removeObject(this); } else if(getY() < 3) { getWorld().removeObject(this); } else if(getY() > 697) { getWorld().removeObject(this); } } }
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot und MouseInfo) /** * Ergänzen Sie hier eine Beschreibung für die Klasse Line2. * * @author (Ihr Name) * @version (eine Versionsnummer oder ein Datum) */ public class Line2 extends Player2 { /** * Act - tut, was auch immer Line2 tun will. Diese Methode wird aufgerufen, * sobald der 'Act' oder 'Run' Button in der Umgebung angeklickt werden. */ public void act() { // Ergänzen Sie Ihren Quelltext hier... } }
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot und MouseInfo) /** * Ergänzen Sie hier eine Beschreibung für die Klasse Timer. * * @author (Ihr Name) * @version (eine Versionsnummer oder ein Datum) */ public class Timer extends Actor { public int dtime = 50; /** * Act - tut, was auch immer Timer tun will. Diese Methode wird aufgerufen, * sobald der 'Act' oder 'Run' Button in der Umgebung angeklickt werden. */ public void act() { countdown(); } public void countdown() { setImage("3.png"); Greenfoot.delay(dtime); setImage("2.png"); Greenfoot.delay(dtime); setImage("1.png"); Greenfoot.delay(dtime); //go = 1; setImage("Go!.png"); Greenfoot.delay(dtime); getWorld().removeObject(this); } }