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 » Idée pour Mario
Matt36230 Hors ligne Membre Points: 1888 Défis: 0 Message

Idée pour Mario

Posté le 02/01/2016 14:30

Salut à tous !

Je me suis remis à programmer mon Mario. Le moteur est presque finit et est 100% jouable !


Ca vous dit de voir vos créations dans mon jeu ? Si oui donnez moi vos meilleurs idées de blocs à rajouter et je me ferai un plaisir des les inclure !




Par contre je ne peux malheureusement pas faire de bloc qui bouge

Les blocs existants
Il sont tous en train d'être ajouté
Les blocs durs normaux
Les blocs [ ? ] : une surprise s'y cache
Les briques : cassables avec la tête
Le bloc qui disparaît après être passé dessus : j'aime pas faire demi tour
Le bloc qui fait apparaître une liane quand on s'est cogné dessus : hein ? (merci Positon)
Le vide : il n'y a pas grand chose
Les pièces : Make it rain !
Les pics : ça fait mal
Le bloc qui devient dur après l'avoir frôlé : attend-tend-tend what ?!
Les lianes : on peut grimper dessus
Le drapeau final : On gagne quand on saute dessus étrange pratique que de se frotter à une barre pour encaisser de l'argent
Le trampoline : on saute plus haut, et si on saute en même temps que de sauter dessus et bien on saute encooore plus haut : boing boing boing





Je vous
remercie beaucoup
possiblement avec un bisous masculin sur la fesse gauche
de faire avancer mon jeu !





Pour se tenir au courant et télécharger la version pour les 10 ans de PC


Matt36230 Hors ligne Membre Points: 1888 Défis: 0 Message

Citer : Posté le 14/02/2016 17:01 | #


Je ne suis pas du tout allergique au C Mais j'ai pas envie de programmer un Mario en add-in
mdr bien joué !

En basic 3 à 4 c'est le max malheureusement. Et Lephe il parlait du basic
Et c'est vrai que l'absence du multi key est plutôt génante mais on s'y fait.

Lephe, GetKey() stop le programme, comment tu veux mettre un timer ?
Ou avec la fonction timer justement, comment tu "sors" du GetKey ?
Lephenixnoir Hors ligne Administrateur Points: 24575 Défis: 170 Message

Citer : Posté le 14/02/2016 17:05 | #


Matt3623 a écrit :
Lephe, GetKey() stop le programme, comment tu veux mettre un timer ?
Ou avec la fonction timer justement, comment tu "sors" du GetKey ?

Tu y es presque : lorsque tu configures un timer, tu lui indiques une fonction. Et chaque fois que le timer arrive à expiration (il se recharge automatiquement), la fonction est appelée. Mais elle est appelée que tu sois dans un GetKey() ou non.
Imagine que tu lances un timer avec un délai d'une seconde et que tu appelles GetKey(), mais sans jamais appuyer sur une touche. Ta fonction sera appelée toutes les secondes et pourra mettre à jour le contenu de l'écran, mais GetKey() ne s'arrêtera jamais.

J'ai utilisé ça dans mon jeu pour le CPC, c'est pas compliqué à utiliser Par contre si on appuie sur [MENU], la fonction est quand même appelée donc on peut re-dessiner par-dessus le menu... il faudrait arranger ça avec un wrapper type GetKeyWait() ^^'
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Matt36230 Hors ligne Membre Points: 1888 Défis: 0 Message

Citer : Posté le 14/02/2016 17:08 | #


Je comprenais tout, j'étais content et je me questionnais sur la façon dont j'allais intégré ça, jusqu'au dernier paragraphe ou j'ai rien compris Mais un kill timer ça ne fonctionnerait pas ?

Merci de cette "astuce" Lephe je vais en faire bon usage
Lephenixnoir Hors ligne Administrateur Points: 24575 Défis: 170 Message

Citer : Posté le 14/02/2016 17:10 | #


Ben si un kill timer ça fonctionnerait, sauf que la retour au menu s'effectue avant l'arrêt de GetKey()... ^^'
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Matt36230 Hors ligne Membre Points: 1888 Défis: 0 Message

Citer : Posté le 14/02/2016 17:11 | #


On peut faire un IsKeyDown() pour savoir si menu est appuyé et la on kill.
Lephenixnoir Hors ligne Administrateur Points: 24575 Défis: 170 Message

Citer : Posté le 14/02/2016 17:47 | #


Non, on ne peut pas. Je n'ai pas été assez précis, le retour au menu se fait à l'intérieur de GetKey(). GetKey() ne s'arrête que si on revient dans l'application.
Non, il faudrait utiliser GetKeyWait() et récupérer la touche MENU manuellement, stopper le timer, envoyer MENU dans le key buffer et appeler GetKey(). C'est le plus simple et c'est le mieux !
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Matt36230 Hors ligne Membre Points: 1888 Défis: 0 Message

Citer : Posté le 14/02/2016 17:49 | #


Que fait GetKeyWait() ?
key buffer ?

Pourquoi cela ne fonctionnerai pas si on le met dans la fonction du timer ?
Casio-jawa Hors ligne Membre Points: 138 Défis: 0 Message

Citer : Posté le 14/02/2016 17:51 | #


j'espere que tu n'oubliera pas de faire l'anneau rouge de mario ds
le C-Engine c'est fantastique
Lephenixnoir Hors ligne Administrateur Points: 24575 Défis: 170 Message

Citer : Posté le 14/02/2016 17:51 | #


GetKeyWait() c'est une version plus évoluée de GetKey(). En gros, elle permet de récupérer la touche MENU comme les autres touches au lieu de renvoyer au menu (paramétrable), et elle peut s'arrêter automatiquement au bout d'un certain délai (paramétrable).

Matt36230 a écrit :
Pourquoi cela ne fonctionnerai pas si on le met dans la fonction du timer ?

Je ne comprends pas la question... ^^'
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Matt36230 Hors ligne Membre Points: 1888 Défis: 0 Message

Citer : Posté le 14/02/2016 18:19 | #


Aaaah mais c'est super ça !

Si le IsKeyDown on le met dans la fonction timer, pourquoi on ne pourrait pas détecter le retour au menu et donc kill le timer ?

Ajouté le 14/02/2016 à 18:20 :
Je vais voir si je peux me rajouter ( pour les pièces ça va aller mais pour le timer, ça va être plus hard)
Lephenixnoir Hors ligne Administrateur Points: 24575 Défis: 170 Message

Citer : Posté le 14/02/2016 18:26 | #


Matt36230 a écrit :
Aaaah mais c'est super ça !

Oui mais attention la fonction de fxlib GetKeyWait() est broken, elle ne fonctionne pas. Il faut utiliser le syscall à la place, qui fait pareil et qui fonctionne bien.

Matt36230 a écrit :
Si le IsKeyDown on le met dans la fonction timer, pourquoi on ne pourrait pas détecter le retour au menu et donc kill le timer ?

Dans le principe déjà c'est moche, parce que ça veut dire qu'on n'arrête le timer que, disons, une demi-seconde après le retour au menu. Et puis de toute façon si l'utilisateur relâche la touche entre-temps (ce qui en une seconde est très probable), c'est perdu. Non, ça ne pourra pas fonctionner.

Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Matt36230 Hors ligne Membre Points: 1888 Défis: 0 Message

Citer : Posté le 14/02/2016 18:28 | #


Je ne sais pas ce qu'est un syscall

Ah oui pas faux mince
Lephenixnoir Hors ligne Administrateur Points: 24575 Défis: 170 Message

Citer : Posté le 14/02/2016 19:00 | #


Un syscall (raccourci pour system call) est un appel système pour une fonction donnée. Le système sait faire un certain nombre de choses, et de nombreuses fonctions de fxlib sont en fait dans le système (et pas dans la lib). Utiliser un syscall, c'est demander au système d'effectuer l'une des tâches qu'il sait faire.

Par exemple, il y a des syscalls pour la plupart des choses dans fxlib : rafraîchir l'écran, accéder au système de fichiers, récupérer l'adresse de la vram... et la fonction GetKeyWait().
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Matt36230 Hors ligne Membre Points: 1888 Défis: 0 Message

Citer : Posté le 14/02/2016 19:02 | #


D'accord j'ai compris Comment les utilise-t-on ?

Et connait-on ce fameux syscall (pour getkeywait)?
Lephenixnoir Hors ligne Administrateur Points: 24575 Défis: 170 Message

Citer : Posté le 14/02/2016 19:14 | #


Il faut utiliser un peu d'assembleur, ou alors du code C qui fait de l'assembleur. Regarde dans ML, ou le tuto mais qui date.

Oui, GetKeyWait() est connu, c'est le syscall 0x247.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Matt36230 Hors ligne Membre Points: 1888 Défis: 0 Message

Citer : Posté le 14/02/2016 19:56 | #


Ok je vais voir ça merci

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