Tutorial: Spritesheets mit Texturepacker

Hallo Zusammen,

heute möchte ich euch ein Tool vorstellen, welches uns einen Teil der Programmierarbeit erleichtert: Texturepacker

Mit Texturepacker kann man sogenannte Spritesheets erstellen – das sind mehrere Sprites   in einer Grafik vereint. Und das beste ist, dass die Spritesheets von Cocos2d unterstütz werden. Für alle die keine Grafiken zur Hand haben stelle ich hier einen Satz zur Verfügung:

Grafik eines Zip Ordners

Zu allererst erstellen wir ein neue Cocos2d Projekt, wie zum Beispiel hier beschrieben. Startet nun Texturepacker – ihr müsstet, das folgende Bild sehen.

[…]

Tutorial: Cocos2d und Physik 2

Hallo Zusammen,

wir wollen heute mit unserem kleinen Physik Puzzle weitermachen – alle die Teil 1 noch nicht kennen sollten dies nachholen. Ich erkläre heute wie wir Objekt im Raum verschieben. Außerdem bauen wir eine Kollisionserkennung ein, um zu erkennen wann der Spieler gewonnen hat. Zusätzlich sollen die visuellen Effekte auch nicht zu kurz kommen – so zum Beispiel ein schöner Hintergrund. Viel zu tun, also fangen wir an.

Zunächst aber die Grafiken, die ich in der App benutze für euch zum runterladen in einem praktischen zip Ordner.

Grafik eines Zip Ordners […]

Tutorial: Cocos2d und Physik

Hallo Zusammen,

heute behandeln wir eine weitere Stärke des Cocos2d Frameworks – die eingebaute Chipmunk Physik Engine. Durch diese Engine ist es möglich Objekte und eine physikalische Umgebung zu definieren. Anschließend verhalten sich diese Objekte physikalisch korrekt. Die Möglichkeiten sind dabei vielfältig: die Umgebung kann eine Gravitation haben oder nicht; Objekte sind schwer oder leicht; verhalten sich gummiartig oder doch eher steinhart.
In dem heutigen Tutorial lernen wir eine solche physikalisch korrekte Umgebung zu erstellen. […]

Cocos2d Installation

Hallo Zusammen,

heute möchte ich euch das Framework vorstellen mit dem ich auch iBallerburg programmiert habe. Es ist ein sehr mächtiges, aber gleichzeitig leicht erlernbares Framework: Cocos2d

 Aber warum überhaupt ein Framework? Kann man nicht alles einfach so programmieren? Ja kann man, aber es dauert bestimmt unendlich länger. Ein Framework hat für bestimmte allgemeine Aufgaben bereits Lösungen parat. So bieten das Cocos2d Framework zum Beispiel eine komplette Physikengine. Zusätzlich gibt es tolle Partikeleffekte und vieles mehr. Jetzt kommt das beste: alles komplett kostenlos!!!

[…]

UILabel zum Punktezählen

Hallo Zusammen,

wir runden unsere erste Tutorial Serie ab, indem wir einen Punktezähler integrieren.
Im Header des ViewController definieren wir uns ein UILabel und eine Integer Variable, welche die Punkte zählt:

UILabel    *playerScore;
int        points;

Ein Label ist Text, den wir auf der Oberfläche anzeigen. Im viewDidLoad initialisieren wir unser Label. Durch initWithFrame geben wir ihm eine Größe vor. Wenn mehr Text dargestellt werden soll als im Frame Platz ist, dann werden diese Teile abgeschnitten – hier wird es aber passen :-)

//Punktezähler auf 0 setzten
points = 0;

//Punkte Label erzeugen
playerScore = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 80, 20)];
playerScore.center = CGPointMake(260,20);
playerScore.text = [NSString stringWithFormat:@"Points: %i", points];
[self.view addSubview:playerScore];

[…]

NSMutableArray und noch mehr Action

Hallo Zusammen,

wir haben nun schon gelernt wie man Bilder darstellt, Dinge automatisch bewegt und Kollisionen erkennt. Heute werden wir unser Spiel noch mehr verbessern. Bisher fliegt ja immer nur eine Kugel durchs Bild – da ist das Ausweichen keine große Herausforderung. Am Ende des Tutorials wird unser kleiner Soldat mehreren Kugeln ausweichen müssen.

Vielleicht stellt sich dem einen oder anderen nun die Frage, wie wir mehrere Kugeln am besten steuern. Unsere einzelne Kugel konnten wir bisher bequem über cannonBallView ansprechen. Man könnte zwar einfach viele weitere UIImageView im Header definieren und sie fortlaufend nummerieren (cannonBallView1, cannonBallView2…), aber auf die Weise kommt man schnell durcheinander und schreibt zu viel Quellcode. Eleganter geht es mit einem Array.

Arrays sind eine Datenstruktur, bei der über einen Index auf Werte zugegriffen werden kann. Ein klassisches Array könnte so aussehen:

[…]

ein wenig Action und Kollisionserkennung

Hallo Zusammen,

im Teil 1 und Teil 2 unserer Tutorialserie haben wir bereits erreicht, dass sich unser kleiner Soldat geschmeidig über den Bildschirm bewegt. Er jedoch noch gar keinen Grund dazu. Im Moment läuft er rum, weil er es kann. Geben wir ihm eine Aufgabe. Wir lassen unseren Soldaten Hindernissen ausweichen. Dazu brauchen wir natürlich auch eine Kollisionserkennung – sonst wird das Ausweichen ja sinnlos.

Wir fangen mit den Hindernissen an. Ich habe mir Kannonenkugeln überlegt, die durch den Bildschirm fliegen.

[…]

Einführung von NSTimer

Hallo Zusammen,

in unserem vorhergehenden Tutorial  haben wir einen kleinen Soldaten auf dem iPhone zum bewegen gebracht. Allerdings kann dieser sich von einem Ort zum anderen teleportieren – wir wollen jedoch das er über den Bildschirm wandert. Die werden wir durch einen NSTimer erreichen. NSTimer ist eine von Apple vorgefertigte Klasse zum erzeugen von Timern (also Zeitschaltuhren auf deutsch??). Grob eingeteilt gibt es Timer die eine Methode nach einer definierten Zeit immer wieder aufrufen und Timer die dies nur einmal tun. Für unseren Zweck erstellen wir direkt am Ende unserer viewDidLoad Methode aus dem vorhergehenden Tutorial einen sich wiederholenden Timer.

[NSTimer scheduledTimerWithTimeInterval:0.05 target:self selector:@selector(updateGame) userInfo:nil repeats:YES];

[…]

das erste Tutorial

Hallo Zusammen,

es wird nun Zeit mit dem echten Programmieren anzufangen. Im heutigen Tutorial geht es darum überhaupt mal etwas auf dem iPhone (Simulator) zu sehen – wir werden ein beliebiges Bild darstellen und bewegen .
Fangen wir an indem XCode gestartet wird. Falls es noch nie gestartet wurde, müsst ihr einen Pfad angeben, in welchem XCode seine Projekte speichern darf. Wir wählen nun „Create a new XCode Project“. Ihr könnt einen beliebigen Namen vergeben z.B. „iosCampusTutorial1“ :)

Anschließend stellt sich XCode wie folgt da.

[…]