Quelle logique pour ce type de jeu ?
Bonjour tt le monde 
J'ai envie de retenter de faire un jeu pour l'iPhone, j'en ai une idée très précise en tête, seulement je me pose des questions sur la logique de programmation à utiliser
Voilà , il y aura un personnage qui progressera de manière verticale pour aller le plus haut possible à l'aide de plateformes fixes ou amovibles (comme dans Doodle Jump, i.e., mais avec un mode de déplacement spécifique).
Une vue d'ensemble du parcours ressemblerait donc à un très long conduit de cheminée. Ma question concerne donc la création dynamique de décors et d'objets:
(car je suppose que ce parcours n'est pas créé dans son ensemble dès le début de la partie, mais qu'il se génère au fur et à mesure que le personnage évolue, non?)
Dans ce cas, comment cela fonctionne t'il ? Quel est le déclencheur qui fabrique l'objet hors-écran, et comment l'objet créé défile correctement dans la vue, etc ?
J'espère être clair dans mes propos...Merci d'avance
)) !!
Vico

J'ai envie de retenter de faire un jeu pour l'iPhone, j'en ai une idée très précise en tête, seulement je me pose des questions sur la logique de programmation à utiliser

Voilà , il y aura un personnage qui progressera de manière verticale pour aller le plus haut possible à l'aide de plateformes fixes ou amovibles (comme dans Doodle Jump, i.e., mais avec un mode de déplacement spécifique).
Une vue d'ensemble du parcours ressemblerait donc à un très long conduit de cheminée. Ma question concerne donc la création dynamique de décors et d'objets:
(car je suppose que ce parcours n'est pas créé dans son ensemble dès le début de la partie, mais qu'il se génère au fur et à mesure que le personnage évolue, non?)
Dans ce cas, comment cela fonctionne t'il ? Quel est le déclencheur qui fabrique l'objet hors-écran, et comment l'objet créé défile correctement dans la vue, etc ?
J'espère être clair dans mes propos...Merci d'avance

Vico
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Par exemple, tu commences le jeu : 2x la hauteur de l'écran est chargé. Une fois que tu as fait une hauteur, tu charges la 3eme, etc.. etc..
En fait j'ai une lacune dans ce type de raisonnements du fait de mon in-experience dans le jeu...
Personne sur ce forum n'aurait déjà pondu une appli qui fait défiler du décors et des objets à l'infini"?
Bon allez j'arrête là et je laisse les pro du genre apporter leur savoir faire.
Par hasard il se situe où ce coup à boire ? Ce n'est pas toi qui est de Marseille aussi ? :-°
Effectivement, on peut organiser un coup à boire entre dev iphone sur la région parisienne, pour parler de jeux iphones et autres sujets.
Bon, en attendant met moi juste sur la bonne voie, Draken
En gros, je dois créer des instances d'objets juste avant de les faire rentrer dans l'écran, puis les détruire quand ils sont sortis ?
Après, comment, je sais pas trop mais c ça l'idée ?
Pensez au CocoaHeads si vous voulez voir d'autre dev ^^
Considère que le personnage se déplace dans un espace virtuel de grande taille, où chaque objet possède une position horizontale et une altitude. Et que l'écran de l'iPhone est une fenêtre de visualisation sur une petite partie de l'espace.
Tu auras besoin d'une fonction pour dessiner l'écran, à partir de sa position, genre :
- (void) drawEcranDeJeuAvecAltitude:(int)hauteur;
Et d'une liste contenant la position des objets de jeu.
A chaque redessin, la fonction drawEcran devra parcourir la liste des objets pour n'afficher que ceux présents dans la fenêtre de visualisation. Si le personnage se trouve à l'altitude 2000, le moteur d'affichage ne doit se préoccuper que des objets à proximité.
Si ton jeu est en orientation paysage, l'écran fait 480x320 pixels, soit 320 pixels de haut.
Au fur et à mesure que le joueur monte en altitude, tu génère des plates-formes au dessus de lui, a disons .. 300 pixels plus haut. Elles ne seront pas affichées tout de suite sur l'écran, parce qu'en dehors de la zone visible.
Dans le même temps tu effaces de la liste les plates-formes situées en dessous, à une altitude de 200 ou 300 pixels plus bas que la hauteur atteinte par le personnage. Si le personne ne fait que monter sans cesse, sans jamais redescendre les plates-formes inférieures n'ont plus d'utilité.
La position d'affichage d'un objet sur l'écran dépend de son altitude et de l'altitude de la fenêtre de visualisation.
yObjetSurEcran = altitudeObjet - altitudeFenetre;
En considérant que l'altitude de la fenêtre est mesurée à partir du bas de son extrémité basse. Fenêtre au raz du sol = altitude de 0 pixels.
Pour que le système fonctionne, il faut recalculer la hauteur de la fenêtre à chaque déplacement du personnage, de manière à ce qu'il reste a peu prés au milieu de l'écran.
Voilà , c'est juste un début de piste pour toi, pour te donner des idées.
Merci pour ta réponse, je suis en train d'y réfléchir donc mon post est un peu prématuré, mais déjà tu m'as confirmé que les plateformes sont positionnées dans un repère global, et non par rapport à la zone affichée. (car j'imaginais aussi un système dans lequel je génererais des plateformes à -20px en y et les détruisait à + 500px en y, par ex. pour une vue orientée en portrait).
C'est ta méthode pour redessiner que je comprend moins bien, serait-ce une logique OpenGl ou autre ? Car moi jusqu'à présent je crée une vue (plateforme) avec addSubview, et elle est rafraà®chie tant qu'elle n'est pas détruite par un removeFromSuperview. Sa position dépendrait en effet de l'altitude de la zone affichée. Si l'altitude augmente de 20px, la position y de la plateforme descend de 20.
Je viens de répondre à Vico, et mon post à disparu, ou plutôt n'a pas été enregistré !
Je remarque que j'étais le dernier à poster. Il est possible que le démon tueur de post refuse qu'une personne poste deux fois à la suite !