Dev Tutorial: Eigenes Spiel Part 3
-
Weiter gehts mit dem dritten Teil unserer Tutorial Serie zum Thema Spieleentwicklung auf dem iPhone. Wenn ihr Teil 1 und Teil 2 noch nicht gelesen habt, dann macht es nun. Das Spiel was wir entwickeln werden wird nicht umbedingt groß, aber man lernt trotzdem sehr viel draus und es wird auch in den App Store kommen. Somit ist es eines der ersten Programme die komplett Open Source und auch noch genau erklärt sind.
- Wir gehen in die .h Datei und ändern die @interface Zeile:
@interface Fall_BallViewController : UIViewController <UIAccelerometerDelegate> {
- Das brauchen wir um die Accelerometer Funktionen nutzen zu können.
- In der viewdidload Funktion fügen wir diese Zeilen hinzu:
UIAccelerometer *accel = [UIAccelerometer sharedAccelerometer];
accel.delegate = self;
accel.updateInterval = 1.0f/120.0f;- Diese Zeilen starten das Accelerometer und definieren das Zeitinterval in der die Position abgefragt wird.
- In der gameloop Funktion fügen wir diese Zeilen hinzu:
if(CGRectIntersectsRect(ball.frame, mauer1.frame)) {
if(ball.center.x -15 <= loch1.center.x – 62 || ball.center.x +15 >= loch1.center.x + 62) {
ball.center = CGPointMake(ball.center.x, position1 + 23);
}
}if(CGRectIntersectsRect(ball.frame, mauer2.frame)) {
if(ball.center.x -15 <= loch2.center.x – 62 || ball.center.x +15 >= loch2.center.x + 62) {
ball.center = CGPointMake(ball.center.x, position2 + 23);
}
}if(CGRectIntersectsRect(ball.frame, mauer3.frame)) {
if(ball.center.x -15 <= loch3.center.x -62 || ball.center.x +15 >= loch3.center.x + 62) {
ball.center = CGPointMake(ball.center.x, position3 + 23);
}
}- Wir schauen uns diese Zeilen mal genauer an. In der ersten Zeile haben wir eine Kollisionabfrage. Es fragt ab ob der Ball auf der Mauer(Die Mauer ist auch das Loch – das Loch ist nur ein Bereich der Mauer). Ist dies der Fall schauen wir ob der Ball außerhalb des Loches ist. Ist auch dies der Fall soll sich der Ball mit der Mauer nach unten bewegen. Die Mauer schiebt also den Ball nach unten.
- Nun wollen wir auch den Ball bewegen. Dazu fügen wir eine neue Funktion hinzu:
- (void)accelerometer:(UIAccelerometer *)acel didAccelerate:(UIAcceleration *)aceler {
if (ball.center.x > 0 && ball.center.x < 320) {
ball.center = CGPointMake(ball.center.x + aceler.x*8, ball.center.y – aceler.y*8);
}
if (ball.center.x <= 0 && aceler.x > 0) {
ball.center = CGPointMake(ball.center.x + aceler.x*8, ball.center.y – aceler.y*8);
}
if (ball.center.x >= 320 && aceler.x < 0) {
ball.center = CGPointMake(ball.center.x + aceler.x*8, ball.center.y – aceler.y*8);
}
}- Diese Funktion soll den Ball bewegen. Dabei gehen wir von 3 verschiedenen Situationen aus. In der ersten gehen wir davon aus dass der Ball im Bildschirmbereich ist. Im zweiten Fall gehen wir davon aus, dass der Ball am Ende ist und so kontrollieren wir ob das Accelerometer einen positiven Wer gibt. Der Ball soll nur in den Bildschirm und nicht weg davon bewegt werden. Im dritten Fall komplett das selbe, nur auf der anderen Seite.
Schluss für dieses mal. Das nächste mal machen wir Scores in die App, sowie einen Game Over View mit Restart Funktion.
-
Werbung





12. Oktober 2009 um 12:42
Och mann jetzt heult doch nicht rum weil da ein Tippfehler ist!
Seit wenigstens froh, dass grafele sich die Mühe macht für die Leser so ein Tutorial zu schreiben!
Ich finde es Top was er macht und ihr könntet mal lieber dankbar sein.
12. Oktober 2009 um 12:48
Leute, warum lobt ihr nicht mal, dass das ein gutes Tutorial ist, anstatt euch das Maul darüber zu zerreissen, dass es falsch geschrieben ist.
Wenn ich mir eure Grammatik und Rechtschreibung angucke, krieg’ ich manchmal echt das Kotzen.
Naja, trotzdem ein gutes Tutorial
12. Oktober 2009 um 12:49
nice tut, mach weiter so
12. Oktober 2009 um 12:56
Er macht die ganze scheiß Arbeit für euch und dann sagta “da sehet totarial” wenn einer ein viele besseres Tutorial machen kann der darf da rüber lachen und wer es nicht kann sollte besser mal die fresse halten !
.
Traurig das es solche Leute geben muss
12. Oktober 2009 um 14:55
So Leute jetzt seit ihr mal gefragt. Was benutzen wir um die Highscores zu nutzen?
mfg grafele
12. Oktober 2009 um 15:11
^^
12. Oktober 2009 um 15:43
gibts am ende das ganze projekt nochmal zum download?
12. Oktober 2009 um 16:03
Hab mal ne Frage..
Hab grade meine ECID ausgelesen und wollte nun fragen wie ich diese ECID Datei bekomme denn purplera1n funktioniert irgendwie nicht mehr..
Und was mache ich dann wenn ich die Datei habe um mein iPhone 3Gs von 3.1 Custom auf 3.0 zurückzusetzen??
Danke
12. Oktober 2009 um 16:04
wird mich auch interessieren ob das game noch als download kommt
12. Oktober 2009 um 16:20
Das Game wird es am Ende im App Store geben ist aber Open Source. Jeder kann den Source Code downloaden.
12. Oktober 2009 um 16:38
Kann bitte jemand die “Fall Ball” Datei hochladen und den link hier posten (die datei die den app nahmen hat….)
thx
bei mir klappt da was nicht und ich würds mir gerne in ner “fertigen” app anschauen wie das gemacht wurde…
12. Oktober 2009 um 16:46
wo hast du das eig gelern grafele?
PS: WO IST DIE VIEWLOAD FUNKTION ZU FINDEN?!
12. Oktober 2009 um 16:47
sehr geiles tutorial, gute idee das ihr sowas anbietet, hochachtung!
12. Oktober 2009 um 17:10
Würde es gerne machen brauch aber die Bilder !!!
12. Oktober 2009 um 17:12
welche bilder
wenn du die meinst .. ball usw
im ersten teil!
da ist ein link
12. Oktober 2009 um 17:13
kannst es doch auch einfach füllen lassen mit einer farbe, sieht zwar nicht so schick aus, läuft aber :F
12. Oktober 2009 um 18:16
Schon gut
12. Oktober 2009 um 18:55
Kleine Vorschau zu FallBall. http://twitpic.com/l9iz7
http://twitpic.com/l9iz8
http://twitpic.com/l9iz4
13. Oktober 2009 um 14:20
kostet es was sich als devolper zu registrieren um die iphone sdk runter zu laden?