Sie sind hier
E-Book

Spiele entwickeln für iPhone und iPad

Programmierung, Grafik, Sound und Special Effects

AutorPatrick Völcker
Verlagdpunkt
Erscheinungsjahr2012
Seitenanzahl676 Seiten
ISBN9783864911767
FormatPDF/ePUB
KopierschutzWasserzeichen/DRM
GerätePC/MAC/eReader/Tablet
Preis39,90 EUR
Die erfolgreichsten Apps für iPhone und iPad sind einfache Spiele, die kurzweilige Unterhaltung bei schneller Erlernbarkeit bieten - sogenannte Casual Games.Patrick Völcker legt den Schwerpunkt seines praxisnahen Einstiegs in die iOS-Spieleprogrammierung daher auf diese Art von Spielen. In Workshops programmieren die Leser anhand von Klassikern wie 'Doodle Jump' oder 'R-Type' über 12 Spiele aus verschiedenen Casual-Games-Genres von Grund auf. Außerdem erlernen Sie das Handwerkszeug für die oft vernachlässigte Grafik- und Sound-Entwicklung und erhalten inspirierende Denkanstöße für eigene Projekte.

Patrick Völcker arbeitete fünf Jahre als Mobile-Experte und Webdeveloper bei der renommierten Webagentur Jung von Matt / Neckar, bevor er 2011 als Rich Media Innovation Tech zu Google wechselte. Freiberuflich ist er als Programmierer für mobile Endgeräte und als Gastdozent der Internationalen Filmschule Köln und der Popakademie Baden-Württemberg im Bereich 'Mobile Games' tätig. Seit 2008 bloggt er auf mobile-zeitgeist.de über den Schwerpunkt 'Mobile Games'.

Kaufen Sie hier:

Horizontale Tabs

Blick ins Buch
Inhaltsverzeichnis
Vorwort5
Inhaltsübersicht9
Inhaltsverzeichnis11
1 Der macht nichts, der will nur spielen …19
2 Loading … Von der Idee bis zum Game-Design-Dokument23
2.1 Inspiration – Woher nehmen?23
2.1.1 Inspiration von der Technik23
2.1.2 Inspiration vom Spielen26
2.1.2.1 Kreative Kombination alter Spielkonzepte27
Abb. 2–1 Ein Tetris-Stein als Jump’n’Run-Held? Nicht wirklich innovativ!27
2.1.2.2 Umwerfen alter Spielkonzepte29
Abb. 2–2 Das Tetris-Prinzip als »echtes« Puzzlespiel wäre neuartig.29
2.1.2.3 Erweiterung bekannter Spielkonzepte31
2.1.3 Inspiration im Alltag32
Abb. 2–3 Schiedsrichterspiel: Entdecken Sie alle Fouls so schnell wie möglich.33
2.2 Casual Games: Wovon reden wir hier eigentlich?34
2.2.1 Charakteristik34
Schneller Ein- und Ausstieg:34
Leichtes Spielprinzip:34
Leicht erlernbare oder intuitive Steuerung:35
Schnelle Erfolgserlebnisse:35
2.2.2 Zielgruppen35
2.3 Garantierte Flops – Apples No-Gos37
2.4 Game-Design-Dokument – Grau ist alle Theorie40
Abb. 2–4 Das Game-Design-Dokument steht ganz am Anfang.40
2.4.1 Aufbau41
2.4.1.1 Core Statement42
Abb. 2–5 Tic Tac Toe43
2.4.1.2 Exposé44
Abb. 2–6 Das Exposé in seiner frühen Konzeptphase45
2.4.1.3 Grobkonzept46
2.4.1.4 Feinkonzept47
Abb. 2–7 Feinkonzeptbeschreibung eines Items49
2.5 Zielgeräte – iPhone, iPod oder iPad?50
2.5.1 Display51
Abb. 2–8 Dasselbe Bild auf iPhone und iPad (skaliert)51
Abb. 2–9 Gleiche Grafikgrößen, allerdings zeigt das iPad ein wenig mehr.52
Abb. 2–10 Dasselbe Spiel für iPhone und iPad im Vergleich53
Abb. 2–11 Die drei Größen im Vergleich53
2.5.2 Größe53
Abb. 2–12 Eines der besten iPad-Spiele überhaupt: »Carcassonne« von den »Coding Monkeys« aus Deutschland54
2.5.3 Zeit54
2.5.4 Anspruch55
2.5.5 Sozialer Aspekt55
2.5.6 Die eierlegende Wollmilchsau56
3 Level I: Klassische Casual Games59
3.1 »Pong«59
Abb. 3–1 So unspektakulär soll das Spiel in wenigen Seiten aussehen!60
3.1.1 Das erste komplette Spiel60
3.1.1.1 Vorbereitungen61
Abb. 3–2 Einrichtung des Projektes61
Abb. 3–3 Vergeben eines Produktnamens61
Abb. 3–4 Wenn die Unterfenster am rechten Rand nicht sichtbar sind, können diese über »View« > »Utilities« sichtbar geschaltet werden.63
Abb. 3–5 Die Verbindung der View zum Code wird über den »Connections Inspector« hergestellt.64
Abb. 3–6 Unsere »grafischen« Vorbereitungen für »Pong« sind fertig.65
3.1.1.2 Programmierung der Game Engine68
Abb. 3–7 Unser erstes Spiel: Pong75
3.1.1.3 Titelbild76
Abb. 3–8 Unser Titelbild: nicht schön, aber für unsere erste Gamedemo reicht’s77
3.1.1.4 Debugging und Codeoptimierung78
Abb. 3–9 Diese theoretischen Kollisionsabfragen müssen abgefangen werden.79
3.1.2 Pong-Variationen81
3.1.2.1 Pong einhändig82
Abb. 3–10 Das CoreMotion-Framework wird hinzugefügt.83
3.1.2.2 Zweidäumig85
3.1.2.3 Ball mit Drall87
Abb. 3–11 Manipulation der Geschwindigkeit sorgt für Winkelveränderungen.88
3.1.3 Pong für zwei – Mensch gegen Maschine89
Abb. 3–12 So sieht die Zweispielervariante aus, egal ob mit KI oder menschlichem Gegenspieler.90
3.1.4 Pong für zwei – Mensch gegen Mensch93
Abb. 3–13 Zuständigkeitsbereiche für die Touch-Steuerung94
Abb. 3–14 Zahlreiche Variationen unseres Spiel durch Skinning (Verwendung von Grafiken)97
3.2 »Breakout«98
Abb. 3–15 So sollte es am Ende des Workshops aussehen: »Breakout«.99
3.2.1 Programmierte UI100
Abb. 3–16 Hinzufügen von Frameworks100
Listing 3–1 ViewController.h101
Listing 3–2 ViewController.m105
3.2.1.1 CADisplayLink – der bessere Timer105
3.2.1.2 Licht an, Status aus106
Abb. 3–17 Berechnung der Koordinatenwerte der Bounding-Box107
3.2.2 Verfeinerung der Kollisionsabfrage107
Abb. 3–18 Was das Auge sofort sieht, muss die Game Engine erst berechnen: Hier findet trotz Überschneidung der Bounding-Boxen keine Kollision statt.108
Abb. 3–19 Haarscharf daneben! Jetzt weiß es auch die Game Engine: Hier findet keine Kollision statt.109
Abb. 3–20 Unterschiedliche Berechnungen für unterschiedliche Bereiche110
3.2.2.1 Kollisionsabfrage zwischen zwei Bällen112
Abb. 3–21 Kollisionsabfrage bei Flipper und Billard112
Abb. 3–22 Kollisionserkennung zweier Kreise113
3.2.3 Die Mauer muss weg!114
Abb. 3–23 Zweidimensionales Raster durch geschicktes Umrechnen eines eindimensionalen Arrays117
3.2.4 Level 1 – 36119
Abb. 3–24 In das 7 ´ 6-Raster zeichnen wir unser Leveldesign, hier: ein Smiley120
Abb. 3–25 Vom Karopapier zum Array120
Abb. 3–26 Der fertige Smiley im Spiel121
Listing 3–3 leveldesign.h121
Listing 3–4 leveldesign.m122
Abb. 3–27 Diese Steine sollten für etwas Abwechslung im Leveldesign sorgen.125
Abb. 3–28 Das fertige Herz im Spiel126
Abb. 3–29 Bei 42 Pixeln Schrittweite wird die Kollision mit dem bisherigen Algorithmus nicht erkannt.128
Abb. 3–30 Durch die Einführung der Zwischenschritte erkennen wir Kollisionen, die mit dem bisherigen Code nicht erkannt worden wären.131
3.2.5 Erweiterungsmöglichkeiten132
3.2.5.1 Vogelfreie Mauersteine133
Abb. 3–31 Vertikale, horizontale und achtförmige Bewegung136
Abb. 3–32 Die drei Schichten: Hintergrund, Spiel, Vordergrund137
3.2.5.2 »BallOut« – der Rundum-Schläger137
Abb. 3–33 1.) Ursprungssituation 2.) Tangente an großem Ball als Kollisionsebene 3.) Situation wird auf Horizontale gedreht 4.) Nun kann Einfallswinkel = Ausfallswinkel leicht berechnet werden 5.) Bild wird zurückgedreht 6.) Finale Position der B...138
Abb. 3–34 Die fertige Version: »BallOut«139
Listing 3–5 (BallOut) ViewController.h140
Abb. 3–35 Die in »BallOut« verwendeten Grafiken in der Übersicht141
Listing 3–6 (BallOut) ViewController.m145
3.2.5.3 Erweiterung des Leveldesigns146
Abb. 3–36 Auch wenn man es auf den ersten Blick nicht erkennt: Die komplette Seitenwand wurde aus Kreisen erstellt und anschließend wurde der gestaltete Rahmen darübergelegt.147
3.2.5.4 Der Ball147
3.3 »Lunar Lander«149
Abb. 3–37 Das Original gilt als die erste spielbare Weltraumsimulation: »Lunar Lander«.149
Abb. 3–38 Für »Lunar Lander« benötigen wir diese 14 Grafiken.151
Listing 3–7 (Lunar Lander) ViewController.h153
Listing 3–8 (Lunar Lander) ViewController.m158
3.3.1 Animation159
Abb. 3–39 Die Animationsschritte der Mondstation159
Abb. 3–40 Die Animationsschritte des Düsenantriebs159
Abb. 3–41 Die Explosionsanimation des Raumgleiters159
Listing 3–9 leveldesign.h161
Listing 3–10 leveldesign.m162
3.3.2 Head-up-Display163
Abb. 3–42 Die Hintergrundgrafik hud.png, die den Hauptteil des HUDs bildet164
Abb. 3–43 Das komplette Head-up-Display mit Balken und Levelanzeige vermittelt dem Spieler übersichtlich die wichtigsten Daten.164
Abb. 3–44 Mögliche Darstellungsoptionen für die Anzahl der noch verbliebenen Schüsse in einem Shooter: a) über die Anzahl der Icons b) Kombination Icon und Ziffer c) Kombination Icon und Balken bzw. Einheiten166
3.3.3 Aufbau und Gameplay166
3.4 »Marble Maze« aka »Labyrinth«168
Abb. 3–45 iPhone-Klassiker: Marble Maze168
Abb. 3–46 Hintergrund für die Canvas (verkleinert, 320 ´ 480), die Kugel (20 ´ 20), der halbtransparente Kugelschatten, ein Loch (30 ´ 30), das Zielloch (30 ´ 30), Block (verkleinert, 100 ´ 100)169
Listing 3–11 (Marble Maze) ViewController.h170
Listing 3–12 (Marble Maze) ViewController.m174
Listing 3–13 leveldesign.h174
Listing 3–14 leveldesign.m175
Abb. 3–47 Ablesen der Werte für die eigene Levelkreation175
3.5 »Fire!« aka »Bouncing Babies«176
Abb. 3–48 Gerade mal gut 150 Seiten und schon unser fünftes Spiel: Fire!176
Abb. 3–49 canvas.png (verkleinert, 480 ´ 320), baby.png (39 ´ 39), firemen0.png (182 ´ 90), firemen1.png (182 ´ 90)178
Listing 3–15 (Fire!) ViewController.h178
Listing 3–16 (Fire!) ViewController.m182
Abb. 3–50 Identische Programmierung, andere Grafiken: politisch korrekt!183
3.5.1 Querformat184
Abb. 3–51 Wenn das Bildformat bereits voreingestellt ist, dreht sich der Screen schon vor Programmstart in die gewünschte Richtung.185
3.5.2 Die Klasse »Sprite«185
Listing 3–17 Sprite.h185
Listing 3–18 Sprite.m187
4 Level II: Moderne Casual Games189
4.1 Scrolling189
Abb. 4–1 Macht ohne Scrolling so keinen Spaß.189
4.1.1 Page-Scrolling190
Abb. 4–2 Die Spielfigur bewegt sich, der Hintergrund ist statisch.190
Abb. 4–3 Unterschied zwischen Spieler.center.x (oberer Pfeil) und spielerPosImLevelX (unterer Pfeil)192
Abb. 4–4 Oben und links wechselt ohne Korrektur bereits die Levelansicht, obwohl sich das Sprite noch im sichtbaren Bereich befindet, unten und rechts hingegen wird korrekt umgeblendet.192
4.1.2 Einfaches Scrolling193
Abb. 4–5 Die Spielfigur ist auf festen Displaykoordinaten fixiert, der Hintergrund scrollt vorbei.193
4.1.3 Parallax-Scrolling193
4.2 »Noodle Jump« aka »Doodle Jump«195
Abb. 4–6 Unser Doodle-Jump-Klon mit Makkaroni195
Abb. 4–7 canvas.png (320 ´ 480), noodle.png, noodle_rocket und 8 Plattformen: 3 ´ normal, 3 ´ speziell, 2 ´ Monster (platform6.png und platform7.png)196
Listing 4–1 (NoodleJump) ViewController.h197
Listing 4–2 (NoodleJump) ViewController.m204
Listing 4–3 Sprite.h206
Listing 4–4 Sprite.m207
4.2.1 Jetzt wird alles relativ207
Abb. 4–8 Bislang haben wir das Sprite relativ zum Koordinatenursprung bewegt, der Hintergrund war fix.208
Abb. 4–9 Nun bleibt das Sprite an einer fixen Position und dient als Ursprungspunkt, zu dessen Koordinaten sich der Hintergrund relativ bewegt.209
Abb. 4–10 Das Player-Sprite bewegt sich in horizontaler Richtung, der Hintergrund ausschließlich vertikal.209
4.2.2 Performance-Optimierungen210
4.2.2.1 Endlosphilosophie210
Abb. 4–11 Die unterste Plattform erhält eine neue, zufällige Form und wird oberhalb des Viewports neu gesetzt.211
4.2.2.2 Auf Konstanten können Sie zählen212
4.2.2.3 Preloader214
4.2.2.4 Erweiterungsmöglichkeiten214
4.3 »iType« aka »R-Type«215
Abb. 4–12 So sieht am Ende unseres Workshops der erste Level von iType aus.215
Abb. 4–13 Der Raumgleiter (nicht abgebildet: die animierten Phasen, in denen die Signallichter flackern und der Düsenantrieb flimmert), 5 Tiles, aus denen wir die Umgebung bauen (je 80 ´ 160 Pixel)216
4.3.1 Scrolling216
Abb. 4–14 Tiles, die links aus dem Viewport »rutschen«, bekommen ein neues Design und werden mit neuer y-Koordinate rechts neben den Displayrand gesetzt, von wo aus sie wieder in den Viewport scrollen.217
Abb. 4–15 Felsen, Palmen, futuristisches Design, Mauerwerk218
Abb. 4–16 Die Tiles können optisch nahtlos aneinandergesetzt werden, wenn sie vertikal mit einem Vielfachen von 20 Pixeln positioniert werden.218
Abb. 4–17 Aus mehreren Pattern à 10 Tiles gestalten wir einen längeren Levelabschnitt.219
Abb. 4–18 Zusammenfassung mehrerer Levelabschnitte als Pattern zu einem Gesamtlevel220
Listing 4–5 leveldesign.h221
Listing 4–6 leveldesign.m223
Listing 4–7 (iType) ViewController.h225
Listing 4–8 (iType) ViewController.m226
Listing 4–9 Sprite.h231
Listing 4–10 Sprite.m232
4.3.2 Virtual Joypad233
Abb. 4–19 Im Vergleich zum Hochkantformat ist die Touch-Steuerung beim Querformat nicht immer ideal.234
Abb. 4–20 Analog: Je weiter sich der Finger vom Steuerkreuzmittelpunkt entfernt, desto schneller bewegt sich das Sprite in dieselbe Richtung.236
Abb. 4–21 Die halbtransparente Joypadgrafik wird links unten auf dem Display platziert.236
Listing 4–11 (iType) ViewController.h237
Listing 4–12 (iType) ViewController.m238
4.3.3 Virtual Touchpad239
Abb. 4–22 Die Position des Berührpunkts auf dem virtuellen Touchpad wird um den Faktor 4 auf die Position des Raumgleiters im Viewport hochskaliert.240
Listing 4–13 (iType) ViewController.h241
Listing 4–14 (iType) ViewController.m242
4.3.4 Optimierung der Kollisionsabfrage: Maskierung243
Abb. 4–23 Wieder einmal ein Kollisionsproblem: die Bounding-Boxen243
Abb. 4–24 Weitere Frames als Masken: Maske 1 (33 ´ 13 Pixel), Maske 2 (19 ´ 3 Pixel)244
4.3.5 Verlieren mit Bumms!247
Abb. 4–25 Die Animation der Explosion in der Einzelbilderfolge248
4.3.6 Aliens und Game-Balance249
Abb. 4–26 Die vier Alienarten: alien, eyeball, staticRobot, snake250
Listing 4–15 leveldesign.h250
Abb. 4–27 Das vierte Alien in die einzelnen Tiles gesplittet: »snake« bildet den Kopf, die 10 »snakeFollow« die Körpersegmente251
Listing 4–16 leveldesign.m252
Abb. 4–28 wobble: Das Alien bewegt sich auf einer Sinuskurve.259
Abb. 4–29 jumper: Das Alien springt 100 Pixel hoch.259
Abb. 4–30 jumper2: Das Alien springt 200 Pixel hoch.259
Abb. 4–31 guerilla: Das Alien fährt versteckt ins Bild hinein, springt hervor, schießt und duckt sich wieder.259
Abb. 4–32 twist: Das Alien rotiert um einen Punkt mit dem Radius 50 Pixel.260
Abb. 4–33 twistFollow: Das Alien rotiert um einen Punkt mit dem Radius 50 Pixel und um eine Winkelgröße versetzt (für Schlangenanimation).260
Abb. 4–34 bigtwist: Das Alien rotiert um einen Punkt mit dem Radius 100 Pixel.260
Abb. 4–35 bigtwistFollow: Das Alien rotiert um einen Punkt mit dem Radius 100 Pixel und um eine Winkelgröße versetzt (für Schlangenanimation).260
Abb. 4–36 attack: Das Alien visiert direkt den Raumgleiter an, agiert dabei aber sehr langsam.260
4.3.7 Schüsse, Sterne, Funken, Rauch und Explosionen: Partikel261
Listing 4–17 Particle.h262
Abb. 4–37 Die wichtigsten Eigenschaften eines Partikels im Überblick262
Listing 4–18 Particle.m265
Listing 4–19 Ergänzungen im ViewController.h265
4.3.7.1 Die Aliens schießen zurück269
Abb. 4–38 Ein wahres Inferno erwartet den Spieler.276
4.3.7.2 Kosmetik: Sterne und Explosionen277
4.3.8 Bonuslevel: Faszination Partikel280
Listing 4–20 (Elements) ViewController.h281
Listing 4–21 (Elements) ViewController.m282
Abb. 4–39 Wasserfontäne283
4.3.8.1 Funkenflug288
Abb. 4–40 Funkenflug289
4.3.8.2 Brandherd289
Abb. 4–41 Brandherd290
4.3.8.3 Rauchschwaden290
Abb. 4–42 Rauchschwaden290
4.3.8.4 Nebelschwaden291
Abb. 4–43 Nebelschwaden291
4.3.8.5 Niagarafälle291
Abb. 4–44 Niagarafälle292
4.3.8.6 Wunderkerze oder Lunte292
Abb. 4–45 Wunderkerze293
4.3.8.7 Feuerwerk293
Abb. 4–46 Feuerwerk294
4.3.9 Endgegner und andere Erweiterungen295
Abb. 4–47 Getroffenes Alien: kurzes Aufleuchten295
Abb. 4–48 2 Aliens = 1 Alien + Schutzschild296
Abb. 4–49 Ein Auto im Weltall?297
4.4 »Neptune Patrol« aka »Moon Patrol«298
Abb. 4–50 Ungewöhnliches Fahrverhalten304
Abb. 4–51 App Store-Klassiker seit 2009: Canabalt307
4.5 »The Little Jungle Sisters« aka »The Great Giana Sisters«307
Listing 4–22 Methode loadLevel310
Listing 4–23 level1.lvl310
Abb. 4–52 Die verwendeten Plattformen in »The Little Jungle Sisters«311
Abb. 4–53 11 Zeichen ermöglichen die einfache Gestaltung eines simplen, aber kompletten Levels.311
4.5.1 Dynamisches Scrollen312
4.5.2 Kompletter Code313
Listing 4–24 constants.h313
Listing 4–25 (The Little Jungle Sisters) ViewController.h314
Listing 4–26 (The Little Jungle Sisters) ViewController.m322
Abb. 4–54 Level 2 in der Komplettansicht323
Listing 4–27 level2.lvl323
Abb. 4–55 Level 3 in der Komplettansicht324
Listing 4–28 level3.lvl324
4.5.3 Ebenensortierung325
Abb. 4–56 1) So soll es aussehen. 2) Bei Bewegung nach rechts wird Plattform 2 verdeckt. 3) Bei Bewegung nach links ist alles korrekt.325
4.5.4 Detaillierte Animationen327
Abb. 4–57 Pro Animationsschritt wird der Ballen des Standfußes jeweils um 2 Pixel nach hinten verschoben.327
4.5.5 Parallax-Scrolling – ein Hauch von 3D330
Abb. 4–58 bg.png (480 ´ 320), layer0.png (1440 ´ 320) und layer1.png (1440 ´ 320)331
Abb. 4–59 Die vier Schichten: Canvas (inkl. Spiel), Hintergrund1 (Wald, beweglich), Hintergrund2 (Wald, beweglich) und der eigentliche Hintergrund (Farbverlauf, fix)332
Abb. 4–60 Die vier Schichten im Viewport: Die Baumstämme im Vordergrund können sich optisch vom Hintergrund noch nicht so richtig absetzen.332
Abb. 4–61 Märchenhafter Schleier: fog.png (zur besseren Sichtbarkeit auf schwarzem Hintergrund)333
Abb. 4–62 So soll unser Spiel anschließend aussehen, die Hintergrundebenen scrollen dabei in unterschiedlichen Geschwindigkeiten mit.334
Listing 4–29 ViewController.h334
Listing 4–30 ViewController.m336
Abb. 4–63 Das linke und das rechte Drittel sehen identisch aus.337
4.5.6 Einäugige Sumpfmonster337
Abb. 4–64 Sumpfmonster (Bufo zyklopensis, engl. Bogeye = »Sumpfauge«) das fieseste Geschöpf im Dschungel338
Listing 4–31 level1.lvl (mit Monstern)338
Abb. 4–65 Das animierte Sumpfauge339
5 Level III: Casual Games für Profis343
Abb. 5–1 Ein typisches Tile-based Game344
5.1 Tilemaps345
Abb. 5–2 Hier sind die Tiles deutlich sichtbar markiert.345
5.1.1 UIView vs. CALayer346
Abb. 5–3 Nur die untere Hälfte liegt im Viewport.348
Abb. 5–4 Die ersten Tiles sind nicht mehr sichtbar.348
Abb. 5–5 Die unterste Reihe (außerhalb des Viewports) und die oberste sichtbare Reihe sind identisch.349
Abb. 5–6 Zwei gleiche Hälften349
Abb. 5–7 Im Viewport hat sich nichts geändert.350
Abb. 5–8 Die obere Hälfte wird neu bestückt.350
Listing 5–1 ViewController.h351
Listing 5–2 ViewController.m355
Listing 5–3 tilemap1.lvl356
5.1.2 Tiled – ein kostenloser Tilemap-Editor357
Abb. 5–9 Tilemaps mit dem Tool »Tiled« einfach erstellen357
Listing 5–4 loadLevel-Methode359
Abb. 5–10 Eine Tilemap im Rohzustand360
5.2 »1783 – Montgolfière« aka »1942«361
Abb. 5–11 So soll das fertige Spiel aussehen.361
Listing 5–5 constants.h362
Abb. 5–12 Die neue Tilemap »versailles.png«, mit der wir einen kompletten Schlossgarten entwerfen können363
5.2.1 Pseudo 3D363
Abb. 5–13 Der Ballon in Scheiben und zusammengesetzt364
Abb. 5–14 Durch unterschiedlichen Versatz der »Scheiben« entsteht ein dreidimensionaler Eindruck.364
5.2.2 Tile-Engine für Animation367
Abb. 5–15 Keine sechs Einzelbilder, sondern ein Filmstreifen.368
Listing 5–6 ViewController.h370
Listing 5–7 ViewController.m377
5.3 »Nuke Control« – Programmieren mit Cocos2D377
Abb. 5–16 So soll der Einstiegslevel von »Nuke Control« später aussehen.378
Abb. 5–17 Von oben betrachtet ist alles flach.379
5.3.1 Installation von Cocos2D380
Abb. 5–18 »Terminal« über Spotlight starten381
Abb. 5–19 Den Cocos2D-Ordner einfach in das Terminalfenster ziehen381
Abb. 5–20 Cocos2D wurde erfolgreich installiert.382
Abb. 5–21 Ein neues Cocos2D-Projekt anlegen383
5.3.2 Einführung in Cocos2D383
Abb. 5–22 Ein Buch, bei dem man nach 366 Seiten sein erstes »Hello World!« programmiert hat, würde ich sofort reklamieren.384
Listing 5–8 HelloWorldLayer.m385
Abb. 5–23 Die Position eines Sprites wird in Cocos2D über dessen Ankerpunkt bestimmt.387
5.3.3 Draw-Steuerung388
Abb. 5–24 Der gezeichnete Pfad, dem das Sprite im nächsten Schritt folgen wird, ist bereits sichtbar.391
Abb. 5–25 Leider folgt das Elektron-Sprite nicht dem direkten Pfad.392
Listing 5–9 HelloWorldLayer.h394
Listing 5–10 HelloWorldLayer.m398
5.3.4 Spielkonzept und Grafiken399
Abb. 5–26 atom1.png, atom2.png und elektron.png, mehr brauchen wir nicht399
Abb. 5–27 Drei Schichten von rotierenden Grafiken ergeben das vitale Farbspiel.400
5.3.5 Herstellung der Grafiken402
Abb. 5–28 Die neu erstellte Grafik mit 400 ´ 400 Pixeln402
Abb. 5–29 Die Einstellungen in dem Tool »Verlaufsaufhellung« für die Erzeugung der Atomhülle403
Abb. 5–30 Wir missbrauchen den Schlagschatten als roten Schein um das Elektron.404
Listing 5–11 HelloWorldLayer.h405
Listing 5–12 HelloWorldLayer.m415
5.3.6 Draw-Steuerung (Choreografie, Muster)416
Tab. 5–1 Gesten in Kampfhandlungen übersetzen417
Abb. 5–31 Die Geste wird direkt in die Kampfhandlung übertragen.417
Abb. 5–32 C64-Klassiker: »Winter Games«418
Tab. 5–2 Gesten in Tanzfiguren übersetzen418
Abb. 5–33 In »daWindci« wird ein Heißluftballon indirekt z. B. durch einen Tornado gesteuert, den der Spieler mit einer Kreisgeste hervorrufen kann.419
Abb. 5–34 Eingrenzung des Pfads420
Abb. 5–35 Rasterung420
Abb. 5–36 Filterung der Störfelder, die zur Erkennung nicht notwendig sind421
Tab. 5–3 Gängige Gesten und deren Erkennungscodes422
Listing 5–13 HelloWorldLayer.h422
Listing 5–14 HelloWorldLayer.m426
6 Level IV: Casual Games 3D427
Abb. 6–1 Anhand der Bounding-Boxen auf Kollisionen zu schließen – da möchte man kein Programmierer sein.428
6.1 OpenGL ES429
6.2 »Jellybears« aka »Collapse!«431
Abb. 6–2 Unser Gummibärchenspiel: Jellybears431
6.2.1 Grafische Umsetzung433
Abb. 6–3 Diese Texturen werden wir verwenden: Gummibären in allen Farben und eine halbtransparente Tüte.433
Abb. 6–4 In diesem Fall konvertiert das weiße Gummibärchen in ein grünes, womit der Sechserblock komplett verschwindet.434
Abb. 6–5 Beim Speichern der Textur das Häkchen bei »Interlaced« nicht vergessen435
6.2.2 Technische Umsetzung435
Abb. 6–6 Auswahl des richtigen Templates436
Abb. 6–7 Eine kleine Änderung im Storyboard Editor436
Abb. 6–8 Ein Sprite im 3D-Raum438
Abb. 6–9 Zwei Dreiecke: ein Sprite438
6.2.3 Spiellogik440
Listing 6–1 (Jellybears) ViewController.h443
Listing 6–2 (Jellybears) ViewController.m455
6.2.4 Rekursiver Steinbruch456
6.3 »Gems 3D« aka »Collapse!«457
Abb. 6–10 Dasselbe Spiel, anderes Outfit und nun komplett in 3D.457
Abb. 6–11 Unsere neuen Texturen gembg.png und gem0.png bis gem4.png459
Abb. 6–12 Das sieht nun schon vielversprechend aus: unser Spiel in echtem 3D!461
Abb. 6–13 Entscheidend ist die Umlaufbahn: Gegen den Uhrzeigersinn bedeutet »vorne« und damit »sichtbar«.462
Abb. 6–14 Die Hälfte der Textur wird einfach nicht angezeigt.463
6.3.1 Meshes aus .OBJ laden464
Listing 6–3 cube.obj464
Abb. 6–15 Ringe statt Würfel … und zwar durch und durch467
6.4 Blender468
Abb. 6–16 Der kostenlose 3D-Editor »Blender 2.61«468
Abb. 6–17 Erst einmal die Bühne säubern469
6.4.1 Ikosaeder469
Abb. 6–18 Der erste Gem ist schon fast fertig.469
Abb. 6–19 Positionieren, »Subdividieren« und Exportieren470
6.4.2 Edelstein470
Abb. 6–20 Über den »Schraubenschlüssel«-Reiter erreichen Sie das »Modifier«-Panel.471
6.4.3 Metaballs471
Abb. 6–21 Über »Alt« + »C« konvertieren Sie die Metaballs zu einem Gitternetz.472
Abb. 6–22 So wechseln Sie in die »Von oben«-Sicht und unterteilen alle Vierecke in Dreiecke.472
Abb. 6–23 Das Menü rechts erscheint, wenn Sie das kleine Pluszeichen in der rechten oberen Ecke der 3D-Ansicht anklicken. Nun können Sie das Objekt skalieren.473
Abb. 6–24 Vielleicht nicht gerade die passenden Texturen, aber dafür in 3D!474
7 Der Endgegner: Die letzten 10 %477
7.1 Die Menüstruktur478
Abb. 7–1 Diese vier Screens sollten Sie im Mindestrepertoire haben: Default.png, Startscreen, das Spiel und einen Endscreen479
7.1.1 Methode 1: »Eine für alles«479
7.1.2 Methode 2: »Storyboard«480
Abb. 7–2 Um das Spiel zu komplettieren, erstellen wir ein neues Projekt »completeGame«.481
Abb. 7–3 Der Storyboard Editor hilft uns bei der Erstellung der Menüstruktur.482
Abb. 7–4 Fügen Sie rechts von unserer UIView einen UIViewController hinzu.482
Abb. 7–5 Das Spiel wird hinzugefügt.483
Abb. 7–6 Das Titelbild wird einfach über ein UIImageView hinzugefügt.484
Abb. 7–7 Über einen unsichtbaren Button fügen wir dem Titelscreen eine einfache Menüstruktur hinzu.484
Abb. 7–8 Der Button wird mit der Gamescreen verbunden.485
7.1.2.1 Programmiertechnischer Wechsel485
Abb. 7–9 Hier wird die selbst geschriebene Klasse zugeordnet486
8 Hidden Levels487
8.1 Face Detection487
Listing 8–1 (Face Detection) ViewController.h488
Listing 8–2 (Face Detection) ViewController.m489
Abb. 8–1 Das Gesicht in face.jpg wurde erkannt und die Augen wurden markiert.490
8.2 Face Tracking490
Listing 8–3 (Face-Tracking) ViewController.h491
Listing 8–4 (Face-Tracking) ViewController.m (Auszug)492
Abb. 8–2 An Position des Betrachters angepasste Darstellung: 3D-Simulation494
8.3 Einstellungen494
Listing 8–5 Einstellungen speichern494
Listing 8–6 Einstellungen einlesen495
8.4 Highscore495
Listing 8–7 Highscore-Verwaltung496
Listing 8–8 Highscore.h496
Listing 8–9 Highscore.m498
8.5 GameKit499
Listing 8–10 Game-Center-Initialisierung, Teil I500
Listing 8–11 Game -Center-Initialisierung, Teil II500
Listing 8–12 Highscore an Game Center übergeben501
Listing 8–13 Highscore anzeigen501
8.6 Facebook501
Abb. 8–3 Hier werden die Daten aus dem Provisioning Portal eingefügt.502
8.7 Videosequenz504
Abb. 8–4 Miro Video Converter505
Listing 8–14 Video abspielen505
8.8 Location506
Listing 8–15 (Location) ViewController.h506
Listing 8–16 Ausschnitt aus der getGPSViewController.m507
8.9 Kompass507
9 Bonuslevel: Artwork und Grafik509
9.1 Gimp509
9.1.1 Installation510
9.1.2 Einführung für komplette Neulinge510
Abb. 9–1 Die Gimp-Fenster von links nach rechts: Werkzeugkasten, Ebenenfenster, Zeigerinformationen und das Arbeitsfenster511
Abb. 9–2 Pixelgenaues Arbeiten mit dem Stift512
Abb. 9–3 Besser fürs Malen geeignet: der Pinsel513
Abb. 9–4 Farbverläufe werden später noch wichtig sein.514
9.1.3 Zeichnen mit Niveau: Ebenen in Gimp515
Abb. 9–5 Jedes Körperteil hat seine eigene Ebene.516
9.2 Farbtheorie516
9.2.1 Die wichtigsten Farben517
9.2.1.1 Himmel517
Abb. 9–6 Schafft Atmosphäre: kreisförmiger Farbverlauf von hell nach dunkel517
Abb. 9–7 Mit drei Klicks erzeugen wir eine schöne Sonne.518
Abb. 9–8 Mit Ebenen jonglieren: 1) neue Ebene erzeugen, 2) aktuelle Ebene duplizieren, 3) aktuelle Ebene löschen519
Abb. 9–9 Ein wunderschöner Hintergrund, z. B. für das Titelbild eines asiatischen Beat’em Up (enthält Bildmaterial von Tomo Yun, www.yunphoto.net/de/)519
Abb. 9–10 Nächtliches Szenario520
Abb. 9–11 Ideal für Spaceshooter: Fotos der NASA521
9.2.1.2 Haut521
Abb. 9–12 Die Von-Luschan-Skala ist eine hervorragende Quelle für synthetische Hautfarben und kann in Farbe auf www.iosgames.de heruntergeladen werden.522
Abb. 9–13 Hier den Hexcode eintragen und Gimp wandelt den Code in die dazugehörige Farbe um.523
9.2.1.3 Metalle523
Abb. 9–14 Metall, Chrom und Gold/Silber524
9.2.2 Ambiente524
9.2.3 Farbnutzung525
9.2.4 Licht und Schatten526
Abb. 9–15 Gehen und Wiederkommen wird in verschiedenen Ländern anders interpretiert.527
Abb. 9–16 Dreidimensionale Wahrnehmung durch den richtigen Einsatz von Licht und Schatten527
Abb. 9–17 Richtiges Setzen von hellen und dunklen Flächen528
Abb. 9–18 Lineare Farbverläufe sorgen für die räumliche Darstellung von Röhren, ein kreisförmiger Farbverlauf für dreidimensionale Kugeln.528
Abb. 9–19 Funktioniert nur bei der liegenden Röhre: Umkehr durch horizontale Spiegelung528
Abb. 9–20 Nun stimmt die Darstellung wieder.529
9.3 Sprites529
9.3.1 Helden529
9.3.1.1 Typ »Doodle«530
Abb. 9–21 Kurzer Selbsttest: Welches der folgenden Doodles würden Sie als reiner Spieler am ehesten als hingekritzelte Spielfigur akzeptieren?530
Abb. 9–22 Hier sehen wir eine kleine Auswahl naiv gezeichneter Superhelden. Ich habe mich für den vorletzten entschieden, auch wenn sein linker Nachbar sympathischer wirkt.531
Abb. 9–23 Meinen Superhelden habe ich gezeichnet und gezeichnet, bis ich zufrieden war (rechts unten): keine aufwendigen Schuhe oder dicke Antennen, kugelrund, einfacher Mund – perfekt unperfekt!532
Abb. 9–24 Zuschneiden des gewünschten Bildausschnitts532
Abb. 9–25 Ebene kopieren und Abbildungsmodus einstellen533
Abb. 9–26 Entweder schwarz oder weiß, ein Dazwischen gibt es beim Schwellwert nicht.534
Abb. 9–27 Beim Skalieren setzen wir mit »Sinc (Lanczos 3)« am besten immer den besten Algorithmus ein.534
Abb. 9–28 Die Auswahl der Farbe des Pinsels und der Pinselstärke (links: Gimp 2.6, rechts: Gimp 2.8)535
Abb. 9–29 Wer hätte gedacht, dass Mausgrobmotorik einmal ein Vorteil sein könnte?536
Abb. 9–30 Das fertige Doodle536
9.3.1.2 Typ »8-Bit Pixel Art«537
Abb. 9–31 Ein Meisterwerk in Reduktion: 86 Pixel und nur zwei Farben sorgen in »Canabalt« für das stimmungsvolle Retrofeeling.537
Abb. 9–32 Jedes optische Pixel besteht in Wahrheit aus mehreren Pixeln.538
Abb. 9–33 Ein typisches Pixel Artwork: Jedes einzelne Pixel ist von Hand gesetzt.539
Abb. 9–34 Schritt für Schritt entsteht der Kopf unserer Heldin, frisiert wird ganz zum Schluss.540
Abb. 9–35 12 Pixel, 18 Variationen: erwartungsvoll, achtsam, durchgeknallt, männlich, übernächtigt, neugierig, aufdringlich, verschlossen, Augen zu und durch, angsterfüllt, hinterfragend, entschlossen, skeptisch, angestrengt, blauäugig (typisc...541
Abb. 9–36 Eine gute Heldin braucht Köpfchen und Körper.541
Abb. 9–37 Auch unsere Heldin steht auf gutes Schuhwerk.542
9.3.1.3 Typ »Vektorgrafik«543
Abb. 9–38 Mit wenigen geometrischen Schritten zum sympathischen Heldenkopf544
Abb. 9–39 1) Die Höhe vom Hals bis zum Boden entspricht genau der Größe des Kopfes 2) Der Boden zwischen linkem und rechtem Rand des Kopfes wird gedrittelt 3) Kinnspitze wird mit linkem Drittel des Bodens verbunden 4) Parallele durch linkes Bode...546
Abb. 9–40 6) Schnittpunkt markiert Beinansatz, Flächen darüber und darunter werden jeweils halbiert 7) Leichter Bogen durch obere Halbierende markiert Hosenbund, Beinansatz jeweils mit äußeren Schnittpunkten der Halbierenden verbinden und Stief...547
Abb. 9–41 11) Schultern abschrägen 12) Verbindung Beinansatz zu Nasenspitze markiert an Hosenbund Bauchnabel (oder Gürtelschnalle) 13) Details (Fäuste, Hemdausschnitt, Schuhe, Gürtel) hinzufügen 14) + 15) Kolorieren und ergänzen (Weltraumkäm...547
Abb. 9–42 Erst der »Smiley« macht aus dem Bauch einen Waschbrettbauch.548
Abb. 9–43 Links sieht aus wie Plastik, rechts – mit krakeligen Linien – wie Baumwolle.548
Abb. 9–44 Das furchtbare Ergebnis nach dem Verkleinern ohne Interpolation548
Abb. 9–45 Die Umrisslinie lässt das Sprite nicht mehr ganz so verfranst aussehen.549
Abb. 9–46 Im Zweifelsfall die Augen immer vergrößern549
Abb. 9–47 Der fertige kleine Barbar ist bereit für sein Abenteuer.550
9.3.1.4 Typ »16-Bit«550
Abb. 9–48 So ungefähr soll der eigene Pinsel aussehen.550
Abb. 9–49 Der selbst erstellte Pinsel551
Abb. 9–50 Die Reihenfolge der Pinselstriche für den korrekten Schattenwurf552
Abb. 9–51 Mit nur sechs Pinselstrichen die Gliedmaßen zeichnen und mit nur 10 Punkten den Körper modellieren552
Abb. 9–52 Die fertige Vorlage und ein amphibienartiges Alien, welches auf Basis dieser Vorlage erstellt wurde553
Abb. 9–53 Die Textur (links) sorgt für ein organisches Aussehen unseres Aliens (rechts).554
9.3.1.5 Typ »3D«555
Abb. 9–54 Nur drei Schritte bis zum 3D-Küken555
Abb. 9–55 Weitere mögliche, niedlich dreinschauende Varianten556
9.3.1.6 Typ »Eigenkreation«556
Abb. 9–56 Am Anfang steht immer die Bleistiftzeichnung.557
Abb. 9–57 Experimente bei den Details sind erwünscht.557
Abb. 9–58 Die Textur gibt dem Wesen eine realistische Haut, egal ob Fell, Leder oder Schuppen.558
Abb. 9–59 Die finale Ausarbeitung für das Spiel558
9.3.2 Animationen559
9.3.2.1 Rollige Helden559
Abb. 9–60 Zu Lande, zu Wasser und in der Luft559
9.3.2.2 Läufige Helden560
Abb. 9–61 Konstante Geschwindigkeit: 2 Pixel/Frame560
Abb. 9–62 Bei Pferden bewegt sich die Brust selbst im Galopp nur unwesentlich.561
9.3.2.3 Rundgang562
Abb. 9–63 Eine komplette Laufanimation innerhalb 15 Frames562
Abb. 9–64 Die Abspieldauer jedes einzelnen Frames kann einfach hinter dem Ebenennamen gesetzt werden.563
9.3.3 Plattformen (16 Standard Tiles)563
Abb. 9–65 Level 1: Wenige Tiles ermöglichen nur schlichtes Leveldesign.564
Abb. 9–66 Level 2: Statt nur Plattformen sind nun massive Wände im Einsatz.564
Abb. 9–67 Level 3564
Abb. 9–68 16 Teile, die die Welt bedeuten (schwarze Linie = hier kann das Sprite laufen)565
Abb. 9–69 Ein brauchbares Tileset, wobei die Kachelung noch deutlich ins Auge sticht.565
Abb. 9–70 Bessere Kachelübergänge dank des Filters »Nahtlos machen«566
Abb. 9–71 3 Varianten einer Kachel, die an den Seiten immer die identischen Pixel hat, damit die Übergänge reibungslos funktionieren566
Abb. 9–72 Plattformen gefällig? Diese passen irgendwie immer!567
Abb. 9–73 Unschöne Blockeffekte in der Mitte sind durch ungerade Pixelbreite und -höhe oder durch Antialiasing vermeidbar.567
9.3.4 Minisprites: Gems567
Abb. 9–74 Von einem einfachen Herz zu einem plastisch wirkenden Gem568
Abb. 9–75 Selbst das Werk eines unfähigen Grafikers kann man mit dem Algorithmus unheimlich aufwerten.569
Abb. 9–76 Vor und nach der Anwendung des Algorithmus569
Abb. 9–77 Von der Kritzelpalme zum perfekten 16-Bit-Sprite570
Abb. 9–78 Screenshot des Tools Needlework8570
9.3.5 Explosionen571
Abb. 9–79 Der Explosionspinsel571
Abb. 9–80 Eine schöne Explosion in weniger als einer Minute mit dem richtigen Pinsel571
Abb. 9–81 Animierter Feuerball572
Abb. 9–82 Effektvoll, aber stellt den Programmierer vor heftige Probleme573
9.4 Hintergrundgrafiken573
Abb. 9–83 Mit Hintergrundbild wirkt die Gegend einfach stimmungsvoller.573
Abb. 9–84 Die Baumwipfel schränken die virtuelle Freiheit immens ein.574
Abb. 9–85 Kennt man, mag man, ist man gewohnt, kommt man mit zurecht.576
9.4.1 Wolken576
9.4.1.1 Typ »Kinderspiel«576
Abb. 9–86 Entstehung einer Wolke im Comic-Style576
9.4.1.2 Wolkenmeer577
Abb. 9–87 Wolken und Buschwerk in einem Schritt577
9.4.1.3 Typ »Comic«578
Abb. 9–88 In zwei Minuten zur Schäfchenwolke578
9.4.2 Landschaft578
9.4.2.1 Hügel579
Abb. 9–89 Entstehung eines Hügels579
Abb. 9–90 Für jedes Szenario die richtigen Hügel579
9.4.2.2 Wald und Bäume579
Abb. 9–91 Ööööh … nö!580
Abb. 9–92 Das sieht schon besser aus.580
Abb. 9–93 Die Knotenstellen lassen den Baum natürlicher aussehen580
Abb. 9–94 Eine Baumkrone ist in einer Minute aufgemalt.581
Abb. 9–95 Mit einem solchen Pinsel können Wiesen schnell und leicht erzeugt werden.581
Abb. 9–96 Holzaugen und Astlöcher geben dem Baum ein märchenhaftes Aussehen.582
Abb. 9–97 Zwei Kurven, Rücken an Rücken583
Abb. 9–98 Die Äste werden hinzugefügt.583
Abb. 9–99 Eine flache Krone (z. B. als Plattform verwendbar), Büschel und eine mächtige Baumkrone583
Abb. 9–100 Ein Stern mit verschieden grünfarbenen Strahlen bildet unseren Pinsel.584
Abb. 9–101 Schritt für Schritt zum liegenden Stern584
Abb. 9–102 Und dasselbe noch einmal584
9.4.3 Wetter585
Abb. 9–103 Nebel585
Abb. 9–104 Regenfäden und Schneeflocken585
9.4.4 Schnörkel586
Abb. 9–105 Unrealistisch, aber stimmungsvoll: Schnörkel skizzieren leichte Windverwehungen.586
9.4.5 Weltraum586
Abb. 9–106 Viele Dreiecke, eine Glaskuppel: Konstruktion eines typischen Sidescroller-Raumschiffs587
Abb. 9–107 Dreiecke und eine Ellipse: So designen wir den Raumgleiter eines gängigen Vertikalscrollers.587
9.4.5.1 Panel »Raumschiff«587
Abb. 9–108 Ein Ausgangspanel und zwei Variationen für den klassischen Retro-Shooter587
Abb. 9–109 Kanonen und Düsenantriebe588
9.4.5.2 Panel »Versuchslabor«589
Abb. 9–110 Konstruktion einer ekligen Versuchlaborumgebung589
Abb. 9–111 Der klassische »Alienlabor-Level«590
9.4.5.3 Panel »Felsplanet«590
Abb. 9–112 Die Entstehung eines Felsen590
9.4.5.4 Panel »Alienplanet«590
Abb. 9–113 Zwei Pinsel gestalten einen kompletten Level.591
Abb. 9–114 In vier Schritten zu Kaviarmatsche und Tentakeln591
Abb. 9–115 Borgen der Nachbarin garantiert kein Mehl: pflanzliche Bewohner des Alienplaneten592
9.4.5.5 Panel »Eiskristall«592
Abb. 9–116 In nur fünf einfachen Schritten zum Eisplaneten592
9.4.5.6 Panel »Elektro«593
Abb. 9–117 Elektropanels leicht gemacht593
9.4.6 Puzzlehintergründe594
9.4.6.1 Fraktale594
Abb. 9–118 Schnell spektakuläre Hintergründe mit dem Fraktal-Explorer erstellen595
9.4.6.2 Pinsel596
Abb. 9–119 Solche Effekte zaubern Sie mit den richtigen Pinseln.596
9.5 Titelbild596
9.5.1 Titelbildloser Titelscreen597
Abb. 9–120 Funktioniert super als Titelscreen: »The Little Jungle Sisters« im Demo-Modus mit zusätzlichem Schriftzug597
9.5.2 Titelbilder, wie sie sein müssen598
Abb. 9–121 Unsere Vorlage (Fotograf: Benjamin Miller)598
Abb. 9–122 Ohne Durchpausen geht nichts: Mit einem dicken Pinsel zeichnen wir die Strukturen des Gesichts nach.599
Abb. 9–123 Ausdünnen der Linien600
Abb. 9–124 Verfeinerung der Augenpartie600
Abb. 9–125 Schritte 4–6: Von der Skizze zur Kolorierung601
Abb. 9–126 Die schraffierten Hautpartien decken symbolisch den mittleren Schatten ab, Ohr und Hals sind die dunkelsten Stellen.602
Abb. 9–127 Schritte 7–9: Jetzt erledigen Filter den Rest für uns.603
Abb. 9–128 Schritte 10 und 11: Wir machen die Zeichnung etwas plastischer.603
Abb. 9–129 Als letztes Highlight: blaue Augen604
Abb. 9–130 Etwas arg überspitzt deformiert: unser Titelmädchen als eingebildete Zicke und mit bösen Hintergedanken605
9.6 Grafiken in Code einbinden605
9.6.1 Standardauflösung vs. Retina605
9.6.2 Ladescreen606
10 Bonuslevel: Sound FX/Music607
10.1 Musikproduktion607
10.1.1 Software608
10.1.1.1 Elektronische Musik608
10.1.1.2 MuLab 4.1609
Abb. 10–1 Sieht kompliziert aus, ist aber total einfach: MuLab 4.1609
Abb. 10–2 So präsentiert sich der Sequenzer zum Programmstart.610
Abb. 10–3 Aus der umfangreichen Bibliothek wählen wir das »EPianoGT«.610
Abb. 10–4 Wenn Ihnen das gewählte Instrument nicht gefällt, können Sie über die beiden Pfeile durch die gesamte Instrumentenbibliothek zappen.611
Abb. 10–5 Die Piano-Roll611
10.1.2 Virtuelle Instrumente612
Abb. 10–6 Das Plugin »Independence Free« beinhaltet u. a. hervorragende Gitarren.613
10.1.3 So spielen Sie keine falschen Töne614
10.1.3.1 Akkorde614
Abb. 10–7 Die schwarzen Tasten sind in Zweierblocks angeordnet.615
Abb. 10–8 Bildung eines Dur- und Moll-Akkords615
10.1.3.2 Tonleiter615
Abb. 10–9 Bei der Bestimmung der Noten einfach dem Alphabet folgen616
Abb. 10–10 Die doppelten Bezeichnungen der schwarzen Tasten617
10.1.3.3 Akkordfolgen617
Abb. 10–11 Die vier magischen Akkorde für ansprechende Game-Musik618
Abb. 10–12 Eine kleine Auswahl möglicher Begleitmelodien619
Abb. 10–13 Ein einfaches Begleitschema für die Akkordfolge C – F – G – C619
Abb. 10–14 Das Tempo kann einfach durch die Maustaste verändert werden.620
10.1.3.4 Rhythmik620
Abb. 10–15 Ein sehr einfacher Reggae-Rhythmus C – F – G – C (langer Balken = 2 kurze Balken)620
Abb. 10–16 Ein sehr einfacher Marsch C – F – G – C620
10.1.3.5 Percussion621
Abb. 10–17 C3: Kickdrum/B3: Snare Drum/G3 + A3: Tom Toms621
10.1.3.6 Bass621
10.1.3.7 Melodie622
Abb. 10–18 Die Tonleitern und die jeweils nicht zu verwendenden Noten/Tasten (samt Alternative)623
10.1.4 Jingles623
Abb. 10–19 »Alle meine Entchen« in C-Dur624
Abb. 10–20 »Alle meine Entchen« auf sieben Noten ergänzt624
Abb. 10–21 Wir bauen den Akkord auf Basis der letzten Melodienote.625
Abb. 10–22 Unsere einfache Jingle-Variation625
Abb. 10–23 Unser kompletter Jingle mit vier Spuren: SGbrasoft, SGtar, BoogieMoogie und Drumset626
10.1.5 Musik628
10.1.5.1 Reggae629
Abb. 10–24 Drumset als Reggae-Grundlage629
Abb. 10–25 Durch die »DiSar97«-Spur tritt das Reggae-Feeling deutlich hervor.629
Abb. 10–26 Die »Wow«-Spur630
10.1.5.2 Samba630
Abb. 10–27 Mit dem »GM Drumset« haben wir ein weiteres Schlagzeug im Programm.630
Abb. 10–28 Durch die Merengue-Trommeln bekommt die Samba ihren charakteristischen, südamerikanischen Klang.631
Abb. 10–29 Zu guter Letzt der Bass631
10.1.5.3 Elektro632
Abb. 10–30 »Fat Bass« und »Minor7th«632
Abb. 10–31 Die Techno-typische Betonung auf allen Taktschlägen632
10.1.5.4 Rap633
Abb. 10–32 Die einzelnen Instrumentenspuren für Old-School-Rap633
10.1.6 Sound FX633
10.1.6.1 Bibliothek634
10.1.6.2 Cfxr634
Abb. 10–33 Typische Gamesounds einfach mit Cfxr generieren635
10.1.6.3 Aufnahme635
10.1.7 Sounds für die App vorbereiten635
Abb. 10–34 Mit dem Tool »Switch Sound File Converter« bringen wir die Sounds in die App.636
10.2 Auftragsmusik637
10.3 Sound in Objective-C638
10.3.1 Dateiformate638
10.3.2 Cleveres Musikmanagement639
10.3.2.1 Atmosphäre erzeugen640
10.3.2.2 Loops640
10.3.3 Wiedergabe über Objective-C641
10.3.3.1 Sound FX642
Listing 10–1 Sound FX abspielen642
10.3.3.2 Hintergrundmusik643
Listing 10–2 MP3-Datei abspielen643
Listing 10–3 (BackgroundMusic) ViewController.h643
Listing 10–4 (BackgroundMusic) ViewController.m645
11 Hall of Fame647
11.1 Sehen Sie die Spieler an647
Abb. 11–1 Keine Frage, die Bälle mit Augen laden weitaus sympathischer zu einem Spiel ein.648
11.2 Helden mit Macken648
11.3 Pfeifkonzert649
11.4 Gefühlsduselei650
11.5 Öfter mal was Neues650
Abb. 11–2 Der Blockbuster »Tiny Wings« spielt jeden Tag in einem neuen Erscheinungsbild.651
11.6 Oster- und Mogelei652
11.7 Bescherung652
Listing 11–1 Ein Bild schenken653
11.8 Humor654
11.8.1 Slapstick654
11.8.2 Situationskomik654
Abb. 11–3 Tierisches Durcheinander sorgt für Situationskomik.655
11.8.3 Anspielungen, Hommagen, Zitate655
Abb. 11–4 Welcome-Back-Empfangskomitee656
11.9 Erschöpfung657
11.10 Blitzreinkarnation657
11.11 Kreative Sensoren658
Abb. 11–5 Spielen Sie mit den Sensoren.658
11.12 Kopierschutz659
Literaturverzeichnis661
Videospiele661
Kent, Steven L.:661
Gameplay und Spielideen661
Deutsch:661
Saltzman, Marc:661
Englisch:661
Schell, Jesse:661
Rogers, Scott:661
Perry, David:661
Links:662
»Game Design Dokumente Aufbau und Struktur«:662
»Digitale Spiele: Gams Design und das Design Document«:662
The »Core« of a Game:662
Example Blank Design Document:662
Game Design Document-Template:662
Objective-C662
Deutsch:662
Stäuble, Markus:662
Seelmann, Max:662
Spieleprogrammierung662
Deutsch:662
Steinke, Lennart:662
Luka, Thomas:662
Englisch:662
Bourg, David M.:662
Goldstein, Neal und Manning, Jon und Buttfield-Addison, Paris:662
Daley, Michael:662
Craft, Chris:663
Zirkle, Paul:663
Cocos2d663
Englisch:663
Itterheim, Steffen:663
Links:663
Cocos2d for iPhone:663
OpenGL ES 2.0663
Englisch:663
Rideout, Philip:663
Grafik663
Deutsch:663
Lechner, Bettine K.:663
Howe, John:663
Englisch:663
nfgman:663
Fox, Brent:663
Tsai, Francis:663
Robinson, Craig:663
Mullen, Tony:663
Links:663
ImagineFX (Zeitschriften und Tutorials):663
Gimp:663
GIMP on OS X:664
Musik664
Deutsch:664
Kaiser, Carsten:664
Novy, Mike:664
Schmitt, Werner:664
Englisch:664
Hoffert, Paul:664
IV Childs, G. W.:664
Marks, Aaron:664
Links:664
Hofmann, Jan und Szczypula, Oliver:664
Krause, Benjamin:664
Index665

Weitere E-Books zum Thema: Programmiersprachen - Softwareentwicklung

ASP.NET Shortcut

E-Book ASP.NET Shortcut
Format: PDF

Shortcut-Tipps für ASP.NET-Profis Die neue .NET-Version der Active Server Pages stellt eine Umgebung zur Entwicklung von Web-Applikationen im .NET-Framework bereit. Viele aus der Desktop-…

ASP.NET Shortcut

E-Book ASP.NET Shortcut
Format: PDF

Shortcut-Tipps für ASP.NET-Profis Die neue .NET-Version der Active Server Pages stellt eine Umgebung zur Entwicklung von Web-Applikationen im .NET-Framework bereit. Viele aus der Desktop-…

ASP.NET Shortcut

E-Book ASP.NET Shortcut
Format: PDF

Shortcut-Tipps für ASP.NET-Profis Die neue .NET-Version der Active Server Pages stellt eine Umgebung zur Entwicklung von Web-Applikationen im .NET-Framework bereit. Viele aus der Desktop-…

Programmieren lernen in PHP 5

E-Book Programmieren lernen in PHP 5
Format: PDF

Mit der Version 5 erreicht PHP einen bemerkenswerten Reifegrad, der PHP zu einer festen Größe in der Welt der Webprogrammierung macht. Gerade die leichte Erlernbarkeit macht PHP zur idealen…

Mathematik für Informatiker

E-Book Mathematik für Informatiker
Format: PDF

Die Informatik entwickelt sich in einer unglaublichen Geschwindigkeit. Häufig ist die Mathematik Grundlage von Neuerungen. Deshalb ist sie unverzichtbares Werkzeug jedes Informatikers und Pflichtfach…

Mathematik für Informatiker

E-Book Mathematik für Informatiker
Format: PDF

Die Informatik entwickelt sich in einer unglaublichen Geschwindigkeit. Häufig ist die Mathematik Grundlage von Neuerungen. Deshalb ist sie unverzichtbares Werkzeug jedes Informatikers und Pflichtfach…

Mathematik für Informatiker

E-Book Mathematik für Informatiker
Format: PDF

Die Informatik entwickelt sich in einer unglaublichen Geschwindigkeit. Häufig ist die Mathematik Grundlage von Neuerungen. Deshalb ist sie unverzichtbares Werkzeug jedes Informatikers und Pflichtfach…

Weitere Zeitschriften

FESTIVAL Christmas

FESTIVAL Christmas

Fachzeitschriften für Weihnachtsartikel, Geschenke, Floristik, Papeterie und vieles mehr! FESTIVAL Christmas: Die erste und einzige internationale Weihnachts-Fachzeitschrift seit 1994 auf dem ...

Berufsstart Gehalt

Berufsstart Gehalt

»Berufsstart Gehalt« erscheint jährlich zum Sommersemester im Mai mit einer Auflage von 50.000 Exemplaren und ermöglicht Unternehmen sich bei Studenten und Absolventen mit einer ...

Card Forum International

Card Forum International

Card Forum International, Magazine for Card Technologies and Applications, is a leading source for information in the field of card-based payment systems, related technologies, and required reading ...

DHS

DHS

Die Flugzeuge der NVA Neben unser F-40 Reihe, soll mit der DHS die Geschichte der "anderen" deutschen Luftwaffe, den Luftstreitkräften der Nationalen Volksarmee (NVA-LSK) der ehemaligen DDR ...

ea evangelische aspekte

ea evangelische aspekte

evangelische Beiträge zum Leben in Kirche und Gesellschaft Die Evangelische Akademikerschaft in Deutschland ist Herausgeberin der Zeitschrift evangelische aspekte Sie erscheint viermal im Jahr. In ...

building & automation

building & automation

Das Fachmagazin building & automation bietet dem Elektrohandwerker und Elektroplaner eine umfassende Übersicht über alle Produktneuheiten aus der Gebäudeautomation, der Installationstechnik, dem ...