Greenfoot Kollision

Derenei

Aktives Mitglied
Beginne seit heute mit Greenfoot zu programmieren.

Und zwar will ich ein Programm schreiben wo der Spieler eine Biene mit den Tasten steuert und ihn in entgegengesetzer Richtung Teddys entgegen kommen denen er ausweichen muss. Wenn der Spieler jedoch einen Teddy berührt soll das Spiel vorbei sein.

Was ich bis jetzt geschafft habe das man die Biene steuern kann und das dem Spieler Teddys entgegenkommen aber es passierts nicht wenn der Spieler einen Teddy berührt. Irgendendwie schaffe ich es nicht das Spiel zu beednen wenn der Spieler einen Teddy berührt.

Mein Quellcode der Hauptklasse Spiel1:
Java:
import greenfoot.*;  // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
public class Spiel1 extends World
{
    public Spiel1()
    {    
        super(700,700, 1);
        Spawn ();
    }
    
    public void Spawn ()
    {
        Bee biene = new Bee ();
        addObject (biene, 0, 350);
        for (int i = 0; i < 10; i++)
        {
            Teddy bär = new Teddy ();
            int y = Greenfoot.getRandomNumber (700);
            addObject (bär, 700, y);
        }
    }
}

Hier der Quellcode des Bienen Klasse:

Java:
import greenfoot.*;  // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
public class Bee extends Actor
{
    public void act() 
    {
        if (Greenfoot.isKeyDown ("d"))
        {
            int x = getX();
            int y = getY();
        
            int x2 = 1;
            setLocation (x+x2, y);
        }
        
        if (Greenfoot.isKeyDown ("a"))
        {
            int x = getX();
            int y = getY();
        
            int x2 = 1;
            setLocation (x-x2, y);
        }
        
        if (Greenfoot.isKeyDown ("w"))
        {
            int x = getX();
            int y = getY();
        
            int y2 = 1;
            setLocation (x, y-y2);
        }
        
        if (Greenfoot.isKeyDown ("s"))
        {
            int x = getX();
            int y = getY();
        
            int y2 = 1;
            setLocation (x, y+y2);
        }
    }    
}

Und der Quellcode zu meiner Teddy Klasse:

Java:
import greenfoot.*;  // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)

/**
 * Write a description of class Teddy here.
 * 
 * @author (your name) 
 * @version (a version number or a date)
 */
public class Teddy extends Bee
{
    /**
     * Act - do whatever the Teddy wants to do. This method is called whenever
     * the 'Act' or 'Run' button gets pressed in the environment.
     */
    public void act() 
    {
        int x = getX();
        int y = getY();
        
        int x2 = 1;
        
        setLocation (x-x2, y);
        
        if (x == 0)
        {
            getWorld().removeObject (this);
        }
    }    
}

Was genau müsste ich da machen damit das Spiel beednet wird sobald der Spieler einen Teddy berührt?

Danke im Voraus.
 
Zuletzt bearbeitet von einem Moderator:

Final_Striker

Top Contributor
Was ich bis jetzt geschafft habe das man die Biene steuern kann und das dem Spieler Teddys entgegenkommen aber es passierts nicht wenn der Spieler einen Teddy berührt. Irgendendwie schaffe ich es nicht das Spiel zu beednen wenn der Spieler einen Teddy berührt.

Ich habe bis jetzt auch nicht gesehen, dass du irgendwo vergleichst das eine Biene auf einen Bär trifft.


Die Zeile ist aber merkwürdig.

Java:
public class Teddy extends Bee

Ein Bär ist doch keine Biene. Macht also keinen Sinn.

Auch und noch was:

Java:
Teddy bär = new Teddy ();

Keine Umlaute im Quelltext.
 

Derenei

Aktives Mitglied
Danke für deine Antwort.

Ich habe es versucht zu programmieren habe aber dann en falschen Quellcode wieder gelöscht da das Programm sonst nicht laufen würde.

Wie genau müsste ich das machen.

Danke für eure hilfe.

MFG Alex
 
S

SlaterB

Gast
und hast du eine Erklärung dafür?
programmiert dein PC von selber, wird Quellcode durch Zufall erzeugt
oder meinst du eine Vorgabe durch Aufgabenstellung?

in jedem Fall könntest du es doch wohl korrigieren, falls du willens bist und Macht über den Quellcode hast,
'extends Actor' wäre besser als 'extends Bee'

-----

zur Kollision usw. ist in deinem Quellcode bisher genau gar nichts vorhanden
> Irgendendwie schaffe ich es nicht das Spiel zu beednen
klingt da schmeichelhaft nach irgendeinen minimalen Fehler, wobei es für die aktuelle Situation letztlich auch stimmt


ob da in 'Greenfoot', was immer das ist, etwas vorgesehen ist, weiß vielleicht irgendjemand,
ich erhöhe jetzt die Chancen indem ich das Thema umbenenne,
vom sinnlosen 'Anfänger Problem mit Objekten' weg zu etwas aussagekräftigen (ist das so schwer?)


wenn man ohne Kenntnisse beliebig reinschaut gilt:
bisher ist keine zentrale Verarbeitung sichtbar, nur die drei act()-Methoden, die alle anderen Objekte auch nicht kennen,
falls eine von diesen was machen soll, dann wohl die eine Biene, muss sie alle Teddys kennen,
die in eine Liste und an Biene übergeben, dort dann per Schleife Position vergleichen,

falls nicht exakt pixelgenau übereinander auf Abstand prüfen, bei Unterschreitung ist es eine Kollision
 

Derenei

Aktives Mitglied
Danke für eure Antworten.

Ich komme einfah nicht weiter. In der letzen Programmier Stunde hat uns unser Lehrer irgendwas vorprogrammiert. Es kam keiner nur ein bisschen mit. Er hat uns sein Programm dann online gestellt das wir uns das ganze nocheinmal anschauen können:

Übung 6
Blumen: erzeuge einen neuen Actor „Flower“ mit einer Blume als
Hintergrundbild.
Wenn eine Biene auf eine Blume trifft, soll sich das Leben der Biene um
30 weiter Flüge verlängern

(Ich möchte das mein Teddy Bör gelöscht wird wenn der Spieler mit der Biene einen Teddy Bär berührt)

Java:
...
List flowers =
getWorld().getObjectsAt(x+x2,y+y2,Flower.class);
if ( !flowers.isEmpty() )
{
count -= 30;
}
dir+=10;
setRotation(dir);
if ( count>=50 ) getWorld().removeObject(this);
}

Also ich hab das nicht verstanden.

Mein versuch, Ich habe in meine bee Klasse folgendes geschrieben:

Java:
import greenfoot.*;  // (World, Actor, GreenfootImage, Greenfoot and MouseInfo
import java.util.*;
public class Bee extends Actor
{
    public void act() 
    {
        if (Greenfoot.isKeyDown ("right"))
        {
            int x = getX();
            int y = getY();
        
            int x2 = 3;
            setLocation (x+x2, y);
        }
        
        if (Greenfoot.isKeyDown ("left"))
        {
            int x = getX();
            int y = getY();
        
            int x2 = 3;
            setLocation (x-x2, y);
        }
        
        if (Greenfoot.isKeyDown ("up"))
        {
            int x = getX();
            int y = getY();
        
            int y2 = 3;
            setLocation (x, y-y2);
        }
        
        if (Greenfoot.isKeyDown ("down"))
        {
            int x = getX();
            int y = getY();
        
            int y2 = 3;
            setLocation (x, y+y2);
        }
        
        List bär = getWorld().getObjectsAt((dieses)->x-x2, y, Teddy.class);
        if ( !bär.isEmpty() )
        {
            getWorld().removeObject (this);
        }    
    }


Was genau mache ich da falsch es kommt immer die Fehlermeldung das x nicht public ist.

Danke im Voraus.
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
P java.lang.NoClassDefFoundError: in Greenfoot Spiele- und Multimedia-Programmierung 0
J Greenfoot Marsrover 8 Spiele- und Multimedia-Programmierung 1
A Greenfoot.org ; Erstellung von Menü Spiele- und Multimedia-Programmierung 2
J Greenfoot "Little Crab" Spiel Erweiterungen Spiele- und Multimedia-Programmierung 6
S Greenfoot Verfolgen Spiele- und Multimedia-Programmierung 6
R Greenfoot Schulprojekthilfe Spiele- und Multimedia-Programmierung 2
L Greenfoot boulderdash programmiren Spiele- und Multimedia-Programmierung 11
B Kollision Spiele- und Multimedia-Programmierung 5
A Kollision funktioniert nicht richtig bei zu schneller Geschwindigkeit des Spielers Spiele- und Multimedia-Programmierung 0
N Kollision von zwei ImageIcons Spiele- und Multimedia-Programmierung 8
D Kollision funktioniert unten aber nicht oben Spiele- und Multimedia-Programmierung 4
J Kollision (libgdx) Spiele- und Multimedia-Programmierung 2
S Kollision Spiele- und Multimedia-Programmierung 2
J Kollision genau erkennen mit intersects Spiele- und Multimedia-Programmierung 27
K a* kollision der einheiten Spiele- und Multimedia-Programmierung 3
S Probleme bei Breakout - Brick kollision Spiele- und Multimedia-Programmierung 2
F Rechteck Kollision Spiele- und Multimedia-Programmierung 10
H 2- D Kollision Spiele- und Multimedia-Programmierung 14
C Zeldaklon Problem mit Wand-Kollision Spiele- und Multimedia-Programmierung 8
O Kollision Polygon und Rechteck Spiele- und Multimedia-Programmierung 2
S Pacman Kollision von Münzen und Mauern Spiele- und Multimedia-Programmierung 11
P Gridpane Kollision Spiele- und Multimedia-Programmierung 3
Androbin Kollision zwischen Raster und Nicht-Raster Spiele- und Multimedia-Programmierung 2
L Kollision soll nur an oberer Seite (Breite) möglich sein Spiele- und Multimedia-Programmierung 6
Hercules Kisten Kollision Spiele- und Multimedia-Programmierung 2
S 3D-Kollision mit zwei ArrayLists Spiele- und Multimedia-Programmierung 7
T Pixelgenaue Kollision Spiele- und Multimedia-Programmierung 5
A LWJGL 3D Objekte Kollision Spiele- und Multimedia-Programmierung 3
S Kollision tile-based 2D Plattformer Spiele- und Multimedia-Programmierung 2
D Kollision verhindern Spiele- und Multimedia-Programmierung 2
R Frage zur Kollision Spiele- und Multimedia-Programmierung 5
Maxim6394 [Java3D] Probleme bei Kollision Spiele- und Multimedia-Programmierung 7
Kr0e Kollision zweier Kugeln... Wo ist Newton ?? Spiele- und Multimedia-Programmierung 9
C Kollision zwischen 2 Kreisen Spiele- und Multimedia-Programmierung 3
Helgon Kollision von jeder Seite des Blocks Spiele- und Multimedia-Programmierung 3
Fab1 Kollision die 100ste Spiele- und Multimedia-Programmierung 5
D Jump'n'run Kollision bei Blöcken Spiele- und Multimedia-Programmierung 10
P PingPong Spiel - Kollision Spiele- und Multimedia-Programmierung 2
C Bitmaske und Kollision Spiele- und Multimedia-Programmierung 2
J Spielprogrammierung mit bewegung und kollision Spiele- und Multimedia-Programmierung 24
S Kollision Kreis Rechteck Spiele- und Multimedia-Programmierung 8
aze Java3D: Gegenstände aufeinander zubewegen ohne Kollision Spiele- und Multimedia-Programmierung 4
baddestpoet pixelgenaue Kollision Spiele- und Multimedia-Programmierung 4
S Kollision in 2D Spiele- und Multimedia-Programmierung 12
B Gedrehte Rechtecke Kollision Spiele- und Multimedia-Programmierung 4
J Kollision mit Block (Wand) Spiele- und Multimedia-Programmierung 11
C Kollision in Java3D Spiele- und Multimedia-Programmierung 4
J Kollision von Objekten Spiele- und Multimedia-Programmierung 7
M Asteroids Clone: Kollision zwischen Schuss und Feind Spiele- und Multimedia-Programmierung 13
F Bewegung/Kollision von Objekten auf Tastendruck Spiele- und Multimedia-Programmierung 6
Z Kollision Spiele- und Multimedia-Programmierung 3
F Kollision für Arkanoid Spiele- und Multimedia-Programmierung 2
N Kollision abfragen Spiele- und Multimedia-Programmierung 3
K Sprites / Kollision Spiele- und Multimedia-Programmierung 3
S Jump'n'Run: Probleme mit Kollision Spiele- und Multimedia-Programmierung 13

Ähnliche Java Themen

Neue Themen


Oben