Dez 132012
 

Stunde #1-21: Themen (Threads)

Bisher haben wir in Java immer eine sehr einfache und generelle Regel befolgt, wenn wir den Run Knopf gedrückt haben, ist unser Programm von oben nach unten durchgelaufen, außer bei einer Schleife.

Bei der Spieleentwicklung benötigt man jedoch mehrere Prozesse, die simultan ablaufen und genau hier kommen uns die verschiedenen Themen (Threads) zu gute.

Das Wort Thread bedeutet, dass wir einen Prozess abhandeln. Wenn wir nun mehrfache Threads haben, werden verschiedene Prozesse simultan ausgeführt.

Wie erstellen wir nun einen Thread?

Die Methode ist ähnlich der Random Methode. Um ein zufälliges Objekt zu erstellen, nutzen wir folgenden Code:

Und ein Thread wird folgendermaßen erstellt:

Somit haben wir einen Thread namens Thread erstellt. Aber anderst als bei Random müssen wir nun noch eines zusätzlich machen. Threads benötigen eine run() Methode, welche wir direkt in die obige Zeile einfügen.

Beispiel 1: Threads

1. Wir fügen geschweifte Klammern hinzu

2. Innerhalb dieser geschweiften Klammern, werden wir die run() Methode platzieren, erinnert euch, dies ist zwingend notwendig. Dieses Vorgehen ist etwas anders als zuvor, stellt euch hierbei einfach die Hierarchie vom Java Code vor:

3. Wenn wir nun wollen, dass dieser Thread startet, müssen wir dies auch Java mitteilen. Es gibt einen Code, der bereits in Java eingebaut ist, der das ausführt: .start();

4. Wenn unser Thread nun gestartet ist, mit der Hilfe von .start(); sucht Java nach der Thread run Methode und beginnt diese auszuführen. Momentan ist unserer Thread leer, also fügen wir ein wenig hinzu:

5. Wenn wir nun unserer Thread starten würden, mit thread.start(); würden wir folgendes sehen:

6. Ein Thread alleine bringt keinem etwas, also schreiben wir einen zweiten. So würde der volle Code aussehen:

Lasst uns jetzt einen Blick darauf werfen, was genau hier geschieht. Wenn Java beginnt, dieses Programm durch zu laufen, schaut es als Erstes nach der Main Methode. Diese beinhaltet 4 Blöcke.

Der erste Block erstellt einen Thread namens thread und erstellt eine run Methode. Der zweite Block erstellt einen Thread namens threadTwo und erstellt eine run Methode. Der dritte Block startet den Thread thread und der vierte startet den threadTwo.

Ausgabe:

Irgendwie sind hier aber keine simultanen Prozesse am Laufen, sondern alles nacheinander?

Warum das so ist, werden wir im Kapitel 2 genauer behandeln.

Stunde #1-22: Grafik (Graphics)

Menschen mögen eine tolle Grafik, mit der sie interagieren können. Funktionalität ist sehr wichtig hierbei. Wir reden bei der Grafik von GUI (graphical user interface) bzw. grafische Benutzeroberfläche.

Wir werden heute nur einen Bruchteil von dem ansprechen, was uns bei diesem Thema erwartet, wir können dann aber immerhin schon etwas graphisches darstellen. Wir reden hier aber erstmal von Bildern. Grafik, wie sie in Spielen verwendet wird, ist etwas komplizierter.

Heute werden wir als Erstes ein Fenster abbilden, welches Bilder darstellen kann. Danach werden wir versuchen, auch wirklich Bilder darzustellen.

Als Erstes erstellen wir eine neue Klasse mit dem Namen GrafikDemo.

Nun wenden wir unser Wissen aus der letzten Lektion an. Um Bilder anzeigen zu lassen, müssen wir die Klasse erweitern, also nutzen wir hier Inheritance, dazu benötigen wir extends JFrame:

Nun wird uns Eclipse einen Fehler bringen, diesen können wir auf 2 Arten lösen:

1. STRG + Shift + O

2. Wir gehen mit dem Mauszeiger über das Wort JFrame und importieren so das Nötige:

1

 

Nun müssten wir folgenden Stand haben:

Eines der ersten Dinge, die wir gelernt haben, war, das Klassen Pläne oder Entwürfe von Objekten sind. Wir haben uns aber nie darüber unterhalten, wie das wirklich funktioniert.

Heute werden wir mit der GrafikDemo Klasse ein Objekt erzeugen, genauso wie wir oben ein Thread erzeugt haben. Um dies zu bewerkstelligen, müssen wir einen Konstrukteur (constructor) verwenden. Ein Konstrukteur ist einfach eine Anleitung zum Erstellen eines Objekts.

Dieser Code schaut, wenn er ausgeführt wird, nach der Main Methode. In dieser Main Methode ist ein Statement:

Wenn dieses Statement ausgeführt wird, erstellen wir ein GrafikDemo Objekt mit dem Konstrukteur aus der GrafikDemo Klasse. Der Name des Objekts ist demo. Momentan ist der Konstrukteur aber noch leer:

Also wird bei der Ausführung nichts ausgeführt. Nun werden wir dem Konstrukteur den nötigen Code hinzufügen. Dies werden wir tun, indem wir aus der Super Klasse JFrame ein Statement importieren.

Die erste Zeile erstellt einen Titel für das zu erstellende Fenster. Das zweite gibt die Größe des Fensters in Pixeln an. Die dritte Zeile stellt sicher, dass das Fenster auch angezeigt wird. Die letzte Zeile ermöglicht es, das Programm zu beenden, sollte das Fenster geschlossen werden.

Nun sollten wir folgenden Code haben:

Jetzt starten wir das Programm mit run und es öffnet sich folgendes Fenster:

2

Wichtig: Der Startpunkt (0,0) vom Koordinatensystem ist OBEN LINKS im Fenster, es ist nicht unten Links. Das bedeutet der Y Wert wird größer, je weiter runter wir auf dem Bildschirm gehen.

Um ein Bild anzeigen zu lassen, müssen wir nur einfach eine weitere Methode hinzufügen:

Hier müssen wir Graphics importieren, also bittet tut dies.

Diese Methode wird nun alles zeichnen, was wir ihr sagen, in dem Fenster welches wir erstellt haben. Wir werden nun ein paar einfache Statements lernen.

Das g bedeutet, dass diese Statements am Objekt g ausgeführt werden.

g.clearRect(int x, int y, int width, int height); – erstellt ein Rechteck mit der momentanen Farbe, am Punkt (x,y) mit der Höhe und Breite.

g.setColor(Color c);  – benennt die momentane Farbe von g als Farbe c.

g.drawString(String str, int x, int y);  – zeichnet jeden Text am Punkt (x,y).

g.drawRect(int x, int y, int width, int height); – zeichnet ein Rechteck am Punkt (x,y) mit der Höhe und Breite.

Lasst uns das mal an unserem Programm zeigen:

Wir nehmen den Code Color.White, Color.BLUE und COLOR.Black von der Color Super Klasse aus der Java Bibliothek, also müssen wir diese noch importieren. Wie das geht, wisst ihr ja?

Nun sind wir fertig mit unserem Programm und es sieht wie folgt aus:

Das Ergebnis sieht wie folgt aus:

3

Und damit haben wir unsere erste Grafik gezeichnet und beenden hiermit die Grundlagen von Java und werden weiter gehen zu Kapitel 2 Erstellen eines Spiels.

Falls ihr Fragen habt, immer raus damit, ich helfe euch sehr gerne. Hinterlasst bitte einfach einen Kommentar.

Teilt diese Seite mit euren Freunden und besucht uns mal auf Facebook und auf Google+, das würde dieser Seite wirklich weiterhelfen, danke sehr. Auch ein Klick auf die Werbung hilft dabei, diese Seite am Laufen zu halten.

Quelle: Original Anleitung auf englisch von Kilobolt Studios

Lektion 10 – Inheritance und Interface Kapitel 2 Erstellen eines Spiels