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 - Autres questions


Index du Forum » Autres questions » comment utiliser les matrices pour créer un jeu.
Link-mana Hors ligne Membre Points: 21 Défis: 0 Message

comment utiliser les matrices pour créer un jeu.

Posté le 08/05/2019 16:55

Hey, je suisnouveau en basic casio et j'aimerais savoir comment utiliser les matrices pour :
1-les colisions
2-l' emplacement d'objets
3-créer une sauvegarde
merci de bien vouloir me répondre .
(P.S: je suis sur graph 35+E transformé en 75+E et j'ai aussi regardé plusieur tuto que je n'ai pas compris, donc merci d'être concret).



Lephenixnoir Hors ligne Administrateur Points: 24229 Défis: 170 Message

Citer : Posté le 08/05/2019 17:08 | #


Voyons les collisions. La matrice est un tableau en deux dimensions, pratique pour représenter des maps en deux dimensions. Par exemple, si tu as une map avec du sol et des murs, tu peux représenter le sol par des 0 et les murs par des 1 dans la matrice. Voici un exemple de map et sa représentation matricielle :

######      [[ 1,1,1,1,1,1 ]
#    #       [ 1,0,0,0,0,1 ]
#  ###       [ 1,0,0,1,1,1 ]
#  #         [ 1,0,0,1,0,0 ]
####         [ 1,1,1,1,0,0 ]]

Quelle est la question à laquelle on veut répondre quand on parle de collisions ? Il s'agit de "si mon personnage se déplace vers la case (x,y), rentre-t-il dans un mur ?". La réponse est oui si et seulement si la case (x,y) est occupée par un mur. Ce que tu peux écrire :

Mat A[Y,X]→C

Si tu as une map dans la matrice A.

Parlons un peu des sauvegardes. Toutes les données que tu mets dans les matrices persistent entre deux exécutions du programme, sauf si la matrice est supprimée (mais ça tu ne peux rien y faire). Donc tu peux utiliser la matrice pour mettre des nombres qui représentent ta sauvegarde. Le format dépend de ton jeu et de ce que tu veux faire avec.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Shadow15510 Hors ligne Administrateur Points: 5500 Défis: 18 Message

Citer : Posté le 08/05/2019 17:16 | #


De même si tu veux mettre un objet, au lieu de mettre 1 ou 0, tu peux mettre 2 pour une porte par exemple ton joueur devrait idéalement avoir un numéro réservé ce qui permet à ton jeu de savoir que le joueur est là

Avec le même raisonnement tu peux aussi mettre un coffre associé au numéro 3, et lorsque tu presse la touche action, et que le perso est à côté d'un coffre hop, tu active un truc pour ouvrir le coffre

D'un point de vue plus concret encore, il faut voir que l'écran de ta machine est plein de pixels (128*64) et que ta matrice elle ne va pas faire 128*64 cases ! Donc il faut diviser ton écran en case qui font par exemple 8*8 pixels de côté, sur chacune de ces cases tu vas afficher un dessins pré-enregistré grâce à une liste ou autre, bref, tu vas balayé ta matrice et afficher le dessin correspondant au numéro Dans ce cas là il faut que tes dessins fassent tous 8*8 pixels
"Ce n'est pas parce que les chose sont dures que nous ne les faisons pas, c'est parce que nous ne les faisons pas qu'elles sont dures." Sénèque

Disperseur Hors ligne Membre Points: 1830 Défis: 1 Message

Citer : Posté le 08/05/2019 17:52 | #


Un autre détail que j'apporte par expérience: tu vas penser pour les collisions qu'il faut ré-afficher toute la map après chaque déplacement, ce qu'il ne faut pas faire car je ne te parle pas des FPS après. Ce qu'il faut faire c'est regarder dans ta matrice le type de case présent à la position que ton joueur quitte et afficher ce qui est présent sur cette case après le déplacement. Comme ça tu n'affiche que ce qui était à ton ancienne position. Avec ceci, tu gagne des FPS
Link-mana Hors ligne Membre Points: 21 Défis: 0 Message

Citer : Posté le 08/05/2019 21:12 | #


Je vous remercie tous les trois de m'avoir répondue si rapidement, je vais m'être en pratique vos conseils et essayer de continuer mon jeu.
Une fois rien, ce n'est rien; deuf fois rien, ce n'est pas beaucoup; mais pour trois fois rien, on peut déjà s'acheter quelque chose et pour pas chère. -Devos.
Disperseur Hors ligne Membre Points: 1830 Défis: 1 Message

Citer : Posté le 08/05/2019 21:21 | #


Pas de problème, n'hésite surtout pas
Link-mana Hors ligne Membre Points: 21 Défis: 0 Message

Citer : Posté le 09/05/2019 06:15 | #


désolé de encore déranger, mais je rencontte un petit proplème avec mon perso. je n' arrive pas à l'effacer de son emplacement précédent.
encore merci pour l'explication des matrices, c'est génial .
Une fois rien, ce n'est rien; deuf fois rien, ce n'est pas beaucoup; mais pour trois fois rien, on peut déjà s'acheter quelque chose et pour pas chère. -Devos.
Kikoodx Hors ligne Ancien labélisateur Points: 3011 Défis: 11 Message

Citer : Posté le 09/05/2019 11:48 | #


Tu peux stocker les coordonnées de ton personnage avant le calcul des déplacements dans deux variables, puis effacer ces deux coordonnées avant de dessiner le personnage.
ouais ouais
Lephenixnoir Hors ligne Administrateur Points: 24229 Défis: 170 Message

Citer : Posté le 09/05/2019 15:47 | #


Une autre option est d'enregistrer la map (sans le personnage) dans une Picture, de la mettre en fond avec BG-Pict puis ensuite de faire Cls à chaque frame.

encore merci pour l'explication des matrices, c'est génial .

Au plaisir !
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Link-mana Hors ligne Membre Points: 21 Défis: 0 Message

Citer : Posté le 09/05/2019 16:24 | #


Non, c'est rien, merci beaucoup pour ce que vous aviez fait, mon jeu avance de plus en plus vite

Ajouté le 09/05/2019 à 17:14 :
est ce qu'il ya moyen d'utiliser directement les captures de sa calculatrice.

Une fois rien, ce n'est rien; deuf fois rien, ce n'est pas beaucoup; mais pour trois fois rien, on peut déjà s'acheter quelque chose et pour pas chère. -Devos.
Lephenixnoir Hors ligne Administrateur Points: 24229 Défis: 170 Message

Citer : Posté le 09/05/2019 17:26 | #


Oui, avec RclCapt. Mais tu ne peux pas dessiner dessus, pour ça il faut utiliser une Picture.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Link-mana Hors ligne Membre Points: 21 Défis: 0 Message

Citer : Posté le 09/05/2019 17:27 | #


ok, merci beaucoup pour ton aide.
Une fois rien, ce n'est rien; deuf fois rien, ce n'est pas beaucoup; mais pour trois fois rien, on peut déjà s'acheter quelque chose et pour pas chère. -Devos.

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 59 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