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 » Pokémon Obsidienne [C.Basic]
Lightmare Hors ligne Membre de CreativeCalc Points: 690 Défis: 0 Message

Pokémon Obsidienne [C.Basic]

Posté le 12/01/2019 19:35

Voici le topic de mon projet de pokémon ! ( j'ai repris mon article de la RdP...)

Ce projet est ( pour l'instant j'espère ) l'un des seuls codé avec C.Basic ! Ce petit bijou de programmation permet de faire des prouesses comme charger des sprites au format .bmp et d'accéder directement à la mémoire de stockage de la calculatrice ! ( et ce ne sont que deux des nombreux aspects avantageux de C.Basic ).

Sans plus attendre, des images :







pour le moment, rien de vraiment concret : il y a :
- les déplacements
- le chargement des maps via des Str ( merci Ne0tux ! )
- collisions
- events comme les dialogues et le changement de maps

Le jeu se présente dans le gameplay plus comme un zelda par l'absence de scrolling car trop gourmand en performances !

Je tenais à dire que d'après les plans que j'ai faits, une aventure complète ( avec une région, des arènes, 152 pokemons, une vilaine team...) tiendrait largement sur une calculatrice ! Donc il y aurait l'hypothèse de voir poindre un pokemon complet sur ce site entièrement codé en Basic !
De plus, pour un prix dérisoire ne mémoire, il serait possible de gérer les échanges de pokémons par le câble 3 broches et des combats multijoueurs ! sympa non ?

CONSEILS :
- faire [shift] +[menu] et régler le Pict mode en "Heap", le déplacement du personnage sera alors bien plus rapide !

Installation
Cliquer pour enrouler

INSTALLATION :

ATTENTION : ce programme necessite l'installation prealable de C. BASIC et ne fonctionne que sur les modeles de calculatrices supportant les add-ins !

>créer dans sa calculatrice un dossier POKEMON et un dossier POKEBETA
>télécharger le zip
>decompressez-le
>importez les dossiers POKEMON et POKEBETA du zip ( s'il ne sont pas nommés comme ceci, renommez les) dans FA-124
>importez tous les fichiers des dossiers dans la calculatrice ( ils devraient se mettre tous seuls dans les dossiers POKEMON et POKEBETA de votre calto
>dans C.Basic, faites [shift] + [menu] et mettez le "storage mode" sur S.Mem
>allez dans le dossier POKEBETA à partir de C.Basic, et lancez le programme 0POKEMON
> bon jeu !


historique des mises à jour
Cliquer pour enrouler

=> correction de bugs de dialogues, de lancement de maps et de chargement de sprites
V 0.3 => optimisations de mémoire occupée
- ajout d'un debugmode
- poursuite de la création de l'interface de combat
V 0.2 => modification des textures de l'eau et de la porte, amélioration du système de déplacements grâce à Sentaro21 ( chargement des Bmp trop lent ) qui est dorénavant plus rapide


DEMO TELECHARGEABLE ( V0.4 ) ======>

Fichier joint


Manolo Hors ligne Membre Points: 910 Défis: 13 Message

Citer : Posté le 13/01/2019 17:45 | #


va voir sur le topic C.Basic de Sentaro21, vers la fin des commentaire pour savoir à quoi ça sert.
et de-rien
Redeyes Hors ligne Membre Points: 630 Défis: 7 Message

Citer : Posté le 13/01/2019 20:39 | #


Sentaro21 & Lightmare: Understood. Thank you for your help! I'll do it.
Sentaro21 Hors ligne Membre Points: 877 Défis: 0 Message

Citer : Posté le 14/01/2019 10:18 | # | Fichier joint


@Lightmare
The reason of slow is that reading BMP file from storage is slow.
It can solve by reading BMP data once in the matrix and drawing it.
That modified file is here.
[Fichier joint] POKEMON2.g1m

@Manolo
Thnaks!

@Redeyes
The subfolder is in the right click menu of FA-124.
Je continue à développer C.Basic. (Il est compatible avec Basic Casio.)
Overclocking utilitaire Ftune/Ptune2/Ptune3 est également disponible.
Si vous avez des questions ou un rapport de bogue, n'hésitez pas à me le faire savoir.
Lightmare Hors ligne Membre de CreativeCalc Points: 690 Défis: 0 Message

Citer : Posté le 14/01/2019 20:29 | #


@Sentaro21 : wow ! great ! it's works very well ! I guess it will be even better for graph 75, because i noticed that the program is quite slow on them !

"Quand je dis à la cour : "Sautez ! ", tout le monde me demande "jusqu'où ?" "
Dijkstra - The Witcher
Sentaro21 Hors ligne Membre Points: 877 Défis: 0 Message

Citer : Posté le 15/01/2019 10:03 | #


It was good!
Furthermore, it is good to load frequently used BMP files into Mat beforehand.

Regarding Getkey input,
If it is not real-time input, if it is Getkey2, you will not need an input waiting loop.

Also, about time alignment loop,
Please use "TicksWait" command.
It is possible to wait for a time that is not affected by the speed difference of the calculator.
(Please refer to "TicksWait" at 1174 line of Manual_EN.txt)
Je continue à développer C.Basic. (Il est compatible avec Basic Casio.)
Overclocking utilitaire Ftune/Ptune2/Ptune3 est également disponible.
Si vous avez des questions ou un rapport de bogue, n'hésitez pas à me le faire savoir.
Lightmare Hors ligne Membre de CreativeCalc Points: 690 Défis: 0 Message

Citer : Posté le 15/01/2019 20:41 | #


@Sentaro21 : I've already tested Getkey2, but it's slower than the actual loop I'm using .
But i think i will use GetkeyM in the near future to make the character running if the player press [SHIFT] and [REPLAY] atr the same time
"Quand je dis à la cour : "Sautez ! ", tout le monde me demande "jusqu'où ?" "
Dijkstra - The Witcher
Sentaro21 Hors ligne Membre Points: 877 Défis: 0 Message

Citer : Posté le 16/01/2019 06:10 | #


Ok!
Getkey2 is useful when waiting loop for command selection etc.
Loops are unnecessary in the following cases.
Do
Getkey->K
LpWhile K=0

Getkey2 instead of Getkey.
Getkey2->K


About GetkeyM which can read multiple keys,
I think that it works well in that case.


Je continue à développer C.Basic. (Il est compatible avec Basic Casio.)
Overclocking utilitaire Ftune/Ptune2/Ptune3 est également disponible.
Si vous avez des questions ou un rapport de bogue, n'hésitez pas à me le faire savoir.
Lightmare Hors ligne Membre de CreativeCalc Points: 690 Défis: 0 Message

Citer : Posté le 16/01/2019 07:55 | #


i understood that in the manual
but Getkey2 still working slower than the loop with Getkey... :/
"Quand je dis à la cour : "Sautez ! ", tout le monde me demande "jusqu'où ?" "
Dijkstra - The Witcher
Sentaro21 Hors ligne Membre Points: 877 Défis: 0 Message

Citer : Posté le 16/01/2019 09:37 | #


Yes,
Getkey2 is the same input as Editor etc, so its speed is slow.
The advantage of Getkey2 is that the power consumption is dramatically reduced.
Please use it where there is no need for speed.
Je continue à développer C.Basic. (Il est compatible avec Basic Casio.)
Overclocking utilitaire Ftune/Ptune2/Ptune3 est également disponible.
Si vous avez des questions ou un rapport de bogue, n'hésitez pas à me le faire savoir.
Lephenixnoir Hors ligne Administrateur Points: 24228 Défis: 170 Message

Citer : Posté le 16/01/2019 10:07 | #


I suppose GetKey() is behind this function Getkey2? Have you reduced the repetition delay to the minimum to increase the speed a bit?
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Sentaro21 Hors ligne Membre Points: 877 Défis: 0 Message

Citer : Posté le 16/01/2019 10:24 | #


Yes!
Getkey2 is same as Getkey() which made the return value same as Getkey of Basic Casio.
So it can be set by setup and controlled by these two parameters.
Key 1st time:KeyRepeatFirstCount
Key Rep time:KeyRepeatNextCount
Je continue à développer C.Basic. (Il est compatible avec Basic Casio.)
Overclocking utilitaire Ftune/Ptune2/Ptune3 est également disponible.
Si vous avez des questions ou un rapport de bogue, n'hésitez pas à me le faire savoir.
Lightmare Hors ligne Membre de CreativeCalc Points: 690 Défis: 0 Message

Citer : Posté le 24/02/2019 16:25 | #


Bonsoir à toutes et à tous ! *hum hum*
J'ai des nouvelles de mon projet de Pokémon Obsidienne ! le projet avance donc vers la version 0.3 !
Ne vous en faites pas, je posterai des nouvelles images sur le topic ! yeah !

Alors je me suis sérieusement mis au développement des combats ( qui sont ne sont pas encore opérationnels désolé -_-' ) :
Le plus dur a été de trouver une partition sur l'écran de toutes les informations nécéssaires au joueur, tout en préservant une place décente aux sprites de pokémon, une place pour le menu et une autre, vide, pour les animations des attaques ( oui je compte les faire ).
Pour relever ce défi, j'ai donc utilisé l'écran de combat de Pokémon Jade. Bien que je compte préserver la répartition des éléments à l'écran que Dodormeur a imaginé, je referai le style graphique afin de ne pas avoir l'air de lui voler le fruit de son travail .

Ensuite, j'ai fait deux ou trois optimisations de mémoire occupée par les programmes ( rien de bien méchant )...

Mais le gros truc que j'ai ajouté, c'est un Debug mode ! j'en suis fier !
Ce mode permet de faire apparaître tous les éléments du jeu, et même de faire apparaître vos objets personnalisés !
par exemple, un buisson qui parle comme l'ordinateur.
Le debugmode permet aussi de modifier l'inventaire ( pour le moment, juste le nombre et les pokémons que le joueur a sur lui )
et de modifier des variables telles que les coordonnées, l'orientation ou la map sur laquelle vous êtes.

Pour accéder au Debugmode, il faut aller dans le menu ( donc en pressant [MENU] ) puis aller dans le Pokénav. Vous entrerez alors dans le debug menu.
Pour le moment, toutes les possibilités ne sont pas là : le combat customisé ne devrait pas tarder, mais le debugmode n'est pas ma priorité dans le codage...

"Quand je dis à la cour : "Sautez ! ", tout le monde me demande "jusqu'où ?" "
Dijkstra - The Witcher
Redeyes Hors ligne Membre Points: 630 Défis: 7 Message

Citer : Posté le 24/02/2019 18:05 | #


Ah pas mal! Le Debug mode, c'est un peu un moyen de donner l'occasion au joueur de "hacker" lui même l'interface de jeu initiale comme pour les jeux Pokémons customisés si j'ai bien compris?

Pour ce qui est des différents sprites et tiles, tu pourrais peut-être modifier quelque peu les images .bmp pour enlever les blancs en trop sur les extrémités. Cela pourrait éviter "d'écorcher" certaines choses dans le jeu comme les arbres ou bâtiments lorsque le sprite se déplace. Pour les combats cela posera moins de problèmes à mon avis.

Sinon le projet avance bien, j'attends la prochaine version avec impatience!
Lightmare Hors ligne Membre de CreativeCalc Points: 690 Défis: 0 Message

Citer : Posté le 24/02/2019 19:26 | #


Merci Redeyes !
Malheureusement, il est impossible de rendre transparent les pixels blancs inutiles dans les bmp... Mais par contre, je crois qu'il existe d'autres procédés pour obtenir cet effet. Je vais donc creuser plus avant !
Sinon pour le debugmode, ca permet au développeur que je suis de bien tester correctement les modifications du moteur de collision, de la gestion des maps, des combats... Et pour le joueur, c'est une occasion d'explorer et de comprendre le moteur de jeu, et éventuellement de repérer des améliorations possibles !
"Quand je dis à la cour : "Sautez ! ", tout le monde me demande "jusqu'où ?" "
Dijkstra - The Witcher
Lephenixnoir Hors ligne Administrateur Points: 24228 Défis: 170 Message

Citer : Posté le 24/02/2019 19:29 | #


Malheureusement, il est impossible de rendre transparent les pixels blancs inutiles dans les bmp... Mais par contre, je crois qu'il existe d'autres procédés pour obtenir cet effet. Je vais donc creuser plus avant !

Avec deux images, tu appliques la première en AND puis la deuxième en OR...

Sinon C.Basic ne supporte pas le bitmap ARGB ?
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Sentaro21 Hors ligne Membre Points: 877 Défis: 0 Message

Citer : Posté le 25/02/2019 09:25 | # | Fichier joint


@Lightmare
I'm happy to see the project going smoothly.
The mask pattern is required for combining bitmap and background.
So, I created a mask version.
[Fichier joint] POKEMON 0.3+mask.zip

@Lephenixnoir
Lephenixnoir a écrit :
Sinon C.Basic ne supporte pas le bitmap ARGB ?

Although it is not ARGB,
In 90+E version, it is possible to transparently pass through a single color of 16bit color bitmap.
Je continue à développer C.Basic. (Il est compatible avec Basic Casio.)
Overclocking utilitaire Ftune/Ptune2/Ptune3 est également disponible.
Si vous avez des questions ou un rapport de bogue, n'hésitez pas à me le faire savoir.
Sentaro21 Hors ligne Membre Points: 877 Défis: 0 Message

Citer : Posté le 26/02/2019 08:47 | # | Fichier joint


By loading the bitmap into MAT at the start of the program, the movement of the character became smoother.
Transfer all POKEMON folders, 90+E will works fine.
[Fichier joint] POKEMON 0.3+mask2.zip
The modified file is as follows.
POKEMON.g1m
POKEMAP.g1m
POKEBMP.g1m (new)
Je continue à développer C.Basic. (Il est compatible avec Basic Casio.)
Overclocking utilitaire Ftune/Ptune2/Ptune3 est également disponible.
Si vous avez des questions ou un rapport de bogue, n'hésitez pas à me le faire savoir.
Lightmare Hors ligne Membre de CreativeCalc Points: 690 Défis: 0 Message

Citer : Posté le 26/02/2019 09:40 | #


Wow ! thank you very much Sentaro !
I'm far away from perfectly understand all C.Basic features, so your new versions permit to me to understand some of them !
your version will be a part of the 0.4 version !
"Quand je dis à la cour : "Sautez ! ", tout le monde me demande "jusqu'où ?" "
Dijkstra - The Witcher
Sentaro21 Hors ligne Membre Points: 877 Défis: 0 Message

Citer : Posté le 26/02/2019 12:14 | #


It's my pleasure.
The new function used this time is Prog with argument and indirect specification of MAT.
If loading the backgraund bitmap into MAT in the same way, the background rendering will be more faster.
The AND and OR of bitmap drawing can do the same with Monochromelib command.
I'm looking forward to the new version 0.4.
Je continue à développer C.Basic. (Il est compatible avec Basic Casio.)
Overclocking utilitaire Ftune/Ptune2/Ptune3 est également disponible.
Si vous avez des questions ou un rapport de bogue, n'hésitez pas à me le faire savoir.
Lightmare Hors ligne Membre de CreativeCalc Points: 690 Défis: 0 Message

Citer : Posté le 04/03/2019 20:24 | #


ajout d'une vidéo ! hell yeah !
"Quand je dis à la cour : "Sautez ! ", tout le monde me demande "jusqu'où ?" "
Dijkstra - The Witcher
Sentaro21 Hors ligne Membre Points: 877 Défis: 0 Message

Citer : Posté le 05/03/2019 06:55 | #


Thanks for the video!
The screen change is instantaneous. It is a great evolution.
Je continue à développer C.Basic. (Il est compatible avec Basic Casio.)
Overclocking utilitaire Ftune/Ptune2/Ptune3 est également disponible.
Si vous avez des questions ou un rapport de bogue, n'hésitez pas à me le faire savoir.

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