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 » LINK! (jeu multijoueur)
Pedrobzh Hors ligne Membre Points: 616 Défis: 0 Message

LINK! (jeu multijoueur)

Posté le 28/10/2020 14:56

bonjour aujourd’hui je présente mon projet,
LINK ! est une sorte de party-game ou l'on peux jouer en solo ou a deux avec le câble 3 broche

grace a gint le jeu sera compatible sur la plupart des calculatrices (enfin j'espère )

liste des jeux:
search (annulé)
dans ce jeu, il faudra chercher un objet précis dans un lieux étrange
c'est comme among-us mais au lieux de tuer et survivre, il faudra trouver un objet

press
dans ce jeu vous vous trouverez sur une ligne et il faudra
presser la touche affiché a l’écran comme OPTN ou 6 ou DEL etc...
pour chaque touche pressé vous avancerez de quelques pixels,
le premier que arrive a la bordure droite de l’écran gagnera
morpion
rien de plus basic qu'un morpion

roket
dans ce jeu vous serez dans un tableau fixe avec un lance-roquettes vous vous déplacerez dans 4 sens
mais vous pourriez tirer que a droite ou a gauche le premier coup sera fatal

IMAGES:








VERSIONS:
version test 1
version test 1

https://www.planet-casio.com/Fr/programmes/programme4114-1-link-version-test-1-pedrobzh-jeux-add-ins.html
compatible toute graph monochrome sh4 (graph 35+E II inclus)
après 2 semaine la première version est disponible,
elle contient:
-les déplacements du futur jeu roket
-un debug mode
-des animations
-des mouvements fluides

bon test



Fichier joint


Lephenixnoir En ligne Administrateur Points: 24232 Défis: 170 Message

Citer : Posté le 03/11/2020 09:26 | #


Pedrobzh a écrit :
j'essaye de le faire mais j'arrive pas a convertir mes int en const char * pour les afficher

C'est un problème classique. Et le premier conseil que je peux donner c'est de ne jamais dire "convertir" parce que dès qu'on prononce ce mot magique on se fait aveugler par l'idée que ça doit être simple, automatique, et bijectif. Et souvent ce n'est pas le cas.

Tu as un int qui est un nombre encodé en base 2 sur 4 octets. Tu veux un const char * qui pointe vers une zone de mémoire contenant une représentation textuelle de cet entier en base 10, sur autant d'octets qu'il y a de chiffres, avec un octet 0 à la fin (pour indiquer la fin du texte).

Tu n'es pas obligé de comprendre tout ce qui se passe, mais tu dois remarquer que :
1. On passe de la base 2 à la base 10.
2. Il faut obtenir ou fournir de la mémoire pour stocker le texte.
3. On passe de 4 octets à un nombre variable (entre 2 et 12 selon le nombre de chiffres dans le résultat).

Toutes ces différences te montrent que cette action de représenter un entier par du texte est difficile et donc ça ne peut pas être automatique comme en écrivant juste (const char *)mon_entier (ce qui est faux).

Si tu as déjà codé en C tu sauras que la fonction printf() sait faire cette représentation, avec ses formats qui ressemblent à "x=%d" où le %d se fait remplacer par la représentation textuelle d'en entier.

gint n'as pas de terminal mais il y a une fonction dprint() qui fait pareil, et je t'ai montré à l'instant comment t'en servir pour afficher des entiers :

dprint(1, 50, C_BLACK, "x=%d y=%d", x, y);

le bug est trouvé, la variable anim est dans les 210000

Bravo ! Voilà en quoi ça consiste, le debuggage : vérifier progressivement que tout se comporte correctement jusqu'à isoler quelque chose qui ne marche pas.

Voilà un indice : l'attribut frame de ton animation n'est pas initialisé, donc ton anim_playing.get_data(frame) non plus puisque dans cette méthode tu déclares une variable f mais comme frame ne vaut ni 1, ni 2, ni 3, ni 4, ni 5, tu renvoies f sans l'initialiser, et ça devient ta nouvelle valeur de anim.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Pedrobzh Hors ligne Membre Points: 616 Défis: 0 Message

Citer : Posté le 03/11/2020 13:14 | #


le problème est résolut, il y a juste un problème dans l'image , par contre la fonction pour récupérer la touche bloque le programme

pourtant dans le tutorile ca ne le fesait pas

Ajouté le 03/11/2020 à 13:24 :
le bug d’affichage est résolut! mais pas pour l'input
pensés suicidaires
   90%
Lephenixnoir En ligne Administrateur Points: 24232 Défis: 170 Message

Citer : Posté le 03/11/2020 13:54 | #


getkey() bloque par défaut oui, regarde la partie « Boucle de jeu principale animée » pour voir comment utiliser getkey_opt() pour configurer un timeout.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Pedrobzh Hors ligne Membre Points: 616 Défis: 0 Message

Citer : Posté le 03/11/2020 18:25 | #


c'est bon, ça arrête de bloquer, mais la répétition des touche marche pas
int opt = GETKEY_DEFAULT & ~GETKEY_REP_ARROWS & GETKEY_MENU;

pensés suicidaires
   90%
Lephenixnoir En ligne Administrateur Points: 24232 Défis: 170 Message

Citer : Posté le 03/11/2020 18:33 | #


C'est normal, fais bien attention à ce que tu as écrit. Il y a deux erreurs, une sur les opérateurs que tu utilises et une sur le fait que tu désactives explicitement les répétitions.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Pedrobzh Hors ligne Membre Points: 616 Défis: 0 Message

Citer : Posté le 03/11/2020 18:58 | #


je pense que c'est bon comme ça
c'est quoi la première erreur?
int opt = GETKEY_DEFAULT & GETKEY_REP_ARROWS & GETKEY_MENU;

pensés suicidaires
   90%
Lephenixnoir En ligne Administrateur Points: 24232 Défis: 170 Message

Citer : Posté le 03/11/2020 19:01 | #


Tu ne devrait pas utiliser &.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Pedrobzh Hors ligne Membre Points: 616 Défis: 0 Message

Citer : Posté le 03/11/2020 21:01 | #


&&, ||, | ?
c'est peu être un des trois?

Ajouté le 03/11/2020 à 21:02 :
après tests (compilation) je pense que c'est le |
pensés suicidaires
   90%
Kbd2 Hors ligne Membre Points: 269 Défis: 0 Message

Citer : Posté le 04/11/2020 00:49 | #


When combining flags, always use the bitwise OR operator |. To disable a flag use & ~FLAG.
Pedrobzh Hors ligne Membre Points: 616 Défis: 0 Message

Citer : Posté le 04/11/2020 07:19 | #


ah ok j'ai compris

Ajouté le 04/11/2020 à 13:50 :
j'ai transféré le programme sur la calculatrice mais la touche shift ne marche plus

Ajouté le 04/11/2020 à 14:05 :
j'hésite a changer de touche principale

Ajouté le 04/11/2020 à 14:58 :
j'ai changé de touche et ça marche
mais la répétition des touches ne marche toujours pas
pensés suicidaires
   90%
Lephenixnoir En ligne Administrateur Points: 24232 Défis: 170 Message

Citer : Posté le 05/11/2020 09:37 | #


Seules les touches fléchées sont répétées par défault. L'option GETKEY_REP_ALL sert à répéter tout le monde.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Pedrobzh Hors ligne Membre Points: 616 Défis: 0 Message

Citer : Posté le 05/11/2020 16:19 | #


j'utilise les flèches mais ça marche pas

Ajouté le 05/11/2020 à 16:33 :
nouvelle version!

Ajouté le 07/11/2020 à 14:16 :
petit découragement, je mets le développement en pause, si vous tenez a que je continue, dites-le ici
pensés suicidaires
   90%
Potter360 En ligne Rédacteur Points: 1221 Défis: 2 Message

Citer : Posté le 08/04/2021 20:49 | #


Salut ! Est ce que tu as le code du jeu ?
Pour un portage sur G90 !
Globalement, coder. Mal, mais coder.
Pedrobzh Hors ligne Membre Points: 616 Défis: 0 Message

Citer : Posté le 09/04/2021 13:54 | #


eeeee

Ajouté le 09/04/2021 à 13:57 :
le projet est "abondonné"

mais je vais le mettre sur le gitea
pensés suicidaires
   90%
Potter360 En ligne Rédacteur Points: 1221 Défis: 2 Message

Citer : Posté le 09/04/2021 14:08 | #


Merci !
Globalement, coder. Mal, mais coder.
Pedrobzh Hors ligne Membre Points: 616 Défis: 0 Message

Citer : Posté le 09/04/2021 14:18 | #


c'est bon, il dois être sur les récents
pensés suicidaires
   90%
Potter360 En ligne Rédacteur Points: 1221 Défis: 2 Message

Citer : Posté le 09/04/2021 18:46 | #


Merci, cependant je comprends pas ou tu utilises le cable 3 pin dans le code...
Globalement, coder. Mal, mais coder.
Lephenixnoir En ligne Administrateur Points: 24232 Défis: 170 Message

Citer : Posté le 09/04/2021 18:49 | #


Nulle part car ce n'était qu'un prototype. gint n'a pas de driver série d'ailleurs (je ne l'ai pas dit avant sur le topic parce que je voulais pas couper le projet, je m'imaginais que j'aurais le temps de voir venir et de coder le driver au bon moment).
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Potter360 En ligne Rédacteur Points: 1221 Défis: 2 Message

Citer : Posté le 09/04/2021 18:50 | #


Ok merci quand même !
Globalement, coder. Mal, mais coder.

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