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

Mario in Casioworld

Posté le 15/10/2014 13:54

Hola ! Mario n'est-il pas espagnol ?



Je continue le développement de mon Mario :

Le moteur du jeu ressemble beaucoup plus à un mario et est beaucoup plus agréable.
On peut très facilement rajouter ou enlever des types de blocs en rajoutant/enlevant son effet dans un sous programme ;).
Le code est aussi beaucoup moins bordélique, plus clair, plus simple et est en train d'être commenté.


Je passe beaucoup de temps à l'optimiser :

Après plusieurs semaines, je suis passé du premier moteur de jeu qui pesait un nombre incalculable d'octet à un moteur de jeu de 2000 octets environ (incomplet) puis à un autre qui me permettait de ne pas mettre de compilation et qui pesait 1000 octets (incomplet et lent), à encore un autre de 1400 octets (presque complet mais un tout petit peu lent), à un dernier qui ne pèse que 1100 octets en utilisant un peu l'astuce de Lephe sur le GetKey() en C, qui est rapide (je l'ai ralenti) mais qui nécessite une petite décompilation comme le premier et l'avant dernier.


Mais il me reste encore beaucoup de choses à faire :

- programmer tous les blocs différents
- corriger un tout petit souci d'affichage
- créer toutes les maps bien sûr
- refaire le menu (ça c'est presque bon)


Pour participer au développement du jeu


Comme vous l'avez vu dans une RDP et verrez sûrement dans d'autres, je développe un éditeur de niveau rien que pour vous ! (Et pour moi aussi un peu quand même )


J'espère que vous aimerez ce jeu et à la prochaine !


La première version pour les 10 ans de PC

Les anciens posts
Cliquer pour enrouler
Message originel
Cliquer pour enrouler
Salut tout le monde ! Je présente ici mon projet pour le concours :D.
Comme vous l'avez dans le titre c'est un mario. Il sera codé en basic mais il y aura des trucs vraiment cools : le scrolling et la génération complètement customisable ! Mais si je poste le topic, c'est pour demander votre aide.
Pour l'instant ce n'est qu'un tout petit niveau qui sert de test
-Problème :
*Je trouve le jeu trop lent malgré qu'il soit BEAUCOUP plus rapide que mes premières version donc j'aimerai un peu d'aide pour accélérer tout ça
*J'ai un problème lors de la collision avec les pics (codé -2), des fois cela m'affiche syntaxe error. Pourquoi ?
Le code :
//Avant ça il y a le menu et l'affectation des chiffres aux matrices et caractères aux Str mais voici le système général  ;)
0ãXÙ
6ãBÙ
1ãEÙ
1ãFÙ
0ãPÙ
List 20[3]ãNÙ
DoÙ
BãDÙ
B+1ãBÙ
Mat A[B,X+1]>0×DãBÙ
Mat A[B,X+1]=4×BreakÙ
If Mat A[D,X+1]>0Ù
Then F=1×X-1ãXÙ
F=2×X+1ãXÙ
DãBÙ
IfEndÙ
Mat A[B-1,X+1]=3 Or Mat A[B-1,X+1]=2×Prog "+MARIO"Ù
Mat A[B,X+1]=-1×Prog "+MARIO"Ù
Locate 1,1,StrRotate(Str 1,X)Ù
Locate 1,2,StrRotate(Str 2,X)Ù
Locate 1,3,StrRotate(Str 3,X)Ù
Locate 1,4,StrRotate(Str 4,X)Ù
Locate 1,5,StrRotate(Str 5,X)Ù
Locate 1,6,StrRotate(Str 6,X)Ù
Locate 1,7,StrRotate(Str 7,X)Ù
N=1×Locate 5,B,"#E531"Ù
N=2×Locate 5,B,"#E558"Ù
N=3×Locate 5,B,"#E59C"Ù
Locate 1,1,PÙ
Mat A[B,X+1]=-2×BreakÙ
DoÙ
If E=3 And Getkey=78Ù
Then Mat A[B-1,X+1]=0×B-1ãBÙ
Mat A[B-1,X+1]=0×B-1ãBÙ
Mat A[B-1,X+1]=0×B-1ãBÙ
1ãEÙ
IfEndÙ
Getkey=27 Or Getkey=38×BreakÙ
B<1×1ãBÙ
N=1×Locate 5,B,"#E531"Ù
N=2×Locate 5,B,"#E558"Ù
N=3×Locate 5,B,"#E59C"Ù
BÈD×Locate 5,D," "Ù
Locate 1,1,PÙ
Mat A[B,X+1]=-2×BreakÙ
BãDÙ
B+1ãBÙ
Mat A[B,X+1]>0×DãBÙ
Mat A[B-1,X+1]=3×Prog "+MARIO"Ù
B>7×BreakÙ
E=5×3ãEÙ
E=4×5ãEÙ
E=2×4ãEÙ
E=1×2ãEÙ
LpWhile 1Ù
If Getkey=27Ù
Then X+1ãXÙ
1ãFÙ
IfEndÙ
If Getkey=38Ù
Then X-1ãXÙ
2ãFÙ
IfEndÙ
X<0×0ãXÙ
B>7×BreakÙ
Mat A[B,X+1]=4×BreakÙ
Mat A[B,X+1]=-2×BreakÙ
LpWhile 1


Les variables : A et C : coordonnée x du perso
B et D : coordonnée y du perso
X position du Strrotate(
F sert à savoir si le perso vient de la droite ou la gauche
E est la variable d'attente pour pouvoir ressauter

Le logiciel FA124 efface des lignes de code sans raison et cela m'empêche de continuer mon jeu donc j'ai peur de n'avoir que la map de test pour le concours

Une aide de votre part me serai plus qu'agréable si vous le pouvez .

Un énorme merci à Remiweb pour son système de scrolling juste :aaah: (c'est le mot, il est magique ce scrolling)

Remerciement total à ceux qui voudront bien m'aider et ceux qui m'ont déjà aidé

GROSSE MIS A JOUR !! Ajout de 3 nouveaux blocs ainsi que la monnaie et le drapeau de fin. ET SURTOUT Les menus ultra stylé 8)

Second message originel
Cliquer pour enrouler
Ayant fait un code moisi, lent, brouillon,... Enfin pas bien quoi j'ai refait entièrement le jeu (sauf les menus) donc je ne pourrai malheureusement pas présenter le projet tel que je voulais au concours :(. Vous aurez juste la version béta avec un niveau

Mais je peux dorénavant vous présenter le code refait plus rapide plus optimisé, etc, etc

ICI

ATTENTION LE PROGRAMME EN TELECHARGEMENT NE FONCTIONNE PAS POUR CE FAIRE IL FAUT CHANGER LA VALEUR DE LA LISTE 20[2] QUI EST EGALE A ZERO EN 1 ET CECI A CHAQUE FOIS QUE VOUS RESETEREZ CETTE LISTE

Merci de votre compréhension


Mais pour éviter ce problème télécharger le fichier joint

Bonne chance aux autres participants et amusez-vous bien avec mon jeu !

3ème post (ça commence à faire)
Cliquer pour enrouler

Hey !


Bon,depuis le temps ce jeu aurait du être finis ? Maaais mon RPG m'a gavé de la programmation et une personne très importante est entré dans ma vie. Je vais pas vous écrire une histoire non plus.


Bref, tout ça pour dire que je pense à le reprendre et à l'avancer, je ne dis pas que je le finirai mais il y des chances. Car vu que mes soirées sont de moins en moins constructives je ferai mieux de les passer à programmer

C'est tout pour moi ciao les casiofans !


~ [Dernière mise à jour le 02/02/2016] ~


Fichier joint


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

Citer : Posté le 18/10/2014 11:17 | #


Non je ne pense pas que ça fonctionne car un bout de la chaîne serait en dehors de l'écran : donc erreur
Remiweb Hors ligne Membre de CreativeCalc Points: 1040 Défis: 32 Message

Citer : Posté le 18/10/2014 13:42 | # | Fichier joint


Il n'y a aucun problème si la chaîne est trop longue, je t'assure

Edit : Tiens je t'ai fait un exemple (en fichier joint).
Tweaks : ||||| ||||
Matt36230 Hors ligne Membre Points: 1888 Défis: 0 Message

Citer : Posté le 18/10/2014 14:31 | #


Trop bien trop classe !! Et c'est super rapide mais pour les collisions je fait comment psk la je voit pas mais sinon genre pour explorer le niveau c'est parfait !!!!!
Remiweb Hors ligne Membre de CreativeCalc Points: 1040 Défis: 32 Message

Citer : Posté le 18/10/2014 14:44 | #


Tu peux tester si le caractère d'une des Str est un espace (donc du vide) avec la fonction "StrCmp".

Mais je pense que le mieux c'est de créer une matrice ou des listes pour chaque niveau (à charger en même temps quoi).
Par exemple avec une matrice chaque case correspondrait à un bloc à l'écran.
Si tu fais 0=vide, 1=pièce, 2=bloc il suffit de regarder si c'est ≤1 pour que le personnage puisse avancer et si c'est 1 il gagne une pièce...
Tweaks : ||||| ||||
Lephenixnoir En ligne Administrateur Points: 24145 Défis: 170 Message

Citer : Posté le 18/10/2014 14:46 | #


Ça risque de bouffer pas mal en mémoire la matrice non ?
Mon graphe (24 Mars): (gint#27 ; (Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; ...) || (shoutbox v5 ; v5)
Remiweb Hors ligne Membre de CreativeCalc Points: 1040 Défis: 32 Message

Citer : Posté le 18/10/2014 14:47 | #


Si tu n'utilises qu'une matrice et 7 chaînes, qui sont chargée seulement au lancement d'un niveau, ça devrait le faire nan ?
Tweaks : ||||| ||||
Matt36230 Hors ligne Membre Points: 1888 Défis: 0 Message

Citer : Posté le 18/10/2014 14:50 | #


Oui ça le ferait je pense !
Mais pour mettre dans les matrices si c'est 1 bloc par case la matrice va être ENORME
Lephenixnoir En ligne Administrateur Points: 24145 Défis: 170 Message

Citer : Posté le 18/10/2014 15:20 | #


Ils font combien tes niveaux ? S'ils sont trop gros, tu peux toujours les diviser, stopper le scroll à un endroit et les reprendre à un autre (en gros tu sors de l'écran par la droite et tu reviens par la gauche : changement de zone).
Mon graphe (24 Mars): (gint#27 ; (Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; ...) || (shoutbox v5 ; v5)
Remiweb Hors ligne Membre de CreativeCalc Points: 1040 Défis: 32 Message

Citer : Posté le 18/10/2014 15:22 | #


Pour calcraft (enfin la dernière version que je n'ai jamais achevé ) je mettais 10 blocs dans une case de matrice !
Tweaks : ||||| ||||
Matt36230 Hors ligne Membre Points: 1888 Défis: 0 Message

Citer : Posté le 18/10/2014 15:24 | #


C'est bon pour la matrice, ce ne sera pas trop gros mais pour la condition de la collision c'est pas ça :oops:. J'ai update le topic avec le nouveau code
Remiweb Hors ligne Membre de CreativeCalc Points: 1040 Défis: 32 Message

Citer : Posté le 18/10/2014 15:25 | #


C'est pas Mat A[X+1,B] mais Mat A[B,X+1], on met la position verticale avant celle horizontale.
Service après vente ultra rapide mwahaha
Tweaks : ||||| ||||
Matt36230 Hors ligne Membre Points: 1888 Défis: 0 Message

Citer : Posté le 18/10/2014 15:27 | #


Mddr la petite phrase et merci de cette précision ! Je suis honteux de m'être trompé la dessus
Remiweb Hors ligne Membre de CreativeCalc Points: 1040 Défis: 32 Message

Citer : Posté le 18/10/2014 15:29 | #


Si tu met 10 blocs dans une case de matrice tu diviseras son poids par 10 (1200 octets au lieu de 12000 pour un niveau de 128*7) et tu réduiras aussi largement le poids de ton code qui génère la matrice.
Mais il faut un petit code un peu plus compliqué pour pouvoir utiliser ça...
Tweaks : ||||| ||||
Matt36230 Hors ligne Membre Points: 1888 Défis: 0 Message

Citer : Posté le 18/10/2014 15:32 | #


D'accord donc je ne vais pas essayé Merci énormément pour ton aide Remiweb si je peux je te revaudrai ça, si tu as besoin demande moi.
Je te dois énormément pas que pour ce jeu pour de futurs jeux aussi
Remiweb Hors ligne Membre de CreativeCalc Points: 1040 Défis: 32 Message

Citer : Posté le 18/10/2014 15:35 | #


Oulà, mais de rien

Ajouté le 24/10/2014 à 14:19 :
Pour le problème de pic : dans la matrice, qu'est ce qui correspond à un bloc solide ?
Je ne sais pas comment ça fonctionne mais si j'étais toi j'aurais fait en sorte que les blocs "pic" soient traversables, et que si on se trouve dedans on meurt (juste après avoir bougé, avant que ça n'affiche le perso dedans).
Tweaks : ||||| ||||
Matt36230 Hors ligne Membre Points: 1888 Défis: 0 Message

Citer : Posté le 24/10/2014 14:20 | #


Les pics sont traversables, il ont le numéro -2 et tous les numéros strictement en dessous de 1 sont traversables et comme je l'ai dit dans le topic cela ne fonctionne pas alors que je suis à la place du pic.
Remiweb Hors ligne Membre de CreativeCalc Points: 1040 Défis: 32 Message

Citer : Posté le 24/10/2014 14:32 | #


J'ai juste changé le "Mat A[B,X+1]=(-2)⇒Break" en "Mat A[B,X+1]=-2⇒Break" (avec le moins de la touche à droite de EXE) et ça à l'air de marcher

Ajouté le 24/10/2014 à 14:32 :
Ah en faite non, des fois ça plante, wtf...
Tweaks : ||||| ||||
Matt36230 Hors ligne Membre Points: 1888 Défis: 0 Message

Citer : Posté le 24/10/2014 14:34 | #


Ta vu et quand tu arrives par le haut du pic (tu sautes dessus) il ne se passe rien
Remiweb Hors ligne Membre de CreativeCalc Points: 1040 Défis: 32 Message

Citer : Posté le 24/10/2014 14:38 | #


C'est normal que je bug aussi au premier mur ? Parfois je peux passer au dessus en sautant, parfois non...
Tweaks : ||||| ||||
Matt36230 Hors ligne Membre Points: 1888 Défis: 0 Message

Citer : Posté le 24/10/2014 14:40 | #


La ça dépend de ta vitesse à appuyer sur les touches si tu vas vites ça passe sinon faut recommencer mais si je mets pour que ce soit plus simple le perso va voler au lieu des sauter (il va sauter très très haut quoi)

Merci de ton aide Remiweb et à toi aussi fab (sur le chat) car grâce à votre aide et en cherchant un peu j'ai trouvé pourquoi cela ne fonctionnait pas :D. En fait dans la loop de déplacement du perso (saut et avancement) il manquait juste un Mat A[B,X+1]=-2⇒Break et surement que d'enlever les parenthèses et de réécrire le bon moins a jouer pour arrêter les syntaxe error. Merci

Edit du post principal après 14 mois ! Mon dieu que c'est long

4 ème edit du post principal ! Ca se concrétise les amis ça se concrétise




Ajouté le 02/02/2016 à 19:51 :

Je vous redonne des petites nouvelles
Ca avance bien depuis quelques jours et le moteur à surtout subi une énorme optimisation, il ne pèse plus que 650 octets !
J'ai aussi mis à jour le post principal. Aller jeter un oeil si vous voulez être au courant de l'avancement précis du jeu

Ajouté le 07/02/2016 à 12:42 :
Et hop souci d'affichage réglé et vitesse max atteinte 8)
(et oui on ne peut pas aller plus vite que l'affichage des str )
Kirafi Hors ligne Membre Points: 2180 Défis: 10 Message

Citer : Posté le 07/02/2016 14:32 | #


Haha si on peut aller plus vite que l'affichage Str , mais c'est particulier et pas adaptable à ce genre de jeu, mais pour un jeu genre Falldown en scrolling horizontal, tu peux afficher direct avec les "..." et quelques conditions .
iPod
Pour des parties rapides
Jusqu'où pourras-tu aller dans ce jeu "partie rapide" qu'est Dextris (élu Jeu Du Mois)
Pourras-tu survivre plus de 20 secondes dans ce fameux tunnel appelé Graviton
Rebondis entre les murs en évitant les piques dans SpikeBird
Pourras-tu éviter de te faire écraser dans FallBlocs (élu Jeu Du Mois)
Autres
Franchement ils valent le coups
Deviens l'amiral de la marine dans SeaRush (jeu concours) (élu Jeu Du Mois)
La version 2048 tactile amélioré au plus haut point : 2048 Delux !
Pars à la recherche des morceaux d'étoile dans Lumyce (élu Jeu Du Mois)

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