Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Hallo Leute,

ich brauche eure Hilfe.

Wir müssen Mit BlueJ eine sehr einfache Version des Spieles Moorhuhn programmieren (zB. für die Hühner reichen einfache Kreise.).

Also mein Problem ist, dass ich keinerlei erfahrungen beim programieren mit BlueJ habe.

auf meiner alten schule hatten wir mit delphi gearbeitet und jetzt muss ich von einem tag auf den nächsten mit bluej arbeiten.

und das ist sehr schwer für mich ich habe keine ahnung.

kann mir denn einer helfen?

Kennt sich irgendeiner aus oder könnte mir jemand helfen?

Ich danke euch im voraus!:confused:

Geschrieben (bearbeitet)

Galileo Computing :: Java ist auch eine Insel (8. Auflage)

Java ist eine Insel ist sehr gut ;-)

The Really Big Index

und das ist zwar auf englisch aber dafür ziemlich gut und verständlich, und immer mit Beispielen.

Rechtecke und Kreise zeichnen

das erst beste beispiel zum zeichnen von kreisen was ich gefunden habe

auch wichtig für die steuerung z.B.

http://www.dpunkt.de/java/Programmieren_mit_Java/Ereignisbehandlung/11.html

weiß ja nich ob mit der tastatur gezielt werden soll(dann musst du die key events verarbeiten) oder mit der Maus (dann halt die Maus events)

Bearbeitet von elSusto
Geschrieben

@elSusto:

ohh danke, die links sind sehr hifreich, danke!!!

so jetzt versuche ich die kreise zu machen.

aber was kommt dann?? es soll ein spiel werden!

wie kann ich es animieren und so??

ehrlich ich habe null ahnung.

hat das denn niemand zuvor gemacht??

bitte hilft mir :-(

Geschrieben

so jetzt versuche ich die kreise zu machen.

Was für Quellcode hast du denn bisher erstellt? Konntest du die Kreise generieren?

ehrlich ich habe null ahnung.

Das wird auch so bleiben, wenn du keine Eigeninitiative zeigst. Wenn dir jeder Schritt hier vorgekaut wird, bringt dir das didaktisch rein gar nichts. Schau dir die Inhalte auf den geposteten Java-Seiten an.

Geschrieben

hmm tut mir leid, aber ich habe informatik nur noch für einige wochen, deshalb denke ich nich das ich jetzt den ganzen stoff nachholen werde, da ich schließlich auch andere, wichtigere fächer habe.

ich will nur diese abschlussarbeit mit einer akzeptablen note abschließen, das wars!

so ich habe erstmal eine klasse erstellt. jetzt mache ich die kreise wie oben beschrieben, aber ich weiß nochnichtmal wie man das programm zum laufen bringt!

vielleicht nerve ich aber könnt ihr mir nur diesen einen gefallen tun und mir helfen?

Geschrieben

Helfen tun wir gerne!

Aber wenn du keine Eigeninitiative zeigst, bist du hier leider an der falschen Adresse.

BTW: Du hast es als Unterrichtsfach und willst eine gute Note. Für gute Noten muss man nunmal was tun. War bei uns nicht anders.

Wenn ich jetzt noch davon ausgehe, dass euer Lehrer kein totaler Unmensch ist, hat er euch vorher auch einige sachen im Unterricht gezeigt!

Damit kennst du die grundlegenden Punkte bei der Programmierung und kannst auch bestimmt auch genauer schildern, wo denn exakt dein problem liegt.

...ich weiß nochnichtmal wie man das programm zum laufen bringt!

Dann würde ich mir ganz schnell meine Unterrichtsunterlagen suchen

Geschrieben

Ja, dass ist mir schon klar.

Ich glaube ich habe es in meinem ersten post erwähnt, dass es nichts damit zu tun hat, dass ich nie aufpasse oder eigeninitiative ergreife.

das problem ist, dass ich vor kurzem die schule gewechselt habe weil ich umgezogen bin. und auf der schule in der ich jetzt bin, arbeiten die schüler mit blueJ. zuvor hatte ich mit delphi gearbeitet, da war ich auch recht gut.

zu unserem unterricht: ich denke viele informatikstunden laufen gleich ab. die schüler sitzen vor den computern und machen ihre aufgaben. in meinem alten kurs war es genauso.

wir hatten auch ein buch, davon ist aber keins mehr übriggeblieben für mich. ausserdem benutzen wir es jetzt sowieso nicht mehr. wir müssen an unseren projekten arbeiten, d.h. ich habe auch keine chance irgendwo etwas nachzuschlagen.

Geschrieben

so also ich habe eine neue klasse mit dem namen huhn erstellt und folgendes reingeschrieben:

/**

* Write a description of class Huhn here.

*

* @author (your name)

* @version (a version number or a date)

*/

public class Huhn

// Bezugsobjekte

private hatKreis1, hatKreis2, hatKreis3;

// Attribute

private boolean zSchautNachLinks;

private boolean zSollDrehen;

// Konstruktor

public Huhn(int pH, int pV, boolean pSchautNachLinks)

{

zSchautNachLinks = pSchautNachLinks;

zSollDrehen = false;

}

public void groesseAendern(int neuerDurchmesser) {20]

loeschen();

durchmesser = neuerDurchmesser;

zeichnen();

}

public void groesseAendern(int neuerDurchmesser) {10]

loeschen();

durchmesser = neuerDurchmesser;

zeichnen();

}

public void groesseAendern(int neuerDurchmesser) {30]

loeschen();

durchmesser = neuerDurchmesser;

zeichnen();

}

public void farbeAendern(String schwarz) {

farbe = neueFarbe;

zeichnen();

}

// Dienste

public void zeichne()

{

if (zSchautNachLinks)

{

hatBildRechts.verstecke();

hatBildLinks.zeige();

}

else

{

hatBildLinks.verstecke();

hatBildRechts.zeige();

}

}

public boolean schautNachLinks()

{

return zSchautNachLinks;

}

public void setzeSchautNachLinks(boolean pSchautNachLinks)

{

zSchautNachLinks = pSchautNachLinks;

}

public boolean sollDrehen()

{

return zSollDrehen;

}

public void setzeSollDrehen(boolean pSollDrehen)

{

zSollDrehen = pSollDrehen;

}

public void drehe()

{

zSollDrehen = false;

zSchautNachLinks = !zSchautNachLinks;

this.zeichne();

}

public void gibFrei()

{

hatBildLinks.gibFrei();

hatBildRechts.gibFrei();

}

public int hPosition()

{

return hatBildLinks.links();

}

}

ich denke da sind schon einige fehler drin, aber ich habe keinen der mir hilft.

Geschrieben

deine variable int durchmesser ist nicht deklariert.

dein String farbe ist auch nicht deklariert.

hatBildRechts und hatBildLinks kann ich auch nirgends finden.

und davan die verstecken und

zeige methoden wären villt interresant.

// Bezugsobjekte

private hatKreis1, hatKreis2, hatKreis3;

?

Objekte in java deklarieren:

private/public/protected Object(Typ) name;

Geschrieben

/**

* Write a description of class Huhn here.

*

* @author (your name)

* @version (a version number or a date)

*/

public class Huhn

// Bezugsobjekte

// Attribute

private boolean zBewegeNachLinks;

private boolean zBewegeNachRechts;

// Konstruktor

public zeichneKreis = Huhn1

public zeichneKreis = Huhn2

public zeichneKreis = Huhn3

public void groesseAendern(int neuerDurchmesser) {20]

loeschen();

durchmesser = neuerDurchmesser;

zeichnen();

}

public void groesseAendern(int neuerDurchmesser) {10]

loeschen();

durchmesser = neuerDurchmesser;

zeichnen();

}

public void groesseAendern(int neuerDurchmesser) {30]

loeschen();

durchmesser = neuerDurchmesser;

zeichnen();

}

public void farbeAendern(String schwarz) {

farbe = neueFarbe;

zeichnen();

}

// Dienste

public boolean sollDrehen()

{

return zSollDrehen;

}

public void setzeSollDrehen(boolean pSollDrehen)

{

zSollDrehen = pSollDrehen;

}

public void gibFrei()

{

hatBildLinks.gibFrei();

hatBildRechts.gibFrei();

}

public int hPosition()

{

return hatBildLinks.links();

}

}

ich hab es ein wenig überarbeitet.

wahrscheinlich wieder mit 1000 fehlern :-(

Geschrieben

wenn du compiliert wird, werden dir fehler angezigt, villt solltest du lernen diese zu verstehen.

ein beispiel aus deinem code:


public void farbeAendern(String schwarz) {

farbe = neueFarbe;

zeichnen();

}

wenn du mir jetzt erklärst wieso es schwarz heißt aber du dann in der methode mit dem namen neueFarbe arbeitest ?

und farbe ist auch nirgends deklariert.

und das die eine MEthode dreimal exakt gleich exestiert ? Das sollte auch fehler meldungen geben.

Und dann solltest du mal versuchen zu erklären was du da in den drei zeilen unter dem Kommentar "Konstruktor" versuchst. Wie nen Kunstruktor aufgebaut ist weißt du ja, hast in deinem ersten Quellcode ja schon richtig.

Also wenn du auf die Fehlermeldungen achtest die du bekommst, wirst du schon viele fehler beheben können.

Gruß

  • 3 Wochen später...
Geschrieben

Hallo alle zusammen :-)

Also ich will ein spiel programieren, welches die grundlage eines egoshooter spieles sein könnte.

Mein spiel: es fliegen drei unterschiedlich große und schnelle kreise durch das spielbild. mit der maustaste soll man die kreise anklicken,

dann sollen sie verschwinden und wo anders wieder auftauchen(zufällig). für die unterschiedlichen kreise sollen dann punkte vergeben werden.

Also eigentlich ganz einfach :-) aber ich kriege es nicht hin.

Aber so ganz faul bin ich auch nicht!

ich habe die kreise schon animiert und das" getroffen" attribut programiert (sagt man das so xD),

d.h. das programm erkennt nun ob ein kreis getroffen wurde oder nicht.

Also übrig bleibt noch: - kreise nach einem "true"Klick verschwinden lassen und irgendwo zufällig wieder auftauchen lassen.

- pro "true"KLick punkte gutschreiben

Hier die quellcodes:

SuMAnwendung

import sum.ereignis.*;

import sum.komponenten.*;

import sum.werkzeuge.*;

/**

* @author

* @version

*/

public class SuMAnwendung extends EBAnwendung

{

// Bezugsobjekte

Huhn h1,h2,h3;

// Attribute

// Konstruktor

public SuMAnwendung()

{

super(400,400);

h1=new Huhn(100,90,10,1,hatBildschirm);

h2=new Huhn(130,100,20,3,hatBildschirm);

h3=new Huhn(130,100,5,6,hatBildschirm);

}

// Dienste

public void bearbeiteLeerlauf()

{

h1.fliegen();

h2.fliegen();

h3.fliegen();

}

public void bearbeiteMausDruck(int pWoH, int pWoV)

{

System.out.println("Mausposition("+pWoH+"|"+pWoV+")");

h1.getroffen(pWoH,pWoV);

h2.getroffen(pWoH,pWoV);

h3.getroffen(pWoH,pWoV);

}

}

[SIZE=5]Klasse: Huhn

import sum.ereignis.*;

/**

* @author

* @version

*/

public class Huhn

{

// Bezugsobjekte

private Buntstift s= new Buntstift();

// Attribute

private double x;

private double y;

private int radius;

private double tempo;

private Bildschirm kenntBildschirm;

// Konstruktor

public Huhn(double px, double py, int pradius, double ptempo, Bildschirm pBildschirm)

{

x=px; y=py; radius=pradius; tempo=ptempo;

s.bewegeBis(x,y);

this.zeichnen();

kenntBildschirm=pBildschirm;

}

// Dienste

private void zeichnen()

{

s.zeichneKreis(radius);

}

private void loeschen()

{

s.radiere();

this.zeichnen();

s.normal();

}

private void bewegen()

{

x=x+tempo;

s.bewegeBis(x,y);

if(x>kenntBildschirm.breite())

x=0;

}

public void fliegen()

{

this.loeschen();

this.bewegen();

this.zeichnen();

}

public boolean getroffen(int pMausH, int pMausV)

{

double dx = s.hPosition()-pMausH;

double dy = s.vPosition()-pMausV;

System.out.println("Getroffen: "+(radius*radius>dx*dx+dy*dy));

if(radius*radius>dx*dx+dy*dy)

return false; //nicht getroffne

else

return true; //getroffen

}

}

die kreise heißen huhn ;-)

könnt ihr mir helfen????

Geschrieben

Das ist doch immer noch dieselbe Aufgabe wie vor knapp einem Monat. Warum machst du dafür einen neuen Thread auf?

Zu deiner Frage: Wenn du auf Treffer reagieren willst, solltest du den Rückgabewert von getroffen auswerten. Momentan ist es deiner Anwendungsklasse ja egal, ob da true oder false rauskommt.

Und wenn du Punkte zählen willst, brauchst du eine Punktezählvariable an geeigneter Stelle.

Wie man ein neues Huhn erstellt, weißt du ja. Und was das zufällige angeht: Random (Java 2 Platform SE v1.4.2)

Geschrieben
Das ist doch immer noch dieselbe Aufgabe wie vor knapp einem Monat. Warum machst du dafür einen neuen Thread auf?

Sorry hab ich ganz vergessen, tut mir echt leid.

So erstens, mein programm reagiert schon auf treffer, jetzt will ich eigentlich nur dass sie verschwinden wenn man sie anklickt.

könntest du mir vllt. sagen wie es als code in meinem programm aussehen würde?bitte, wäre dir sehr dankbar.

Geschrieben
So erstens, mein programm reagiert schon auf treffer, jetzt will ich eigentlich nur dass sie verschwinden wenn man sie anklickt.
Wenn sofort wieder an anderer Stelle ein neues erscheinen soll, dann musst du nur der "getroffenen" Verweisvariablen ein neu erstelltes Huhn zuweisen.
Geschrieben

ja danke :-)

ich habe deinen link nicht vergessen, aber welche zeilen davon schreibe ich den in mein programm? die zeilen müssen doch auf deutsch sen. sorry aber bei sowas bin ich immer zu blöd :)

nicht aufregen ;-)

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...