Apfeltech. » Apple, iOS, iPhone, iPad & iPod Touch News-Blog

Autor:
  schrieb am 9 Oktober 2009 um 19:19

Dev Tutorial: Eigenes Spiel Part 1

Heute beginne ich mit einer Serie. Ich werde mit euch gemeinsam ein Spiel erstellen nach dem Vorbild von FallBall.

  • Startet XCode und macht eine neue View-Based Application mit dem Namen “Fall Ball”.
  • Fügt diese Dateien hinzu.
  • Öffnet die Fall_BallViewController.xib und macht alles was in dem Video passiert.
  • Nun wechselt zu XCode und unkommentiert die viewdidload Funktion. Ändert den Code folgendermaßen:

- (void)viewDidLoad {
mauer1.center = CGPointMake(mauer1.center.x, -60);
mauer2.center = CGPointMake(mauer2.center.x, 160);
mauer3.center = CGPointMake(mauer3.center.x, 360);

loch1.center = CGPointMake(loch1.center.x, -60);
loch2.center = CGPointMake(loch2.center.x, 160);
loch3.center = CGPointMake(loch3.center.x, 360);
[super viewDidLoad];
}

  • Dieser Code ändert die Positionen der Bilder. Wir bringen sie nun in eine günstige Position.
  • Fügt nun diese Funktion hinzu:

-(void)gameLoop {

}

  • Den Inhalt definieren wir später. Nun zum Aufruf.
  • Jetzt fügen wir der viewdidload Funktion diese Zeile hinzu:

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

  • Hier wird ein Timer gestartet und der wiederrum startet alle 0,04 Sekunden die gameLoop Funktion. Dies verschafft uns einen Spielfluss.
  • Jetzt wechseln wir wieder in die .h Datei. Ändere den Code folgendermaßen:

#import <UIKit/UIKit.h>

@interface Fall_BallViewController : UIViewController {
IBOutlet UIImageView *ball;
IBOutlet UIImageView *loch1;
IBOutlet UIImageView *loch2;
IBOutlet UIImageView *loch3;
IBOutlet UIImageView *mauer1;
IBOutlet UIImageView *mauer2;
IBOutlet UIImageView *mauer3;

NSInteger position1;
NSInteger position2;
NSInteger position3;
NSInteger v;
}

@property (nonatomic) NSInteger position1;
@property (nonatomic) NSInteger position2;
@property (nonatomic) NSInteger position3;
@property (nonatomic) NSInteger v;
@end

  • Wir haben hier nun 4 neue Variablen dafiniert. Zum einen 3 positionen (die brauchen wir für die Mauern und die Löcher) und eine Variable v die für Geschwindigkeit steht.
  • In der .m Datei müssen wir noch diese Zeile unter der implentation Zeile einfügen:

@synthesize v, position1, position2, position3;

  • Jetzt werden wir diese Variablen dafür nutzen. Viewdidload wiederum so verändern:

- (void)viewDidLoad {
position1 = -40;
position2 = 160;
position3 = 360;
mauer1.center = CGPointMake(mauer1.center.x, position1);
mauer2.center = CGPointMake(mauer2.center.x, position2);
mauer3.center = CGPointMake(mauer3.center.x, position3);

loch1.center = CGPointMake(loch1.center.x, position1);
loch2.center = CGPointMake(loch2.center.x, position2);
loch3.center = CGPointMake(loch3.center.x, position3);

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

[super viewDidLoad];
}

Weiter geht es das nächste mal. Da werden wir das Spiel bewegen und die Hindernisse zu solchen werden lassen.



Autor:

WEITEREMPFEHLEN:

Diskussion / Kommentar schreiben

Anonyme Kommentare sind erlaubt. Trotzdem werden Spam oder Beleidigungen nicht gerne gesehen, daher muss Dein erster Kommentar von uns freigeschaltet werden. Hinweise und Vorschläge, die nichts mit diesem Artikel zu tun haben, nehmen wir gern via eMail entgegen.

Kontakt (Tipp-Box)