Hallo Community!
Ich möchte per Greenfoot das Spiel "Pong" nachprogrammieren und hatte bis jetzt auch noch keine Probleme (die ich nichts selbst lösen konnte). Doch jetzt steh ich etwas auf dem Schlauch:
Problem tritt glaube ich in Zeile 47/48 auf, denn sobald ich z==3 weglasse zieht er mir zwar jeweils die ersten beiden Leben der Spieler ab, aber ich benötige z ja für die weiteren Leben. Und mit z==3 passiert einfach garnichts, wenn der Ball ins aus geht. Liegt es nun am Syntax oder habe ich einfach einen Denkfehler?
Auch verwundert mich, dass Greenfoot keinen Syntaxfehler ausgibt wenn ich:
schreibe (wie in Zeile 54 etc.), der Java-Editor sagt "unexpected type".
Ich bedanke mich bei eurer Hilfe!
PS: Habt Nachsicht mit mir, mein erstes "größeres" Projekt außerhalb der schulischen Laufbahn und deshalb wahrscheinlich auch unnötig vollgestopft.
Ich möchte per Greenfoot das Spiel "Pong" nachprogrammieren und hatte bis jetzt auch noch keine Probleme (die ich nichts selbst lösen konnte). Doch jetzt steh ich etwas auf dem Schlauch:
Java:
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
public class Hintergrund extends World {
PaddelEins neuesPaddel = new PaddelEins();
PaddelZwei neuesPaddel2 = new PaddelZwei();
Ball neuerBall = new Ball();
Leben neuesLeben = new Leben();
Leben neuesLeben2 = new Leben();
Leben neuesLeben3 = new Leben();
Leben2 neuesLeben4 = new Leben2();
Leben2 neuesLeben5 = new Leben2();
Leben2 neuesLeben6 = new Leben2();
int z=3;
int y=3;
boolean ballDrin= true;
/**
* Konstruktor fuer Objekte der Klasse Hintergrund.
*/
public Hintergrund(){
super(640, 480, 1);
addObject (neuesPaddel, 20, 240);
addObject (neuesPaddel2, 620, 240);
addObject(neuesLeben, 40,30);
addObject(neuesLeben2, 80,30);
addObject(neuesLeben3, 120,30);
addObject(neuesLeben4, 517,30);
addObject(neuesLeben5, 557,30);
addObject(neuesLeben6, 597,30);
}
/**
* Erlaubt einen neuen Ball mit Hilfe der Leertaste ins Spiel zu bringen,
* sobald keiner mehr auf dem Spielfeld existiert.
*/
public void act() {
if (getObjects(Ball.class).size()<1 && Greenfoot.isKeyDown ("space")) {
addObject (neuerBall, 320,240);
}
if (getObjects(Ball.class).size()==1) {
if (z==3) {
if (ballDrin) {
herzenLoeschen1();
herzenLoeschen4();
z--;
}
}
if (z==2 && ballDrin==true) {
herzenLoeschen2();
herzenLoeschen5();
z--;
}
if (z==1 && ballDrin==true) {
herzenLoeschen3();
herzenLoeschen6();
z--;
}
}
ballDrin=true;
}
public void herzenLoeschen1() {
if (neuerBall.getX()<=23) {
removeObject(neuesLeben);
ballDrin=false;
}
}
public void herzenLoeschen2() {
if (neuerBall.getX()<=23) {
removeObject(neuesLeben2);
ballDrin=false;
}
}
public void herzenLoeschen3() {
if (neuerBall.getX()<=23) {
removeObject(neuesLeben3);
ballDrin=false;
}
}
public void herzenLoeschen4() {
if (neuerBall.getX()>=617) {
removeObject(neuesLeben4);
ballDrin=false;
}
}
public void herzenLoeschen5() {
if (neuerBall.getX()>=617) {
removeObject(neuesLeben5);
ballDrin=false;
}
}
public void herzenLoeschen6() {
if (neuerBall.getX()>=617) {
removeObject(neuesLeben6);
ballDrin=false;
}
}
}
Problem tritt glaube ich in Zeile 47/48 auf, denn sobald ich z==3 weglasse zieht er mir zwar jeweils die ersten beiden Leben der Spieler ab, aber ich benötige z ja für die weiteren Leben. Und mit z==3 passiert einfach garnichts, wenn der Ball ins aus geht. Liegt es nun am Syntax oder habe ich einfach einen Denkfehler?
Auch verwundert mich, dass Greenfoot keinen Syntaxfehler ausgibt wenn ich:
Java:
if (z==3 && ballDrin=true) {
Ich bedanke mich bei eurer Hilfe!
PS: Habt Nachsicht mit mir, mein erstes "größeres" Projekt außerhalb der schulischen Laufbahn und deshalb wahrscheinlich auch unnötig vollgestopft.
Zuletzt bearbeitet von einem Moderator: