Seuls les membres ayant 30 points peuvent parler sur le chat.

Forum Casio - Projets de programmation


Index du Forum » Projets de programmation » Pokémon Obsidienne [C.Basic]
LightmareHors ligneMembre de CreativeCalcPoints: 509 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.3 ) ======>

Fichier joint


Pages : Précédente1, 2, 3
Sentaro21En ligneMembrePoints: 581 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.
LightmareHors ligneMembre de CreativeCalcPoints: 509 Défis: 0 Message

Citer : Posté le 05/03/2019 07:11 | #


Ah ! Sorry but, it's only an impression due to the Screen Receiver...
42
Sentaro21En ligneMembrePoints: 581 Défis: 0 Message

Citer : Posté le 05/03/2019 07:29 | #


Ok.
As a method for instantly switching screens,
I think there is a way to save each background into the Pict file.
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.
LightmareHors ligneMembre de CreativeCalcPoints: 509 Défis: 0 Message

Citer : Posté le 05/03/2019 20:30 | #


I also thought about this possibility, but i guess i couldn't load all the screens, because there are not enough memory...
I guess i can divide the maps in "zones" ( each one would have about 20 screens ), and do a charging time only when you go from a zone to another...
42
LightmareHors ligneMembre de CreativeCalcPoints: 509 Défis: 0 Message

Citer : Posté le 21/05/2019 17:16 | # | Fichier joint


Bonjour ! Après la petite piqûre de rappel de Shadow lors de la dernière RdP :
flashback intempestif a écrit :
Mais depuis que Lightmare à lancé son projet en C.Basic Pokémon Obsidienne...


J'ai rassemblé mes forces pour mettre ce topic à jour et reprendre le développement ! ah mais ! ( Shadow devrait faire ca plus souvent pour relancer des projets ! )

Les images du topic mises à jour en fichier joint
42
LightmareHors ligneMembre de CreativeCalcPoints: 509 Défis: 0 Message

Citer : Posté le 21/05/2019 17:19 | # | Fichier joint


la deuxième image en fichier joint de ce message !
42
LephenixnoirHors ligneAdministrateurPoints: 15772 Défis: 136 Message

Citer : Posté le 21/05/2019 17:20 | #


Wow, c'est joli ! Un petit conseil sur le dessin : tu peux avoir une "troisième couleur" en coloriant les surfaces en damier. C'est moins aggressif que les grandes zones noires et ça se maîtrise très facilement !
LightmareHors ligneMembre de CreativeCalcPoints: 509 Défis: 0 Message

Citer : Posté le 21/05/2019 17:23 | #


Oh ! Je n'y avais pas pensé ! Mais tu pensais à quel objet par "agressif" ?
42
LephenixnoirHors ligneAdministrateurPoints: 15772 Défis: 136 Message

Citer : Posté le 21/05/2019 17:50 | #


Les bâtiments ! Beaucoup de noir à l'écran ça fait "lourd". Tu pourrais dessiner un damier sur les zones plus éclairées (selon l'endroit où tu mets la lumière), ce qui réduirait la charge du dessin, donnerait plus de forme, et accessoirement pourrait faire plus stylé
LightmareHors ligneMembre de CreativeCalcPoints: 509 Défis: 0 Message

Citer : Posté le 21/05/2019 18:57 | #


Ben à vrai dire, les sprites des bâtiments sont de toute façon destinés à être remplacés par de nouveaux, tout bêtement parce que la porte est bien trop petite pour le personnage !
Ces nouveaux bâtiments sont en cours de "design" ( comment il s'y croit l'autre ) et seront bien plus grands et permettront plus de détails comme des ombres et des reliefs.
Avant de reprendre la programmation en elle-même, il faut que je me fasse une large bibliothèque de sprites pour tout ( que ca soit pokémons, pnjs, bâtiments, environnement... )
42
LephenixnoirHors ligneAdministrateurPoints: 15772 Défis: 136 Message

Citer : Posté le 21/05/2019 20:14 | #


Je vois ! Bon courage pour faire tes sprites, et n'hésite pas à nous en envoyer régulièrement
RedeyesHors ligneMembrePoints: 411 Défis: 4 Message

Citer : Posté le 07/09/2019 08:15 | #


J'ai essayé de jouer à la version 0.3, mais lorsque je veux changer d''endroit en déplaçant mon personnage, j'ai une erreur "can't find file" en me renvoyant sur la ligne:
Then BmpLoad("/POKEMON/PNJ2.4"),E*13,F*13 //Curseur en bout de ligne


J'imagine que lorsque les fichiers BEACH2.1 ; PNJ2.2 ; PNJ2.3 ; PNJ2.4 ont été enregistrés, ils ont prit les extensions (.1 ; .2 ; .3 ; .4) plutôt que .bmp, ce qui les ont rendu illisibles.
Du coup je n'arrive pas à aller plus loin dans le jeu...
~ Raisonnance...
LightmareHors ligneMembre de CreativeCalcPoints: 509 Défis: 0 Message

Citer : Posté le 07/09/2019 10:50 | #


@Redeyes : je n'ai jamais eu ce problème, mais du coup j'ai corrigé pour que les sprites aient tous l'extension .bmp ! tu peux tester !
( t'inquiète, je trouverai le temps dans le week end pour tester SBZ ! )
42
RedeyesHors ligneMembrePoints: 411 Défis: 4 Message

Citer : Posté le 07/09/2019 11:19 | #


Ah chouette! Merci Lightmare, je teste de suite!
~ Raisonnance...
LephenixnoirHors ligneAdministrateurPoints: 15772 Défis: 136 Message

Citer : Posté le 07/09/2019 13:37 | #


Salut ! J'ai testé ton programme pour le week-end de test. Installation pas triviale, mais on y arrive. Ci-dessous quelques remarques.

Dans l'ensemble je le trouve vraiment sympa. Y'a de beaux graphismes, y'a l'ambiance Pokémon, il manque juste un peu de fluidité sur les déplacements et du code pour faire marcher la suite !

-

C'est sympa de régler le contraste je suppose, mais les bonnes valeurs dépendent du modèle. Sur Graph 75+E, la valeur indiquée est hyper basse et j'étais quasiment incapable de lire jusqu'à ce que je récupère le contrôle de la touche SHIFT pour le réinitialiser au moment d'entrer mon nom. Laisse ton joueur mettre ce qu'il préfère !

J'adore le PNJ qui parle du développeur à la sortie de la maison. C'est tellement méta et dans l'esprit Pokémon !

Le mouvement du personnage est pas très pratique. Il est vraiment lent dans l'ensemble, et comme il n'est pas animé c'est pas hyper naturel à manipuler. On aurait aussi aimé arriver en face des portes, quitte à trouver un message "fermé" à l'action ! (Portes qui sont bien trop petites pour nous, mais on peut faire abstraction.)

Toujours rapport au déplacement, traditionnellement dans Pokémon si tu appuies sur une flèche directionnelle qui n'est pas la direction dans laquelle tu regardes, le personnage se tourne, mais n'avance pas. C'est pratique pour se déplacer.

Graphiquement, c'est vraiment sympa ! Tu as l'intro fidèlement reproduite (ou presque, pour une fois c'est le professeur qui se lève en retard xD) de Pokémon, et des supers graphismes tout le long. J'espère que ça va exploser avec le nombre de fichiers bitmap dans le projet, enfin t'as le temps de voir encore !

J'ai ramassé la poké ball en sortant, mais au lieu de disparaître, elle est devenue inerte (ie. n'interagit pas avec moi) et un sprite de PNG est apparu ; je ne pouvais pas non plus interagir. J'imagine que ce n'était pas le but..

Je trouve ça cool que les personnages se tournent vers toi quand tu leur parles ! Et si, j'avais compris que c'était de l'eau !

Je te trouve vraiment bien parti. Si ç'avait été un programme, j'aurais probablement noté 7 pour t'encourager à le continuer. Bon courage pour la suite, je retesterai !

Ajouté le 07/09/2019 à 13:44 :
Correction parce que je ne faisais pas attention à la configuration de ma calculatrice... le mouvement n'est pas si lent que ça, ma machine ramait juste. Par contre il n'est pas très naturel à cause du manque d'animation, c'est tout.
RedeyesHors ligneMembrePoints: 411 Défis: 4 Message

Citer : Posté le 08/09/2019 23:44 | #


Très bien, à mon tour de donner mes impressions!

Après l'écran titre, la sauvegarde se distingue de celle que l'on connaît: on se retrouve grâce au nom de notre joueur et c'est original!

L'introduction à l'aventure qui débute par un réveil tardif n'a été utilisé que dans une seule génération des jeux Pokémon (2e génération). L'avoir adapté ici fait plaisir à revoir! Aujourd'hui, ça paraît toujours aussi original (surtout qu'ici c'est le professeur qui est en retard)!
Cela dit le monologue du professeur Chen est toujours aussi fidèle à la franchise, tout comme l'animation du Evoli qu'il montre.

Puis j'en arrive au terrain: j'ai l'impression que les pnjs en ont tous après toi mais c'est amusant à lire!
Ce qui m'enchante ici c'est le fait que la règle des hautes herbes est parfaitement respectée: les pokémons sortent aléatoirement et uniquement dans ces zones! En plus, les animation de rencontre avec les pokémons sauvages sont très bien faites! (ma préférée est celle où l'animation est comme celle d'une attaque Psyko)
Pareil, la gestion de la rotation du pnj lorsqu'on lui parle est bien respectée. Ah oui, et le menu du jeu! C'est dommage que le seul pokémon qu'on ait soit un Evoli n.0, pas très utile dans un combat (j'y viendrai). Deux catégories, dont le Pokénav (3e génération) pointent vers le Debugmode (petite tentative de prank je suppose xD), qui justement est très bien agencé!
Aussi, quand j'ai voulu prendre la Pokéball, j'ai surpris un pnj juste devant moi! Très prisée à ce que je vois!

A présent les combats: après avoir rencontré un Evoli, je sors moi aussi mon Evoli (n.0). Les catégories ne contiennent pas grand chose de clair et sont buggées pour certaines, mais j'imagine que plus tard elles seront bien fonctionnelles!

En général, le jeu a du potentiel et envoie du rêve! Il est beau, fluide et nous renvoie bien au monde des pokémons que nous connaissons tant. Si je devais noter pour l'instant, je mettrai 8 sur 10! J'attend les prochaines avancées!
~ Raisonnance...
LightmareHors ligneMembre de CreativeCalcPoints: 509 Défis: 0 Message

Citer : Posté le 11/09/2019 17:32 | #


@Lephe et @Redeyes :
Merci infiniment pour vos inestimables tests !
Je vais faire une mise à jour de bug fixes et d'optimisations !
Déjà pour la lenteur du personnage, vous pouvez mettre le Pict Mode en Heap ( dans les réglages de C.Basic ), ca va augmenter la vitesse du personnage.
Le gros morçeau auquel j'ai peur de m'attaquer est d'implémenter le principe de couche "passive" qui regroupe les objets à l'écran qui ne bougent jamais, et de couche "active" qui regroupe ce qui peut bouger (dresseur, pnj...).
42
LephenixnoirHors ligneAdministrateurPoints: 15772 Défis: 136 Message

Citer : Posté le 11/09/2019 20:48 | #


Merci à toi et bon courage !

Le gros morçeau auquel j'ai peur de m'attaquer est d'implémenter le principe de couche "passive" qui regroupe les objets à l'écran qui ne bougent jamais, et de couche "active" qui regroupe ce qui peut bouger (dresseur, pnj...).

Voilà quelques indices ! La partie statique peut se mettre facilement dans une map comme d'habitude, donc il te suffit de retirer ce qui peut bouger de ta map et hop tu as la partie passive.

Pour la partie active tu peux faire un tableau ou une liste avec tous les objets actifs sur la map. Pour chaque objet, tu retiens sa position à l'écran, son sprite, et genre son rôle/son numéro de dresseur/ce qui te permet de savoir quoi faire quand on interagit avec lui.

Dans ta boucle de jeu, de temps en temps tu parcoures la liste des objets actifs et tu les fais bouger s'ils marchent, te foncer dessus s'ils te cherchent des problèmes, etc etc.
Pages : Précédente1, 2, 3

Planète Casio v42 © créé par Neuronix et Muelsaco 2004 - 2019 | Il y a 57 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