Zum Inhalt springen

[BlueJ] "Pong" programmieren


Sel93

Empfohlene Beiträge

Hi,

wir machen in BlueJ ein Projekt. Wir müssen ein Spiel erstellen.

Wir (meine Gruppe & ich) wollten ein Pong-Ähnliches Spiel erstellen.

Wir haben die Kugel, die sich bewegt und an den Rändern korrekt abstoßt.

Wir haben einen Balken, den man mit der Maus bewegen kann.

Jetzt was wir noch brauchen:

1. Wir müssen die Kollisionsabfrage für Kugel mit Balken einbauen. Da wissen wir allerdings nicht, wie das geht. Es sollte so ähnlich wie bei Pong sein: Die Kugel stößt von dem Balken ab. Je nachdem wo sie den Balken trifft prallt sie anders ab. Wie genau sie das macht, weiss ich garnicht. Auf jeden Fall nicht Einfallwinkel = Ausfallwinkel.

Wir hatten gedacht es wäre nur möglich wenn wir den Balken in mehrere Abschnitte aufteilen. Aber wir wissen nicht wie das geht. Wir wissen bisher noch nichtmal wie wir überhaupt die Kugel zum Abstoßen lassen bringen sollen, wenn die Kugel sie berührt.

2. Wir brauchen einen Computergegner. Eine KI. Sie muss nicht besonders schlau sein. Es würde ja eigentlich reichen, wenn sie sich immer zur Kugel hin bewegt in ner bestimmten Geschwindigkeit.

Auch hier: Wie sollen wir das anstellen?

Das wars fürs erste.

Wir haben BlueJ erst vor zwei Wochen angefangen und wenig Ahnung davon. Vorher haben wir garkein Java gemacht. Deshalb wäre es gut, wenn ihr es so einfach wie möglich halten könntet.

Ich bedanke mich schonmal herzlichst im Vorraus für alle Hilfe, die wir bekommen.

Mit freundlichen Grüßen

Sel93

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 2 Wochen später...

hey,

ich denke ich kann dir dabei nicht helfen, und die leute die es könnten denen fehlt warscheinlich die zeit für so etwas aufwendiges.

ich hoffe ihr habt das hinbekommen, aber ein lehrer der euch erst ein spiel programmieren lässt um danach grundlegendes wie arrays erklärt, geht irgendwie falsch herum vor.

ich kenne das....ich sollte auch bevor er mir sql erklärt hat ne datenbankapplikation bauen ;)

viel erfolg und für java kannste eig alles googeln...

z.B.: "java arrays" oder "java pong tutorial" gibts bestimmt ;)

byebye

Link zu diesem Kommentar
Auf anderen Seiten teilen

Naja, also unser Lehrer erklärt sehr wenig stimmt.

Ich habs jetzt irgendwie geschafft ein einigermaßen gut laufendes Pong zu programmieren. Den Balken hab ich mit ganz simplen Befehlen in ca. 10 Teile unterteilt, bei jedem prallt der Ball in einem anderen Winkel zurück. Der Einfallswinkel wird jetzt garnicht mehr berücksichtigt, nur wo er auf den Balken prallt.

Die KI hab ich auch seeehr simpel gemacht, und zwar so das ich die beiden .vPosition von Balken und Ball vergleiche und dann bewegt der Balken sich zu Ball.vPosition mit einer festgelegten Geschwindigkeit.

Ist also alles sehr einfach gehalten weil ich nicht weiss wie ichs sonst hinkriegen soll.

Trotzdem gibts noch Probleme, eins ist das Ball und Balken immer flackern. Wie stell ich das ab?

Und ich weiss noch nicht wie ich das mit der Punktevergabe mache, auch wie man genau Labels macht weiss ich noch nicht und werde irgendwie im Internet nicht schlau aus den Erklärungen.

Wir müssen das Projekt Dienstag abgeben.

Bearbeitet von Sel93
Link zu diesem Kommentar
Auf anderen Seiten teilen

hab das so:

    public Hauptprogramm()

    {

...

        Spielerpunkte = new Label();

        Gegnerpunkte = new Label();

        Panel1 = new Panel();

        Panel2 = new Panel();



public void Labelerstellung() 

{

   Panel1.setLayout(new GridLayout(20,20));

   Panel1.add(new Label("test"));

}

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ja du musst das Label, das Du oben erzeugst auch dem Panel hinzufügen.

Also nicht add(new Label()); denn damit fügst Du ein neues, leeres Label hinzu.

Edit: Verzeihung, war Blödsinn. Die Klasse Panel stellt gar keine add-Methode zu Verfügung. Das heißt, Du müsstest Dein Label beispielsweise direkt auf die ContentPane setzen.

Bearbeitet von Ulfmann
Link zu diesem Kommentar
Auf anderen Seiten teilen

Wo kann ich dann hinschreiben was in das Label reingeschrieben werden soll und wie kann ich das ändern?
Hast du dich überhaupt schonmal mit den Grundlagen von AWT beschäftigt und die entsprechenden Artikel/Tutorials gelesen? Wenn nein solltest du das jetzt nachholen.

Zu deiner Frage:


 Label l = new Label();

 l.setText("Dieser Text erscheint im Label");

Link zu diesem Kommentar
Auf anderen Seiten teilen

Leider funktioniert das Label immer noch nicht. Nix zu erkennen auf dem Bildschirm.

public class Hauptprogramm {


    ....

    Label Spielerpunkte;

    Label Gegnerpunkte;

    Panel Panel1;

    Panel Panel2;


    public Hauptprogramm()

    {

        ...

        Spielerpunkte = new Label();

        Spielerpunkte.setText("Test");

        Gegnerpunkte = new Label();

        Gegnerpunkte.setText("Test");

        Panel1 = new Panel();

        Panel2 = new Panel();



    }






    public void fuehreAus()

    {

           Panel1.setLayout(new GridLayout(10,10));

           Panel1.add(Spielerpunkte);

    }

Hab ich was vergessen?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Wird das Panel nicht mit Panel1.setLayout(new GridLayout(10,10)); hinzugefügt?

Ich dachte das wäre der Befehl...

Probiere mal folgende methode bei dir zu implementieren:

private void createAndShowGUI(String title, Color bgColour)

{

canvas = new CanvasPane(fxSize, fySize);

xSize = fxSize;

ySize = fySize;

frame = new JFrame();

frame.setContentPane(canvas);

frame.setTitle(title);

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.addWindowListener( new WindowAdapter() {

public void windowActivated(WindowEvent e) {

frame.setEnabled(true);

frame.requestFocusInWindow();

}

});

Ich habe auch mal ein Pong Spiel geschrieben aber übers Netzwerk.

Also vll kann ich dir mit ein paar Codeschnippsel auf die sprünge helfen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...