Dienstag, 31. Juli 2012

Ausgestaltung des Menüs:

Heute wurde die Menüleiste (bis auf weiteres) ergänzt. Sie enthält nun folgende Menüpunkte und Menüunterpunkte:

1. Spiel

  • „Neues Spiel“ / Ctrl+N
  • „Beenden“ /  Ctrl+X

2. Optionen
  •  „Legende“ /  Ctrl+L
  • „Highscore“ /  Ctrl+H
  • „Schwierigkeitsgrad wählen“ / Ctrl+S 
  • „Einstellungen“ /  Ctrl+E

3. Hilfe

4. About


Jedem Menüunterpunkt wurde zudem ein Shortcut zugewiesen. 

Die Menüpunkte funktionieren allerdings noch nicht, bei Klicken eines Punktes wird immer noch ein Fehler angezeigt. Die Verknüpfung wird daher einer der nächsten Schritte sein!


Montag, 30. Juli 2012

Die Käferwelt als Grundlage

Für das eigentliche Spielfeld (also die interaktive Umgebung, in der sich die Schlange später bewegen soll) nehmen wir als Grundlage den Quellcode der Käferwelt
Das hat zum einen praktische Gründe, denn in der Käferwelt sind schon Methoden vorhanden, bei denen beispielsweise Objekte randomisiert auf das Spielfeld gesetzt werden, was wiederum für die Hindernisse in unserer JavakondaWelt genutzt werden kann. Zum anderen können wir auch auf das Design und die anderen Funktionen zurückgreifen, wenn wir beispielsweise unsere Menüleiste entwerfen.


Folgende Modifikationen haben wir durchgeführt:

  1. Die bisherigen Hindernisse (Bäume bzw. Pilze) der Käferwelt haben wir durch Mauern ersetzt.
  2. Den Käfer selbst haben wir durch einen Punkt ersetzt (der im späteren Verlauf zu einer Schlange werden soll)
  3. Die Gitternetze haben wir entfernt (bzw. die Gitterfarbe schwarz durch weiß ersetzt), sodass es scheint, dass sich die "Schlange" ungehindert durch die Welt bewegt.
Hier ein Vorher-Nachher-Bild:

Im nächsten Schritt soll die Menüleiste erweitert sowie die vorläufige JavakondaWelt in die Gesamt-Gui integriert werden.

Sonntag, 29. Juli 2012

Erstellen des eigentlichen Javakonda-Spielfelds

Eine weitere Java-Klasse wurde mit dem Namen JavakondaSpielfeld.java erstellt, in der vorläufig (bereits mit kleinen Änderungen versehen) die GUI einer Käferwelt programmiert wurde. Genauere Informationen zur Käferwelt-Grundlage findet sich an anderer Stelle in diesem Blog.

Die Idee ist, in dieser Klasse alles auszuprogrammieren, was später auf dem eigentlichen Spielfeld (also der GridPane mit der interaktiven Spielumgebung - siehe Eintrag vom 26. Juli) passieren soll und diese später dann in die allgemeine GUI (JavakondaGUI.java) zu integrieren. So bleibt die Klasse JavakondaGUI.java übersichtlicher, und wir können die Gefahr minimieren, dass ausversehen andere wichtige Elemente, welche den grafischen Aufbau des Spiels betreffen, gelöscht oder verändert werden.

Hier nun ein Screenshot zur neuen Klasse:

Donnerstag, 26. Juli 2012

Erste Schritte zur perfekten Gui

In Anlehnung an bisher bearbeitete Projekte der Java-Übung haben wir das erste Grundgerüst einer Gui für unser Javakonda-Spiel erstellt.


Grundlage für unsere Gui bildet eine BorderPane, die wir in drei Sektionen unterteilt haben: Der obere Abschnitt ist eine HBox und beinhaltet die Menü-Elemente. Der linke Abschnitt ist eine GridPane und wird die eigentliche interaktive Spielumgebung beinhalten, in der sich die Schlange später bewegen soll. Rechts neben der GridPane befindet sich eine VBox, die Angaben zu Spielername, Schwierigkeitsstufe und den bisher erreichten Punkten beinhalten soll.



Die Menüleiste ist zwar schon sichtbar, funktioniert aber noch nicht (in Netbeans wird beim Klicken auf die Elemente ein Fehler angezeigt). Deshalb wird der nächste Schritt sein, diese mit Funktionen zu füllen und die Fehler zu beseitigen. Auch soll an dem interaktiven Spielfeld (GridPane/Spielumgebung) gearbeitet werden. Hierzu bedienen wir uns dem Quellcode der Käferwelt um ein zweidimensionales Array zu gestalten, in dem sich die Schlange später bewegen wird und in dem Hindernisse sowie Icons/Punkte erscheinen sollen.

Montag, 23. Juli 2012

Erste Gedanken zum Design

Im folgenden sollen einige Gestaltungselemente unserer Javakonda-Gui näher erläutert werden.

Punkte/Icons:
Unsere Version von Snake soll javafiziert sein: Soll heißen, dass wir einige Gestaltungskriterien im Stil von Java beziehungsweise Netbeans halten wollen. Beispielsweise können die Punkte/Icons, die die Schlange frisst um zu wachsen mit dem Java-Icon verziert sein. Mögliche Icons könnten wie folgt aussehen:



Schlangensegmente/Netbeans:
Auch soll die Schlange nach Möglichkeit aus kleinen Netbeans bestehen. Diese könneten wie folgt aussehen:




Hindernisse:
Die Hindernisse könnten aus Mauersteinen bestehen:








"Game Over"-Meldung:
Berührt die Schlange ein Hindernis oder sich selbst, endet das Spiel mit Game Over. Diese Meldung könnte wie folgt aussehen:







Weiterhin soll das Spiel der_dem Speiler_in über ein Menü folgende Operationen zur Verfügung stellen:

  • Neues Spiel 
  • Spiel beenden 
  • Schwierigkeitsgrad „Einfach“, „Mittel“ und „Schwer“ – die Schlange bewegt sich je nach gewähltem Schwierigkeitsgrad langsamer oder schneller 
  • Hilfe und About 
  • Highscore 

Und folgende grundsätzliche Funktionen/Meldungen/Informationen sollen neben dem Spielfeld zur Verfügung stehen: 

  • Schwierigkeitsgrad wird angezeigt 
  • Spielzeit sowie Punktestand werden angezeigt 
  • Name des Spielers 


Eine mögliche Gui könnte demnach wie folgt aussehen:


Sollten wir es zeitlich schaffen, können auch Frage-Elemente in die Punkte/Icons integriert werden. Hierbei wird das Spiel angehalten und der_dem Spieler_in eine Frage gestellt, die Extra-Punkte einbringen kann.*** Eine mögliche Gui könnte demnach wie folgt aussehen:


*** Wir wollen uns zunächst auf die grundlegende Spielmöglichkeit des Projekts beschränken und je nach Zeit und Möglichkeit die Option von Frage-Elementen ausschöpfen.

Freitag, 20. Juli 2012

Von der Idee zum Projekt

In der letzten Woche haben wir die letzten Klausuren für das Sommersemester geschrieben. Und nun beginnen die wohlverdienten Semesterferien: Sommer, Sonne ... und Java! Wobei die ersten beiden Punkte bisher nicht wirklich in Erscheinung getreten sind! Dafür wollen wir aber, dass unser Java-Projekt Javakonda eine Erscheinung wird!

Mit einer kurzen und schmerzlosen Recherche durch die Weiten des Internets und mit ein paar eigenen Gedanken zum anstehenden Projekt, haben wir uns für ein Spiel entscheiden, dass jede_r kennt: Snake! Nur in diesem Fall wollen wir das Ganze etwas abändern und quasi javafizieren.

Die Spielidee ist simpel: Eine Schlange gleitet automatisch über ein Spielfeld, die_der Spieler_in steuert lediglich die Richtung dieser (oben/unten/rechts/links) und sammelt dabei Punkte/Icons ein, durch die die Schlange an Länge gewinnt. Schwierigkeit ist hierbei das Umschiffen der Hindernisse, die sich auf dem Spielfeld befinden. Berührt die Schlange diese oder sich selbst, endet das Spiel.

Wir wollen dem Spiel weitere Funktionen hinzufügen und uns vor allem auf ein ansprechendes Design konzentrieren. Auch der Spaßfaktor ist für uns wichtig.