jeudi 2 février 2012

Tutoriels NeHe, Leçon 4 Porté sur iPhone

Leçon 4 NeHe a été très facile au port. La nouvelle fonctionnalité introduite tous les travaux à peu près tel quel.

Voici le lien pour la Leçon 4 projet porté.

La seule différence notable (autres que les éléments mentionnés dans les blogues précédents) est le fait que j'ai déclaré rtri et rquad que les variables statiques dans la méthode drawView plutôt que de déclarer des variables globales. Ce fut juste pour garder tout le code pertinent pour le projet ensemble, et n'a aucun impact sur functinoality du programme.

Un changement que je pourrais recommander serait de lier les augmentations et les rtri rquad à la quantité de temps écoulé. Il semble fonctionner assez bien, mais si vous voulez qu'il soit parfaitement lisse, qui serait la façon de l'accomplir. Pour ce faire, remplacez ce code:
 rtri+=0.2f;      // Increase The Rotation Variable For The Triangle ( NEW )
rquad-=0.15f; // Decrease The Rotation Variable For The Quad ( NEW )
avec quelque chose comme ce code, qui tourne à une constante 20 ^ 0 par seconde pour le triangle, et 15 ^ 0 par seconde pour le carré.
 static NSTimeInterval lastDrawTime;
if (lastDrawTime)
{
NSTimeInterval timeSinceLastDraw = [NSDate timeIntervalSinceReferenceDate] - lastDrawTime;
rtri+=20.0 * timeSinceLastDraw;
rquad-=15.0 * timeSinceLastDraw;
}
lastDrawTime = [NSDate timeIntervalSinceReferenceDate];
Une autre chose que vous pouvez faire - il ne changera pas la fonctionnalité, mais aidera pendant le débogage - est de garder la rotation au sein d'un 360 ^ 0 portée, qui peut être fait simplement en ajoutant quelques lignes de code:
 static NSTimeInterval lastDrawTime;
if (lastDrawTime)
{
NSTimeInterval timeSinceLastDraw = [NSDate timeIntervalSinceReferenceDate] - lastDrawTime;
rtri+=20.0 * timeSinceLastDraw;
if (rtri > 360.0)
rtri -= 360.0;

rquad-=15.0 * timeSinceLastDraw;
if (rquad rquad += 360.0;
}
lastDrawTime = [NSDate timeIntervalSinceReferenceDate];


Aucun commentaire: