- Autor:
- Keine Kommentare
- Kommentar schreiben
Dev Tutorial: Eigenes Spiel Part 2
Heute mach ich bei dem Spiel weiter. Wer Part 1 nicht gemacht hat, soll es bitte jetzt machen (Link).
- Wir brauchen noch 3 Variablen. Wofür seht ich nachher.
- Diese Zeilen wieder in die .h:
NSInteger random1;
NSInteger random2;
NSInteger random3;
- und an der richtigen Position (ihr solltet es nun wissen bzw. erkennen) :
@property (nonatomic) NSInteger random1;
@property (nonatomic) NSInteger random2;
@property (nonatomic) NSInteger random3;
- Und in der .m Datei :
@synthesize v, position1, position2, position3, random1, random2, random3;
- Öffnet wieder die Fall_BallViewController.m
- in der viewdidload Funktion fügt diese Zeilen hinzu:
random1 = 1 + arc4random() % 252;
random2 = 1 + arc4random() % 252;
random3 = 1 + arc4random() % 252;
- Diese Funktion nutzen wir später nochmal. Da wird sie dann auch erklärt.
- In der gameLoop Funktion fügt nun diesen Code hinzu:
position1 = position1 + (v/2);
position2 = position2 + (v/2);
position3 = position3 + (v/2);mauer1.center = CGPointMake(mauer1.center.x, position1);
mauer2.center = CGPointMake(mauer2.center.x, position2);
mauer3.center = CGPointMake(mauer3.center.x, position3);loch1.center = CGPointMake(random1, position1);
loch2.center = CGPointMake(random2, position2);
loch3.center = CGPointMake(random3, position3);
- Da die Funktion gameLoop vom Timer alle 0,04 Sekunden ausgeführt wird bekommen wir jedes mal eine neue Position. Wir nutzen die Variable v (Geschwindigkeit) und reduzieren die Position um diese.
- Ich erkläre auch noch gleich die CGPointMake Funktion.
Jedes Bild (Objekt) hat einen Mittelpunkt. Man bekommt diesen durch das Attribut center. Wir können diesen Mittelpunkt, und somit auch das Bild, verschieben. CGPointMake erstellt hierbei einen Punkt mit einer x und y Koordinate. Für die X-Koordinate nehmen wir die alte und für Y-Koordinate die Variable position(1,2,3), die ja jedes mal kleiner wird. - Wenn ihr die App nun startet merkt ihr dass sich die 3 Balken bewegen. Aber warum nur 3? Wir haben nur 3 definiert. Aber wir brauchen auch nur 3. Wir fügen nun den Code hinzu der kontrolliert ob die Mauer unter dem Bildschirmrand ist und wenn ja setzen wir sie wieder 200px über die höchste Mauer.
Dazu fügt diesen Code hinzu:
if (position1 > 480) {
position1 = position2 – 200;
random1= 1 + arc4random() % 252;
mauer1.center = CGPointMake(mauer1.center.x, position1);
loch1.center = CGPointMake(random1, position1);
}if (position2 > 480) {
position2 = position3 – 200;
random2= 1 + arc4random() % 252;
mauer2.center = CGPointMake(mauer2.center.x, position2);
loch2.center = CGPointMake(random2, position2);
}if (position3 > 480) {
position3 = position1 – 200;
random3 = 1 + arc4random() % 252;
mauer3.center = CGPointMake(mauer3.center.x, position3);
loch3.center = CGPointMake(random3, position3);
}
- Wie ihr seht haben wir nun aber auch die Koordinate des Loches verändert. Dies hat einen Grund. Wir wollen ja nicht jedes mal das Loch an der selben Stelle, so müssen wir eine Zufallszahl benutzen.
1 + arc4random() % 252 erstellt eine Zufallszahl von 1-252 (das + 1 ist deswegen da, damit wir keine 0te Stelle bekommen). - Nun startet das Spiel wieder. Nun seht ihr das immer wieder Mauern kommen und das Loch immer wo anders ist.
- Einen Fehler haben wir aber noch. Der Ball ist unter dem Loch.
Dazu macht einfach wieder das vom Video: - Weiter geht es mit Part 3. Dort werden wir den Ball bewegen lassen und die Hindernisse zu solchen machen.


Diskussion / Kommentar schreiben