2010-02-22 4 views
0

Comment placer des objets qui n'apparaissent que si l'arrière-plan défile à un certain point?Placement d'objets sur fond défilant dans XNA

Exemple - J'ai cette longue image qui continue à défiler en utilisant la technique ci-dessus. Cependant, après avoir fait défiler une partie de l'image, je souhaite y ajouter une plate-forme. Comment ferais-je cela?

Répondre

3

En général, vous devrez probablement enregistrer les emplacements de vos objets dans un fichier, puis charger ce fichier au début du niveau (en supposant que vous faites une sorte de jeu de plateforme). Vous pouvez le faire en créant une classe ou une structure contenant toutes les informations pertinentes pour la plate-forme (position, taille, texture, etc.), puis en utilisant la sérialisation XML pour écrire un tableau de ces classes/structures dans un fichier. Votre chargeur de niveau chargerait et désérialiserait ensuite les données de niveau, ce qui finirait par être une liste de tous les objets de votre niveau (comme les plates-formes). Maintenant que vous avez en mémoire les emplacements de vos plates-formes, vous avez plusieurs options différentes pour les afficher à l'écran. Dessinez tous les objets (plates-formes) tout le temps, qu'ils soient visibles ou non sur l'appareil photo. Si vos niveaux ne contiennent pas beaucoup d'objets, ce serait simple à implémenter.

  • Ne dessinez que ceux de la vue de la caméra. Sans savoir comment vous avez implémenté le défilement horizontal, il est difficile de faire des suggestions pour cette partie. Quel que soit le mécanisme dont vous disposez actuellement pour identifier les limites de la partie de l'arrière-plan à afficher, vous pouvez également déterminer les objets à dessiner. Je travaille sur un jeu qui fait défiler verticalement en ce moment, et j'avais besoin d'un moyen de faire quelque chose de similaire: placer les objets dans un niveau et les faire apparaître quand l'arrière-plan défile vers eux. J'ai utilisé TorqueX 2D (binaires gratuits du moteur si vous avez payé pour développer pour XNA) et son éditeur de scène 2D pour mettre en place assez facilement. J'ai mon appareil photo qui défile, l'arrière-plan reste en place. Quand il arrive à une position d'objet définie dans le fichier de niveau XML, il engendre l'objet dans le niveau.

  • +0

    Merci Venesectrix. Je suppose que la chose que je devrais faire a été d'utiliser des cartes de tuiles (ou similaires) tout le long. J'ai effectivement posté cette question sur les forums XNA (http://forums.xna.com/forums/t/48209.aspx) et la réponse est également valable. Mais, cartes de carreaux old-schoolish tout le chemin :) Merci pour la réponse! – DMan