![]() |
Anzeige:
|
|
|||||||
| Sonstige Programmiersprachen Das Sammel-Forum für alle weiteren Programmiersprachen wie z.B. Assembler, Delphi, Pascal, C# (C-Sharp), Java usw. |
|
![]() |
|
|
LinkBack | Themen-Optionen | Ansicht |
|
|
#1 (Direktlink) |
|
Forenmaskottchen
![]() Registriert seit: 20.01.2007
Ort: C:\D\NRW\Ddorf\Eller
Beiträge: 850
|
Hey,
hab in der Schule nun Informatik und wir arbeiten mit BlueJ. Hab nur eine Frage. Wir sollen nun ein Haus mit Stockwerken (als Klasse) schreiben. Und jetzt sollen wir noch was hinzufügen, damit man das Haus vergrössern bzw. verkleinern kann, damit da noch andere Häuser hinkönnen und damit das nachher wie einer Landschaft wirkt. Weiss nur nicht so genau wie. Das Haus ist fertig, nur mir fehlt das mit der Grösse halt noch. Kann mir da jemand helfen? Muss ich das so machen, dass ich jedes Teil einzeln vergrösser oder gibt es da ne Möglichkeit, dass ich eingebe, um wie viel Prozent sich das komplette Haus vergrössern bzw. verkleinern soll? Hier mal der Text bis dato: Code:
/**
* Write a description of class HausStockwerk here.
*
* @Benedikt B.
* @1.0
*/
public class HausStockwerk {
private int x;
private Quadrat wand;
private Quadrat fenster1;
private Quadrat fenster2;
private Quadrat fenster3;
private Dreieck dach;
private Rechteck tür;
public HausStockwerk() {
wand = new Quadrat();
fenster1 = new Quadrat();
fenster2 = new Quadrat();
fenster3 = new Quadrat();
dach = new Dreieck();
tür = new Rechteck();
wand.groesseAendern(100);
wand.farbeAendern("hellgrau");
wand.horizontalBewegen(20);
wand.vertikalBewegen(20);
fenster1.horizontalBewegen(33);
fenster1.vertikalBewegen(30);
fenster1.farbeAendern("dunkelgrau");
fenster1.groesseAendern(20);
fenster2.horizontalBewegen(85);
fenster2.vertikalBewegen(30);
fenster2.farbeAendern("dunkelgrau");
fenster2.groesseAendern(20);
fenster3.horizontalBewegen(85);
fenster3.vertikalBewegen(70);
fenster3.farbeAendern("dunkelgrau");
fenster3.groesseAendern(20);
dach.farbeAendern("rot");
dach.groesseAendern(60,150);
dach.vertikalBewegen(-2);
dach.horizontalBewegen(79);
tür.farbeAendern("gruen");
tür.breiteAendern(25);
tür.hoeheAendern(50);
tür.horizontalBewegen(33);
tür.vertikalBewegen(70);
x = 0;
}
public void sichtbarMachen() {
wand.sichtbarMachen();
fenster1.sichtbarMachen();
fenster2.sichtbarMachen();
fenster3.sichtbarMachen();
dach.sichtbarMachen();
tür.sichtbarMachen();
}
public void groesseAendern(int neueGroesse) {
}
public int sampleMethod(int y)
{
return x + y;
}
}
Benne |
|
|
|
|
|
|
#2 (Direktlink) | |
|
Dauergast
![]() Registriert seit: 09.05.2004
Beiträge: 1.543
|
Zitat:
Nebenbei: Mir erschliesst sich nicht so ganz, warum du die 'Landschaft' in die Klasse implementieren moechtest? Die entsteht doch mehr oder weniger automatisch, in dem du spaeter mehrere Instanzen der Basisklasse ('Haus') erzeugst?! Bitte beschreib, moeglichst nochmal ein wenig abstrakter, was genau du moechtest, bzw. was die Aufgabenstellung von dir will. |
|
|
|
|
|
|
#3 (Direktlink) |
|
Forenmaskottchen
![]() Registriert seit: 20.01.2007
Ort: C:\D\NRW\Ddorf\Eller
Beiträge: 850
|
Ja das Haus ist ja schon fertig. Wurde mit Quadraten, Dreiecken, Rechtecken gemacht. Und dies ist als Klasse: So sieht es imo aus:
![]() Und jetzt mache ich die beiden Häuser(Stockwerk) sichtbar. Jedoch sind beide gleichgross und stehen nebeneinander. Und die Aufgabe ist nun, den Text eines Hauses so zu verändern, dass ich es vergrössern bzw. verkleinern kann, damit es weiter nah bzw. weg erscheint. Die Aufgabe von meinem Lehrer genau lautet: "Erstelle ein BlueJ-Projekt, mit dem die Grösse des Hauses geändert werden kann." Also so soll das Ergebnis aussehen (rechtes Bild).Bitte nur die Häuser beachten, der Rest ist egal > Gras, Blumen usw.: ![]() Das mein ich mit grösser und kleiner. (ist nur die Aufgabenstellung als PDF von meinem Lehrer.) So sieht es imo bei mir aus: ![]() Ich habe demnach HausStockwerk1 und HausStockwerk2 sichtbar gemacht. Und nun soll ich den Text eines Hauses so schreiben, dass ich es beliebig grösser und kleiner machen kann, damit halt bald sowas entsteht, wie auf dem 2. Bild oben. War mit der Landschaft anders gemeint, ist aber unwichtig. Geht jetzt erstmal nur um das Vergrössern und Verkleinern. Hoffe du/ihr weisst/wisst nun was ich meine |
|
|
|
|
|
#4 (Direktlink) | |
|
Dauergast
![]() Registriert seit: 09.05.2004
Beiträge: 1.543
|
Zitat:
Wenn du entsprechenden Methode aus der 'HausStockwer'-Klasse aufrufen kannst, muessen die imo entweder public oder friend (oder gibts das nur bei CPP? Bin mir grad nicht sicher) sein. In erstem Fall koenntest du die Methode ueberall in deinem Programm aufrufen um Position und Groesse zu veraendern. Alternativ koenntest du die Methode 'HausStockwerk ()' auch ueberladen und die entsprechenden Parameter bei Aufruf zum Beispiel zufallsgenerieren, durch den User eingeben lassen, oder aehnliches. Du siehst: es gibt tausend Loesungen. |
|
|
|
|
|
|
#5 (Direktlink) |
|
Forenmaskottchen
![]() Registriert seit: 20.01.2007
Ort: C:\D\NRW\Ddorf\Eller
Beiträge: 850
|
Was ich halt nicht machen wollte, bzw. dachte das es anders geht, jedes Teil einzeln verkleinern müssen. Verschieben muss ich sowieso noch.
Dachte halt, dass es sowas gibt, damit der Benutzer (öffentlich) es auf einmal vergrössern kann, also wenn das Haus nun z.B. 20m² hat, dass er es auf 40m² direkt vergrössern kann (soll jetzt nur ein Beispiel zum Verdeutlichen meines Gedankens sein). Also muss ich nun bei jedem Teil (Fenster, Wand usw.) einzeln schreiben: groesseAendern auf so und so? Ich meinte nämlich, ob es möglich ist, dass ich das nicht bei jedem hinschreiben muss, sondern, dass ich das einmal schreibe und es für alles gilt. Also wenn der Benutzer sagt: Vergrössern um 50, dass sich das komplette Haus um "50" vergrössert und net nur ein Teil. Weisst was ich meine?? |
|
|
|
|
|
|
#6 (Direktlink) | ||
|
Dauergast
![]() Registriert seit: 09.05.2004
Beiträge: 1.543
|
Zitat:
Zitat:
EDIT: Okay, du koenntest quasi eine 'set-all'-Funktion schreiben, die mehrere Parameter bekommt und die dann an die Methoden uebergibt. Dann haettest du den Schreibaufwand nur einmal. Aber imo ist das kein allzu guter Stil. |
||
|
|
|
|
|
#7 (Direktlink) |
|
Forenmaskottchen
![]() Registriert seit: 20.01.2007
Ort: C:\D\NRW\Ddorf\Eller
Beiträge: 850
|
Vielen lieben Dank für deine Hilfe. Werde mich dann heute Nachmittag (wenn ich hier sein sollte) mal dadran setzen.
|
|
|
|
|
|
#8 (Direktlink) | |
|
Forenmaskottchen
![]() Registriert seit: 20.01.2007
Ort: C:\D\NRW\Ddorf\Eller
Beiträge: 850
|
Hey, hab mal wieder ne Frage zu BlueJ:
Wir sollen eine Schatzsuche programmieren. Also enthalten sein soll: Ein Schatz, der sich bei jedem Neustart des Spiels, an eine andere Stelle setzt. Dann halt die Maus und wenn man klickt, soll angezeigt werden, wie weit man noch entfernt ist. Dies hab ich nun auch schon soweit geschafft. Jetzt fehlt mir aber noch eine Sache: Wenn ich den Schatz treffe (+/- 10 oder 20 Pixel whatever, kann ich ja einstellen), soll der Schatz als gelber Kreis oder so dargestellt werden, damit man ihn halt sehen kann und es soll ein text erscheinen, der z.B. Glückwunsch sagt. Wisst ihr, wie ich das meine bzw. kann mir jemand sagen, wie ich weiter vorgehen muss, damit ich mein Ziel erreiche? Mein Text im Moment: Zitat:
|
|
|
|
|
![]() |
|
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
|
|