2010-10-29 12 views
0

espérons ne pas être .. ennuyeux. Dans mon développement de jeux vidéo (2d, en Sdl.NET), je voudrais créer un 2d "map" (carte descendante, aussi appelée flybird je suppose). Je voudrais créer une grande carte, par exemple 4000x4000 px. Évidemment, je voudrais montrer seulement ce que la résolution de l'utilisateur peut être. Si mon utilisateur utilise 800x600, je dois montrer un "recadrage" de ma grande carte.Grande carte dans le jeu vidéo 2d

Quelle est la meilleure approche pour résoudre le problème du défilement de l'écran? Et, comment montrer seulement la "pièce" correcte de ma carte (terrain)?

+1

Ceci est une question légitime, mais pour plus d'informations, vous pouvez également envisager de poser des questions sur [Game Dev SE] (http://gamedev.stackexchange.com). Je n'y participe pas, mais cela semble correspondre au genre de questions qui sont actuellement sur la page principale de Game Dev. – Pops

+0

Ma réponse ici couvre la même question: http://stackoverflow.com/questions/3801332/data-structure-for-levels-in-games/3804276#3804276 – Martin

Répondre

2

Dans le développement d'une interface graphique régulière, l'approche consiste à utiliser ViewPort. Vous n'êtes pas sûr des spécificités de votre plate-forme, mais ViewPort prend en charge ce que l'utilisateur peut voir tout en gardant une trace de l'emplacement de la «grande carte» plus grande que ViewPort peut contenir. Dans la programmation GUI standard, vous avez des barres de défilement pour vous déplacer, mais vous devrez probablement gérer le déplacement vous-même. La prémisse de base de ViewPort est que le document est beaucoup plus grand que ce que l'utilisateur peut voir. Je devine que Sdl.NET n'a pas une telle construction en soi. (Je ne pouvais pas trouver les documents de l'API). Vous pouvez en créer un vous-même, qui se chargera de copier la partie droite de l'arrière-plan ou la Big Map sur l'écran lui-même. Le ViewPort serait juste un couple de points pour garder une trace du coin supérieur gauche de l'écran et le coin inférieur droit de l'écran. Donnez-vous quelques méthodes pour déplacer le ViewPort et assurez-vous qu'il est dans les limites de la grande carte.

Ensuite, il suffit de tout attacher ensemble.

Il n'est pas rare d'avoir un arbre de tous les objets dans la scène, de sorte que vous pouvez vous assurer que vous affichez seulement les objets qui sont censés être à l'écran. Cela aidera votre fonction "Dessiner" à masquer l'arrière-plan, et tous les éléments de premier plan à l'intérieur du port d'affichage automatiquement.

1

Cela ressemble à une bonne occasion d'utiliser une carte quadruple. Cela vous permettra de « hacher » la grande carte et charge « pièces » à la volée