Mein Erstes 2D Spiel

MaZeFrJoTh

Mitglied
Hallo zusammen, ich habe in den letzten Wochen immer mal wieder an ein Spiel hinprogrammiert, welches ich euch vorstellen möchte. Es sind bestimmt noch Fehler vorhanden und das Meü welches durch drücken der Leertaste erscheint, ist auch noch nicht voll ausgebaut. Trotzdem hoffe ich das ihr mir evtl Verbesserungsvorschläge oder auch Lob schenken könnt. Im Anhang befindet sich das Spiel.Anhang anzeigen Apfelbaum.jar
 
Nettes Spiel!
Nur weiter so!
Wenn Du weiter arbeitest und Dir die Links zu Gemüte führst, die Dir hier so genannt werden, kannst Du richtig was schaffen!
 
danke an euch alle für euer Lob und das mit dem Quelltext muss ich noch überarbeiten da ich bemerkt habe, dass alte Rechner wirklich Probleme haben diese einfache 2D Spiel flüssig darzustellen.
 
ok das mit der Maus ist ja eine Klasse Idee da könnte ich vllt im Menü einen RadioButton einbauen bei den man zwischen Maus und Tastatur umstellen kann. Die Idee wird bestimmt noch umgesetzt. Danke nochmal.
 
Ich hab das Spiel erst gar nicht verstanden, weil ich den Korb nicht sehen kann^^ Genauer gesagt, kann ich ihn sehen, aber nur durch meine transparente Taskleiste 😀

Die Fenstergröße sollte sich vllt an diesen Zeilen orientieren:

Java:
//Auflösung bestimmen (ohne die Höhe der Taskleiste)
Rectangle r = GraphicsEnvironment.getLocalGraphicsEnvironment().getMaximumWindowBounds();
//Dann evtl.:
Dimension screenSize = new Dimension((int) r.getWidth(), (int) r.getHeight());

Falls du die Größe nicht sowieso fest eincodiert hast^^
 
Die Probleme mit der Fenstergröße treten bei fast allen 16:9 Displays auf die kleiner als 16" sind. Außer man hat ein Full- HD Display. Man braucht ein Display mit min 800 Pixel höhe. Der Vorschlag die Größe an das Diplay anzupassen ist schon öfters gefallen, jedoch würde die Umsetzung zu komliziert werden, da Hintergrund, die "Kollisionserkennung" auf den 800 px Höhe basieren. Trotzdem danke für dein implementierungvorschlag. Vllt bau ich sie irgendwan doch noch ein.
 
Hi,

ich will jetzt auch mal meinen Senf dazugeben:

positiv:
läuft flüssig

negativ:
lastet meinen Prozessor zu 100% aus

MfG jason
 
Als kleine Grundregel:

Das Sichtbare sollte sich IMMER skalieren lassen. DAs ist eigentlcih auch nich weiter schwer. Kollisionsabfragen sollten sowieso immer relativ geschehen.
Hier ein kleiner Vorschlag, der noch ausgebaut werden koennte...


Die maximale Breite x ist ein Wert zwischen 0 und 1. Die Hoehe y ist ein darauf basierender Wert.
Also als Beispiel: Dein Feld ist 400 breit und 800 hoch. Dann waere x natuerlich immer eins und y waere in dem Fall 2. Quasi ist y der Faktor, der mit 400px multipliziert wird um auf 800 zu kommen.

Der ganze Rest muss nun an diese Schreibweise angepasst werden. Also der Apfel haengt dann z.B. nicht bei 300/100 sondern bei 0.75/0.125. Ab dann kannst du das alles skalieren wie du lustig bist. Deine Grafiken muessen dann beim Zeichnen natuerlich auch skaliert werden.

Also ist z.B. dein Apfel auch niciht 30 px breit sondern in dem Fall z.B. 0.075 der Breite.

Wenn du alles relativ zur Breite ausrichtest, verrichtest du zwar erst mehr Arbeit aber im Nachhinein bist du dann um einiges flexibler!
 
Als kleine Grundregel:
Das Sichtbare sollte sich IMMER skalieren lassen. DAs ist eigentlcih auch nich weiter schwer. Kollisionsabfragen sollten sowieso immer relativ geschehen.
Hier ein kleiner Vorschlag, der noch ausgebaut werden koennte...

Ich nehme auch an, dass es leichter ist, als du MaZeFrJoTh das erwarten würdest. Wenn du so ein kleines Fenster machst, kannst du ein konstantes Seitenverhältnis vorraussetzen, das ist recht leicht gemacht nach dem Muster wie Kr0e es beschrieb. (Bei meinem Breakoutklon, der fast fertig ist, blende ich bei 4:3 Displays zB Streifen ein, wie bei alten Fernsehern, das fand ich wieder eeeetwas anspruchsvoller 😉)
Alle Leute, die 768 px in der Höhe haben, von einem Spiel, dass sich verbreiten soll, auszuschließen, wäre nicht gut. Ich behaupte, dass sehr viele mit 768 px in der Höhe unterwegs sind. Vllt nicht so sehr im Programmiererumfelt, aber zumindest bei den "normalen" PC-Nutzern.
 
Auf diese Möglichkeit wär ich von selber nicht drauf gekommen. Danke nochmals. Aber leider wird die Implementierung der Skalierung noch auf sich warten müssen, da noch grundlegendere Probleme beseitigt werden müssen (vorallem das Performance - Problem), damit ist wahrscheinlich ein Umschreiben der bisherigen Codes nötig. Und dann müsste ich die Skalierung auch wieder überarbeiten. Aber trotzdem danke für die Tipps, die leider so schnell nicht umsetzen werde.
 

Zurück
Oben