- Autor:
- Keine Kommentare
- Kommentar schreiben
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.


Diskussion / Kommentar schreiben