Forums Casio - Projets de programmation

Index du Forum > Projets de programmation > UnderCasio
Lepianoteur
Hors ligne
Membre
Points: 138
Défis: 0
Message
Posté le 05/11/2018 21:16

UnderCasio :

Voilà je me lance dans le projet de refaire le fameux jeu UNDERTALE sur casio Je suis loin d'être un pro mais je pense que je vais gagner de l'expérience au fur et à mesure et que je pourrais réussir à recréer en parti le jeu Mais pour ça je pense avoir besoins de pas mal d'aide

Pour ce qui connaisse pas UNDERTALE *hm se serais louper quelque chose* c'est un RPG un peu du style des premiers Zelda.

Donc voilà j'expose déjà mon premier problème, est-ce que le Basic Casio est assez rapide ?

Pour savoir ça j'ai déjà commencé à refaire l'interface de combat, enfin vraiment pas beaucoup mais bon juste pour avoir un ordre d'idée on va dire. Dans l'interface de combat, on contrôle un cœur qui ce déplace dans une zone défini.
J'ai donc créer le sprite du cœur ( grâce au programme de Matt36230 "Super Drawstat ") et j'ai fais en sorte qu'on puisse le déplacer avec le replay.
Cependant c'est la première fois que j'utilise le drawstat donc je ne sais pas si j'ai fais comme il faut pour optimiser la vitesse je trouve ça vraiment lent et si je ne peux pas faire en sorte d'accélérer la vitesse du cœur je vais me tourner vers le C.

voilà le programme :

{57,56,55,55,56,57,58,59,60,61,61,60,59,58}→List 1
{19,20,21,22,23,23,22,23,23,22,21,20,19,18}→List 2
14→Tθmax
Graph(X,Y)=(List 1[T],List 2[T])
Lbl 1
Getkey→E
E=27⇒Cls
E=28⇒Cls
E=38⇒Cls
E=37⇒Cls
E=27⇒List 1+1→List 1
E=38⇒List 1-1→List 1
E=28⇒List 2+1→List 2
E=37⇒List 2-1→List 2
Graph(X,Y)=(List 1[T],List 2[T])
Goto 1



Donc voilà je me demandais si j'avais bien fais et si je pouvais l'optimiser pour afficher plus vite le déplacement du sprite
Je met aussi le programme en .G1M dans le fichier joint

Fichier joint



Pages: 1, 2, 3 | Suivante

Kikoodx
Hors ligne
Membre
Points: 707
Défis: 7
Message
Citer : Posté le 05/11/2018 21:26 | #
C'est ambitieux ! Bonne chance avec ça
Déjà vire ce
Lbl 1
Goto 1

Ma signature c'est un troll
Pense à supprimer les parenthèses et crochets en fin de ligne, ça fait gagner un peu de place
Et tes opérations de listes sont une mauvaise idée, ça va ralentir le programme quand il y aura des entrées, préfère à cela deux variables de position (I et J traditionnellement)
Ce qui donne ça (je te laisse calibrer les valeurs des Listes 1 et 2) :
0→I
0→J
{57,56,55,55,56,57,58,59,60,61,61,60,59,58→List 1
{19,20,21,22,23,23,22,23,23,22,21,20,19,18→List 2
14→Tθmax
Graph(X,Y)=(List 1[T],List 2[T]
While 1
Getkey→E
E=27⇒I+1→I
E=38⇒I-1→I
E=28⇒J+1→J
E=37⇒J-1→J
Cls
Graph(X,Y)=(List 1[T]+I,List 2[T]+J
WhileEnd

Et pourquoi avoir mis le Cls en condition ?
Je te conseille aussi d'évider ton cœur et de le simplifier le plus possible pour augmenter sa vitesse d'affichage

EDIT : oups j'avais oublié de virer le label ^^'
----------------------------------
Lbl 1
Goto 1


Une boucle optimisée
Lepianoteur
Hors ligne
Membre
Points: 138
Défis: 0
Message
Citer : Posté le 05/11/2018 21:31 | #
Merci pour cette réponse complète oui j'ai vraiment pas beaucoup de connaissance sur tout ce qui hm existe parce que j'ai appris moi même avec ce que j'ai trouvé dans des programme que j'avais et le Cls en condition c'était pour qu'il me rafraichisse pas l'écran tout le temps parce que je trouvais ça pas beau bonne idée pour le cœur et que signifie Isz ? tout le reste je comprend mais ça non
----------------------------------
*pat pat pat pat pat pat tap tap pat* je pianote
Kikoodx
Hors ligne
Membre
Points: 707
Défis: 7
Message
Citer : Posté le 05/11/2018 21:36 | #
Lepianoteur a écrit :
Merci pour cette réponse complète oui j'ai vraiment pas beaucoup de connaissance sur tout ce qui hm existe parce que j'ai appris moi même avec ce que j'ai trouvé dans des programme que j'avais et le Cls en condition c'était pour qu'il me rafraichisse pas l'écran tout le temps parce que je trouvais ça pas beau bonne idée pour le cœur et que signifie Isz ? tout le reste je comprend mais ça non

Isz et Dsz sont deux commandes qui respectivement incrémentent et décrémentent de un la variable en paramètre
(Elles se trouvent dans [SHIFT]→[VARS]→[F3])
Mais attention, elles sautent la commande suivante si le nombre tombe à 0 ! (J'avais oublié ça ^^')

Ajouté le 05/11/2018 à 21:43 :
Du coup j'ai corrigé mon code pour éviter ce type d'erreur
----------------------------------
Lbl 1
Goto 1


Une boucle optimisée
Lepianoteur
Hors ligne
Membre
Points: 138
Défis: 0
Message
Citer : Posté le 05/11/2018 21:53 | #
Merci pour cette précision bon j'ai testé mais c'est malheureusement trop lent encore je crois que je vais être obliger de passer par le C mais ne t'en fais pas ce que tu m'as expliquer me servira beaucoup maintenant merci encore
----------------------------------
*pat pat pat pat pat pat tap tap pat* je pianote
Kikoodx
Hors ligne
Membre
Points: 707
Défis: 7
Message
Citer : Posté le 05/11/2018 22:03 | #
Lepianoteur a écrit :
Merci pour cette précision bon j'ai testé mais c'est malheureusement trop lent encore je crois que je vais être obliger de passer par le C mais ne t'en fais pas ce que tu m'as expliquer me servira beaucoup maintenant merci encore

Tu n'es jamais obligé de passer par le C !
C'est un choix, pas une obligation, important de le retenir
C'est trop lent ? Tu as réduit ton code pour le cœur ? Parce que là pauvre calto...
Elle doit avoir mal... au cœur BADUM

Ajouté le 05/11/2018 à 22:05 :
Bon après c'est vrai que reproduire le moteur de combat fidèlement en Basic c'est impossible...
Passe au C si tu veux une copie fidèle.
----------------------------------
Lbl 1
Goto 1


Une boucle optimisée
Lepianoteur
Hors ligne
Membre
Points: 138
Défis: 0
Message
Citer : Posté le 05/11/2018 22:26 | #
alors ce cœur et bien oui je l'ai réduit mais ça rend pas comme je veux, elle souffre toujours *pas loin de l'arrêt cardiaque même * et je l'ai dis d'un air triste mais le C m'intéresse et je pense que si je veux avoir une reproduction des plus fidèles ce serais le mieux ;p

Donc je pense à partir de maintenant essayer de faire ça en C
----------------------------------
*pat pat pat pat pat pat tap tap pat* je pianote
Kikoodx
Hors ligne
Membre
Points: 707
Défis: 7
Message
Citer : Posté le 05/11/2018 22:30 | #
OK, le choix est fait ! Bonne chance avec ce projet
----------------------------------
Lbl 1
Goto 1


Une boucle optimisée
Lepianoteur
Hors ligne
Membre
Points: 138
Défis: 0
Message
Citer : Posté le 05/11/2018 22:39 | #
ouais encore merci de m'avoir expliqué pour mon programme

Ajouté le 05/11/2018 à 22:54 :
Bon je vais essayer de faire la même chose que j'ai fait mais en C et je mettrais à jour ce topic des que j'aurais réussi
----------------------------------
*pat pat pat pat pat pat tap tap pat* je pianote
Lepianoteur
Hors ligne
Membre
Points: 138
Défis: 0
Message
Citer : Posté le 09/11/2018 01:06 | # | Fichier joint
Petit résumé du projet :


J'ai commencé à programmer donc UnderCasio en C avec l'aide du C-engine qui est extrêmement pratique
J'ai programmé le déplacement de Frisk ( le joueur ).

Seulement voilà j'ai un problème :



Le sprite est trop grand et je souhaite le redimensionner, mais quand je le redimensionne il se pixélise et je n'arrive pas à le rattraper, il y aurait-il quelqu'un qui aurais une astuce pour éviter ça ?



----------------------------------
*pat pat pat pat pat pat tap tap pat* je pianote
Lightmare
Hors ligne
Membre de CreativeCalc
Points: 293
Défis: 0
Message
Citer : Posté le 09/11/2018 06:58 | #
Tu pourrais utiliser C.Basic : il permet une exécution 10 fois plus rapide du Basic et permet l'utilisation de sprites bitmap
----------------------------------
While 1
WhileEnd

une boucle encore plus optimisée que celle de Kikoodx
Lephenixnoir
Hors ligne
Administrateur
Points: 12792
Défis: 136
Message
Citer : Posté le 09/11/2018 07:17 | # | Fichier joint
Lightmare a écrit :
Tu pourrais utiliser C.Basic : il permet une exécution 10 fois plus rapide du Basic et permet l'utilisation de sprites bitmap

Je ne crois pas que ce soit la question, il s'agit entièrement de dessin ici.

Lepianoteur a écrit :
Le sprite est trop grand et je souhaite le redimensionner, mais quand je le redimensionne il se pixélise et je n'arrive pas à le rattraper, il y aurait-il quelqu'un qui aurais une astuce pour éviter ça ?

Hélas non, je ne pense pas que tu t'en sortiras sans mettre la main au pinceau. Tu peux superposer le petit et le grand éventuellement, pour t'aider à dessiner. Ça aide.

Voilà par exemple à quoi j'arrive en quelques minutes de bidouillage (pas exemplaire mais potable, je dirais ?)

----------------------------------
Rise.
Lepianoteur
Hors ligne
Membre
Points: 138
Défis: 0
Message
Citer : Posté le 09/11/2018 19:24 | #
Lephenixnoir a écrit :
Hélas non, je ne pense pas que tu t'en sortiras sans mettre la main au pinceau. Tu peux superposer le petit et le grand éventuellement, pour t'aider à dessiner. Ça aide.

Voilà par exemple à quoi j'arrive en quelques minutes de bidouillage (pas exemplaire mais potable, je dirais ?)


Ah oui je comprend, et oui c'est même exactement ce qu'il me faut je vais voir ce que je peux faire même si je n'ai jamais eu beaucoup de talent pour le pixel art

Merci de ta réponse.
----------------------------------
*pat pat pat pat pat pat tap tap pat* je pianote
Lepianoteur
Hors ligne
Membre
Points: 138
Défis: 0
Message
Citer : Posté le 11/11/2018 10:47 | # | Fichier joint
J'ai un problème avec l'outils http://tools.planet-casio.com/SpriteCoder/ il ne m'affiche aucun code :



(résultat si dessus après avoir envoyé la requête)

Quelqu'un aurais une idée pour faire en sorte qu'il marche ou alors juste vérifier si c'est moi qui n'arrive pas à le faire fonctionner ?
----------------------------------
*pat pat pat pat pat pat tap tap pat* je pianote
Drak
Hors ligne
Rédacteur
Points: 1850
Défis: 38
Message
Citer : Posté le 11/11/2018 10:51 | #
Si tu as besoin d'un tutoriel pour t'aider à réaliser tes sprites, en voici un que j'ai moi-même écrit et que je glisse discrètement dans ce topic ... TDM N°5 !!!
----------------------------------
Eon the Dragon : version 1.2
Let's have a look!
Marre de ces RPGs qui t'imposent des classes, des compétences et des sorts ? Crée tes propres capacités sur Eon the Dragon ! Des monstres, des dragons et des combats aussi épiques que difficiles t'attendent !
Un RPG unique et immense t'attend ! Joue dès maintenant à Aventura, le Royaume Poudingue !
Vous aussi, soyez swag et rejoignez Planète Casio !
Lepianoteur
Hors ligne
Membre
Points: 138
Défis: 0
Message
Citer : Posté le 11/11/2018 11:03 | #
Ton tutoriel m'a déjà servi mais bon là mon problème c'est plus de la conversion de ces sprites du coup x)
----------------------------------
*pat pat pat pat pat pat tap tap pat* je pianote
Hackcell
Hors ligne
Membre
Points: 837
Défis: 6
Message
Citer : Posté le 11/11/2018 11:37 | #
Ds à fait un script python pour ça
https://www.planet-casio.com/Fr/forums/topic15315-1-[Tutoriel]-Utiliser-le-Sprite-Optimizer.html
----------------------------------
I usually spend meow time cosplaying as a diligent student...
So it can get pretty stressful.
That's exactly why PC is such a happy place for meow to be ⭐
Lepianoteur
Hors ligne
Membre
Points: 138
Défis: 0
Message
Citer : Posté le 11/11/2018 11:55 | #



J'ai regardé le post et il me semble que c'est pour des sprites en basic moi je cherche à utiliser le convertisseur C
----------------------------------
*pat pat pat pat pat pat tap tap pat* je pianote
Hackcell
Hors ligne
Membre
Points: 837
Défis: 6
Message
Citer : Posté le 11/11/2018 12:02 | #
Ho, excuses moi >_<

Ajouté le 11/11/2018 à 13:18 :
Et tu utilises gint ou pas ?
----------------------------------
I usually spend meow time cosplaying as a diligent student...
So it can get pretty stressful.
That's exactly why PC is such a happy place for meow to be ⭐
Lepianoteur
Hors ligne
Membre
Points: 138
Défis: 0
Message
Citer : Posté le 11/11/2018 13:25 | # | Fichier joint
ça dépend mais là non, là je veux convertir un.png du coup, c'est pour des tiles.



cette image plus précisément
----------------------------------
*pat pat pat pat pat pat tap tap pat* je pianote
Lephenixnoir
Hors ligne
Administrateur
Points: 12792
Défis: 136
Message
Citer : Posté le 11/11/2018 13:45 | #
Hackcell a écrit :
Et tu utilises gint ou pas ?

Je précise que si vous utilisez gint (pour les prochains), la méthode est entièrement différente, il faut convertir avec fxconv et rien d'autre. Mais c'est aussi plus automatique (Makefile)
----------------------------------
Rise.

Pages: 1, 2, 3 | Suivante

Index du Forum > Projets de programmation > UnderCasio

Planète Casio v42 © créé par Neuronix et Muelsaco 2004 - 2018 | Il y a 23 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire indépendant, géré bénévolement et n'est donc pas affilié à Casio | Toute reproduction de Planète Casio, même partielle, est interdite
Les fichiers, programmes et autres publications présents sur Planète Casio restent la propriété de leurs auteurs respectifs et peuvent être soumis à des licences ou des copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd