Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.
La shoutbox n'est pas chargée par défaut pour des raisons de performances. Cliquez pour charger.

Forum Casio - Projets de programmation


Index du Forum » Projets de programmation » Faire une map avec scrolling
Getkey Hors ligne Membre Points: 232 Défis: 0 Message

Faire une map avec scrolling

Posté le 02/05/2012 16:34

J'hésite entre deux manieres de faire une map avec scrooling:

Faire comme dans Orton un tableau à deux dimensions avec des 1 pour les plateformes par exemple (le premier niveau de Orton):
char m[] = {
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1,
1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1,
1, 1, 0,11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,12, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
};


Ou bien faire deux tableau: l'un pour les abscisses des différents blocs et l'autre pour leurs ordonnées.


Eiyeron Hors ligne Ancien modérateur Points: 5525 Défis: 57 Message

Citer : Posté le 02/05/2012 16:45 | #


Non, la première solution convient très bien. Tu dois juste déterminer les blocs à afficher à partir des coordonnées de l'écran. Jette un coup d'oeil aux sources de orton, ça fait pas de mal
Dark storm Hors ligne Labélisateur Points: 11629 Défis: 176 Message

Citer : Posté le 02/05/2012 16:48 | #


et puis c'est PLL, c'est bien codé et commenté
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Eiyeron Hors ligne Ancien modérateur Points: 5525 Défis: 57 Message

Citer : Posté le 02/05/2012 16:51 | #


Tu veux qu'on reparle d'indestructotank?
Binary_man Hors ligne Ancien rédacteur Points: 1344 Défis: 19 Message

Citer : Posté le 02/05/2012 17:22 | #


Mais c'est un tableau à une dimension ce que tu nous montre ?


Calculettes : Graph 75, Graph 95, classpad 330 et FX-CG20 !!
Eiyeron Hors ligne Ancien modérateur Points: 5525 Défis: 57 Message

Citer : Posté le 02/05/2012 17:30 | #


Bah oui
Pierrotll Hors ligne Ancien administrateur Points: 5488 Défis: 41 Message

Citer : Posté le 02/05/2012 17:37 | #


Imaginons que tu choisisses ta seconde solution. Ton perso est à la case (x, y), et tu veux savoir s'il y a un bloc en dessous de lui, soit en (x, y+1), comment tu fais ?
Dark storm Hors ligne Labélisateur Points: 11629 Défis: 176 Message

Citer : Posté le 02/05/2012 17:44 | #


un tableau 2D
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Getkey Hors ligne Membre Points: 232 Défis: 0 Message

Citer : Posté le 02/05/2012 20:38 | #


Ok merci je fait un tableau 2D ça sera plus clair en plus.

Bah pour savoir si il y a un bloc en dessous de toi tu utilise deux boucles (en for plutôt) pour tester si une des cases du tableau correspond a un bloc.

Getkey est en cours de chargement. Veuillez patienter...


Mes jeux en pause...
Cliquer pour enrouler
Javierxd Hors ligne Membre Points: 1899 Défis: 13 Message

Citer : Posté le 02/05/2012 22:21 | #


Trop compliqué, ça vaut pas le coup...
Calculatrices: g35+usb modifiée, PRIZM

My program is not working, I have no idea why.
My program is working, I have no idea why.

Programmes
Cliquer pour enrouler
Pierrotll Hors ligne Ancien administrateur Points: 5488 Défis: 41 Message

Citer : Posté le 02/05/2012 23:21 | #


Getkey a écrit :
Bah pour savoir si il y a un bloc en dessous de toi tu utilise deux boucles (en for plutôt) pour tester si une des cases du tableau correspond a un bloc.

Donc pour les collisions, tu devrais parcourir ta liste de blocs plusieurs fois, ce qui fait un nombre très important d'accès mémoire, qui dépendrait de la taille de la map. C'est beaucoup plus lent et plus compliqué qu'un simple tableau. De plus, si tu veux gérer des blocs de nature différente, il te faudrait une autre liste contenant le type de chaque bloc, et au final ça prendrait encore plus de mémoire.

LienAjouter une imageAjouter une vidéoAjouter un lien vers un profilAjouter du codeCiterAjouter un spoiler(texte affichable/masquable par un clic)Ajouter une barre de progressionItaliqueGrasSoulignéAfficher du texte barréCentréJustifiéPlus petitPlus grandPlus de smileys !
Cliquez pour épingler Cliquez pour détacher Cliquez pour fermer
Alignement de l'image: Redimensionnement de l'image (en pixel):
Afficher la liste des membres
:bow: :cool: :good: :love: ^^
:omg: :fusil: :aie: :argh: :mdr:
:boulet2: :thx: :champ: :whistle: :bounce:
valider
 :)  ;)  :D  :p
 :lol:  8)  :(  :@
 0_0  :oops:  :grr:  :E
 :O  :sry:  :mmm:  :waza:
 :'(  :here:  ^^  >:)

Σ π θ ± α β γ δ Δ σ λ
Veuillez donner la réponse en chiffre
Vous devez activer le Javascript dans votre navigateur pour pouvoir valider ce formulaire.

Si vous n'avez pas volontairement désactivé cette fonctionnalité de votre navigateur, il s'agit probablement d'un bug : contactez l'équipe de Planète Casio.

Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 44 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd