Posté le 10/10/2021 10:55
Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 93 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
Citer : Posté le 10/10/2021 11:02 | #
Je ne connaissais même pas cet add-in dis donc ! Le code n'a pas l'air hyper élégant mais pas non plus hyper compliqué. Si tu as un problème avec n'hésite pas à demander
Citer : Posté le 10/10/2021 11:03 | #
J'y penserais ! Merci
Première étape : convertir les tableaux de 0 et 1 du CasioSDK en image png \o/
Ajouté le 10/10/2021 à 15:34 :
J'ai fait un dépôt : https://gitea.planet-casio.com/Shadow15510/CalcCity et converti les images du jeu d'origine en png (merci Python xD).
Dans les prochaines étapes :
- comprendre les variables du jeu et faire une structure pour cacher tout ça
- idem avec la caméra (faire un truc avec la position de la souris, la position sur la map et le zoom)
- reconstruire un vrai tileset
Citer : Posté le 10/10/2021 21:00 | #
hey, ça a l’air super sympa! j'adore simcity!
Dans les prochaines étapes :
- comprendre les variables du jeu et faire une structure pour cacher tout ça
le code source de simcity de 1987 a été libéré https://github.com/osgcc/simcity
c'est simcity (ms-dos, amstad, atari 800,...) recodé par un des créateurs en c++, toues les mécanique du jeu ce dans ce code.
Citer : Posté le 10/10/2021 21:07 | #
Je ne porte pas Simcity mais CalcCity (y a un lien dans le post principal)
Citer : Posté le 10/10/2021 21:21 | #
mais ça serait bien de se rapprocher du vrai jeu avec tout les stats(crime, trafic, valeur immobilière, taxes, impôts), car c'est très sympa a jouer.
simcity a été porté sur un 6502 (bbc micro) donc c'est censé pouvoir tourner sur un sh4 (au niveau des performances de calcul, mais j'avoue que simcity sur 8086(ms-dos) c'est comme-même lent )
Citer : Posté le 10/10/2021 21:25 | #
CalcCity s'en rapproche vraiment il y a un système taxe, impôt. Ainsi qu'un système crime / sécurité, et une gestion des catastrophes (feux, accident nucléaire, tremblement de terre).
Citer : Posté le 10/10/2021 21:27 | #
- idem avec la caméra (faire un truc avec la position de la souris, la position sur la map et le zoom)
- reconstruire un vrai tileset
au mois ça c’est une super bonne idée
(admirez mon nouvel avatar)
Citer : Posté le 10/10/2021 21:29 | #
En parlant du tileset, j'ai terminé le tileset des grandes icônes, il me reste à fusionner quelques trucs et c'est bon.
Citer : Posté le 12/10/2021 21:53 | #
Sympa tout ça !
Encore un jeu de simulation, aussi étonnant que Kikoo qui développe un Plateformer
J'ai toujours voulu jouer à CalcCity, mais il a jamais voulu se lancer sur ma calto. Je jouerai à ton adaptation avec grand plaisir, bon courage
Citer : Posté le 12/10/2021 21:54 | #
Merci !
J'ai pas trop avancé, ces derniers jours, j'espère pouvoir commencer à comprendre un peu le code ce week-end (je mise un peu sur les vacances pour avoir de vraies avancées)
Ajouté le 13/10/2021 à 18:00 :
Hey o/
Ayant un peu de temps, je me suis penché vers ce qui sert de main et là, ça commence bien… j'ai une image encodée dans un truc qui doit être de l'hexadécimal… L'image doit faire 128 pixels par 64, mais dans le code, elle est représentée comme une simple liste :
0x00000000,0x00000000,0x00000000,0x00000000,0x7FFFFFFF,0xFFFFFFFF,0xFFFFFFFE,0x0FE03FFE,0x7FFFFFFF,0xFFFFFFFF,
0xFFFC1E0E,0xAFEABFFE,0x7F83FFF3,0xFFC1F3FF,0xFFFD5EAE,0x0FE03FC0,0x7E01FFF3,0xFF00F3BF,0xFFFC1E0E,0xAFEAB054,
0x7C78FFF3,0xFE3C7F3F,0xFFFD02AE,0x03E01540,0x7CFCF0E7,0x867E6413,0xCFFC2A00,0xAB095054,0x78FFE066,0x007FE413,
0x9FFD02AA,0x03401540,0x79FFCE66,0x70FFE673,0x9FFC2A00,0xAB095014,0x79FFFE64,0xFCFFE673,0x3FFD02AA,0x00400500,
0x79FFC064,0xFCFFE673,0x3FE02A00,0xA9094014,0x79F99CE4,0xFCFCE67A,0x7FEA00AA,0x00400500,0x78F39CCC,0xE479CCF8,
0x7F002800,0xA9094014,0x7C0380CE,0x0601CC38,0xFF4A00A4,0x00400500,0x7E0FC4CF,0x0F07CC38,0xFF000000,0x00000014,
0x7FFFFFFF,0xFFFFFFF9,0xFE000000,0x00000000,0x7FFFFFFF,0xFFFFFFC1,0xFC000000,0x00000000,0x7FFFFFFF,0xFFFFFFC3,
0xFFFFFFFF,0xFFFF0FFE,0x7FFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFE1FFE,0x7FFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFC1FFE,
0x7FFFFDFF,0x1FFFFFF8,0x3FFFFFFF,0xFFF83FFE,0x7FFFFAFE,0xEFFFFFFB,0xDFFFFFFF,0xFFF03FFE,0x7FFFFAFD,0xF63438FB,
0xD77FFFFF,0xFFE27FFE,0x7FFFFAFD,0xFDD2D778,0x177FFFFF,0xFFD97FFE,0x7FFFF77D,0xC616D07B,0xDAFFFFFF,0xFFA6FFFE,
0x7FFFF07D,0xF5D6D7FB,0xDAFFFFFF,0xFF7EFFFE,0x7FFFEFBE,0xED96D77B,0xDDFFFFFF,0xFEC5FFFE,0x7FFFEFBF,0x1E56D8F8,
0x3DFFFFFF,0xFD85FFFE,0x7FFFFFFF,0xFFFFFFFF,0xFDFFFFFF,0xFB0BFFFE,0x7FFFFFFF,0xFFFFFFFF,0xFBFFFFFF,0xF71BFFFE,
0x7FFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xEFF7FFFE,0x7FFEFBFF,0xFFFFFDFF,0x83FFFFFF,0xDFF7FFFE,0x7FFE73FF,0xFFFFFDFF,
0xBDFFFFFF,0xBFEFFFFE,0x7FFE7318,0x61C7E58F,0xBD8E3FFF,0x71EFFFFE,0x7FFEAAEB,0xAEBBD977,0x8175DFFE,0xE1DFFFFE,
0x7FFEAA0B,0xAEBBDD07,0xBD067FFD,0xC1DFFFFE,0x7FFEAAFB,0xAEBBDD7F,0xBD7FBFFB,0xC3BFFFFE,0x7FFEDAEB,0xAEBBD977,
0xBD75DFF7,0x87BFFFFE,0x7FFEDB1B,0xAEC7E58F,0x838E3FEF,0x877FFFFE,0x7FFFFFFF,0xFFFFFFFF,0xFFFFFFDF,0xFF7FFFFE,
0x7FFFFFFF,0xFFFFFFFF,0xFFFFFFBF,0xFEFFFFFE,0x7FFFFFFF,0xFFFFFFFF,0xFFFFFF7F,0xFEFFFFFE,0x7FFFFFFF,0xF1C7183F,
0xFFFFFEF8,0x3DFFFFFE,0x7FFFFFFF,0xEEBAEF7F,0xFFFFFDF0,0x7DFFFFFE,0x7FFFFFFF,0xFEBAEF7F,0xFFFFFBE0,0x7BFFFFFE,
0x7FFFFFFF,0xFEBAEEFF,0xFFFFF7C0,0xFBFFFFFE,0x7FFFFFFF,0xFDBAEEFF,0xFFFFEF81,0xF7FFFFFE,0x7FFFFFFF,0xFBBAEDFF,
0xFFFFDF81,0xF7FFFFFE,0x7FFFFFFF,0xF7BAEDFF,0xFFFFBF03,0xEFFFFFFE,0x7FFFFFFF,0xE0C71DFF,0xFFFF7E07,0xEFFFFFFE,
0x7FFFFFFF,0xFFFFFFFF,0xFFFEFE07,0xDFFFFFFE,0x7FFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFE,0x7FFFFFFF,0xFE3FFF7F,
0x7AFFFFBF,0xFFFFFFFE,0x7FFFFFFF,0xFDDFFFFF,0x77FFFFBF,0xFFFFFFFE,0x7775DD77,0x7BF8E363,0x6E872CB1,0xA1F8D65E,
0x76B5AD6B,0x7BF75D5D,0x4EBACB2E,0x96F74D9E,0x7AAEABAA,0xFBF8675D,0x2EBAEBAE,0xB6F75DDE,0x7AAEABAA,0xFBF77B5D,
0x76BAEBAE,0xB6F75DDE,0x7DDF77DD,0xFDD65D5D,0x76BACB2E,0xB6F75D9E,0x7DDF77DD,0xEE396363,0x7ABB2CB1,0xB6D8DE5E,
0x7FFFFFFF,0xFFFFFFFF,0xFFFFEFFF,0xFFFFFFDE,0x7FFFFFFF,0xFFFFFFFF,0xFFFE1FFF,0xFFFFFC3E,0x7FFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFE,0x00000000,0x00000000,0x00000000,0x00000000};
Autant les images avec juste un tableau de 0 et de 1, je voyais assez bien comment la convertir, autant là, j'avoue que je comprends pas comment retrouver l'image au format png ^^'
Merci d'avance !
Citer : Posté le 13/10/2021 19:05 | # | Fichier joint
Je te conseille cette partie du TDM 18 qui explique en détail l'histoire de l'hexa mieux que je ne pourrais le faire à l'improviste. C'est bien un tableau de bits !
Ah et aussi c'est certainement du row-major, donc tu as tous les bits d'une ligne suivis immédiatement de tous les bits d'une autre. Tu peux mettre la liste dans un programme Python et décoder toi-même ou bien utiliser convert en une seule ligne pour la récupérer.
Je pars de l'hexa sans les caractères supplémentaires :
00000000 00000000 00000000 00000000 7FFFFFFF FFFFFFFF FFFFFFFE 0FE03FFE 7FFFFFFF FFFFFFFF
FFFC1E0E AFEABFFE 7F83FFF3 FFC1F3FF FFFD5EAE 0FE03FC0 7E01FFF3 FF00F3BF FFFC1E0E AFEAB054
7C78FFF3 FE3C7F3F FFFD02AE 03E01540 7CFCF0E7 867E6413 CFFC2A00 AB095054 78FFE066 007FE413
9FFD02AA 03401540 79FFCE66 70FFE673 9FFC2A00 AB095014 79FFFE64 FCFFE673 3FFD02AA 00400500
79FFC064 FCFFE673 3FE02A00 A9094014 79F99CE4 FCFCE67A 7FEA00AA 00400500 78F39CCC E479CCF8
7F002800 A9094014 7C0380CE 0601CC38 FF4A00A4 00400500 7E0FC4CF 0F07CC38 FF000000 00000014
7FFFFFFF FFFFFFF9 FE000000 00000000 7FFFFFFF FFFFFFC1 FC000000 00000000 7FFFFFFF FFFFFFC3
FFFFFFFF FFFF0FFE 7FFFFFFF FFFFFFFF FFFFFFFF FFFE1FFE 7FFFFFFF FFFFFFFF FFFFFFFF FFFC1FFE
7FFFFDFF 1FFFFFF8 3FFFFFFF FFF83FFE 7FFFFAFE EFFFFFFB DFFFFFFF FFF03FFE 7FFFFAFD F63438FB
D77FFFFF FFE27FFE 7FFFFAFD FDD2D778 177FFFFF FFD97FFE 7FFFF77D C616D07B DAFFFFFF FFA6FFFE
7FFFF07D F5D6D7FB DAFFFFFF FF7EFFFE 7FFFEFBE ED96D77B DDFFFFFF FEC5FFFE 7FFFEFBF 1E56D8F8
3DFFFFFF FD85FFFE 7FFFFFFF FFFFFFFF FDFFFFFF FB0BFFFE 7FFFFFFF FFFFFFFF FBFFFFFF F71BFFFE
7FFFFFFF FFFFFFFF FFFFFFFF EFF7FFFE 7FFEFBFF FFFFFDFF 83FFFFFF DFF7FFFE 7FFE73FF FFFFFDFF
BDFFFFFF BFEFFFFE 7FFE7318 61C7E58F BD8E3FFF 71EFFFFE 7FFEAAEB AEBBD977 8175DFFE E1DFFFFE
7FFEAA0B AEBBDD07 BD067FFD C1DFFFFE 7FFEAAFB AEBBDD7F BD7FBFFB C3BFFFFE 7FFEDAEB AEBBD977
BD75DFF7 87BFFFFE 7FFEDB1B AEC7E58F 838E3FEF 877FFFFE 7FFFFFFF FFFFFFFF FFFFFFDF FF7FFFFE
7FFFFFFF FFFFFFFF FFFFFFBF FEFFFFFE 7FFFFFFF FFFFFFFF FFFFFF7F FEFFFFFE 7FFFFFFF F1C7183F
FFFFFEF8 3DFFFFFE 7FFFFFFF EEBAEF7F FFFFFDF0 7DFFFFFE 7FFFFFFF FEBAEF7F FFFFFBE0 7BFFFFFE
7FFFFFFF FEBAEEFF FFFFF7C0 FBFFFFFE 7FFFFFFF FDBAEEFF FFFFEF81 F7FFFFFE 7FFFFFFF FBBAEDFF
FFFFDF81 F7FFFFFE 7FFFFFFF F7BAEDFF FFFFBF03 EFFFFFFE 7FFFFFFF E0C71DFF FFFF7E07 EFFFFFFE
7FFFFFFF FFFFFFFF FFFEFE07 DFFFFFFE 7FFFFFFF FFFFFFFF FFFFFFFF FFFFFFFE 7FFFFFFF FE3FFF7F
7AFFFFBF FFFFFFFE 7FFFFFFF FDDFFFFF 77FFFFBF FFFFFFFE 7775DD77 7BF8E363 6E872CB1 A1F8D65E
76B5AD6B 7BF75D5D 4EBACB2E 96F74D9E 7AAEABAA FBF8675D 2EBAEBAE B6F75DDE 7AAEABAA FBF77B5D
76BAEBAE B6F75DDE 7DDF77DD FDD65D5D 76BACB2E B6F75D9E 7DDF77DD EE396363 7ABB2CB1 B6D8DE5E
7FFFFFFF FFFFFFFF FFFFEFFF FFFFFFDE 7FFFFFFF FFFFFFFF FFFE1FFF FFFFFC3E 7FFFFFFF FFFFFFFF
FFFFFFFF FFFFFFFE 00000000 00000000 00000000 00000000
Ensuite je récupère un fichier binaire contenant ces données (au lieu de leur représentation textuelle) :
# J'obtiens un fichier de 1024 octets puisqu'il y a 256 int de 4 octets chacun
Et enfin je convertis du format brut en PNG avec convert.
% convert -size 128x64 mono:image.bin -negate image.png
Et voilà.
Citer : Posté le 13/10/2021 20:13 | #
Wow !
Merci beaucoup !!
Citer : Posté le 06/11/2021 10:27 | # | Fichier joint
Quelques nouvelles du front !
Après avoir subit de lourdes pertes lors de la dernière offensive (oui j'ai passé plus de 2 heures sur une erreur conne ) j'ai quand même réussi à bien avancer !
Par rapport aux derniers objectifs que j'avais donné :
En termes d'avancées non prévues, j'avoue être assez content de moi ! Quasiment tous les menus du jeu d'origine sont parfaitement fonctionnels. J'en ai profité pour changer quelques petits détails qui me plaisaient pas trop
Toujours pas d'image parce que je sais pas prendre de screenshot depuis Gint… J'ai utilisé une police custom, ça rend plutôt bien. Et c'est tout pour cette fois
@RDP
Ajouté le 23/01/2022 à 18:41 :
J'ai pas plus avancé, mais j'ai des screenshots ! xD Et c'est parti pour une petite visite en image :
Le menu principal du jeu avec la map (en haut à gauche c'est le mois - année) :
Le map en mode "construction" (pour rajouter des bâtiments à la map donc) avec le nom du bâtiment et son prix en haut :
Les statistiques avec une barre de scroll :
Le menu des options (avec possibilité de changer la vitesse du jeu, d'enlever les animations, et de supprimer les catastrophes)
Un des deux menus de construction :
Le panel des taxes / impôts :
Citer : Posté le 23/01/2022 19:00 | #
Joli ! Si je peux me permettre, le texte est parfois dur à lire, surtout sur le deuxième screen et dans une moindre mesure sur les autres. Avoir un fond blanc autour du texte dessiné sur la map (avec un pixel de blanc de marge autour) parait important. Je ne suis pas non plus certain que le 2 pixels d'espacement entre chaque lettre aide la lisibilité.
C'est cool le remix, je ne suis pas très bon à ce genre de jeux mais ça me plaîrait d'en jouer plus
Citer : Posté le 23/01/2022 20:27 | #
Yay~ merci !
Pour le deuxième screen, je suis d'accord, même on calc, c'est pas simple à lire, je vais voir pour corriger ça.
Pour les deux pixels d'espacement, c'est fix, j'avais mal réglé la police dans fxconv. x)
Ajouté le 23/01/2022 à 21:39 :
J'ai revu la police :
Citer : Posté le 23/01/2022 21:42 | #
Excellent ! C'est une amélioration sensible je pense.
Citer : Posté le 23/01/2022 21:45 | #
Ouaip c'est vrai que c'est plus joli comme ça !
Au niveau de ce qu'il me reste à faire :
Je suis pas sûr d'avoir tout listé, mais quand tout ça sera fait, la refonte aura bien progressé.
Citer : Posté le 20/06/2022 15:26 | #
Alors ! Quelques (bonnes) nouvelles !
Les routes sont complètements gérées, de même pour les chemins ferrés et les côtes. Les gros bâtiments aussi, ainsi toutes les destructions. Les catastrophes sont implémentées aussi. En bref il ne me reste que la sauvegarde à faire pour terminer ce projet.
Et c'est là que le bât blesse… J'ai regardé le header de bfile.h de Gint sans trop comprendre comment ça fonctionne. Dans l'idée j'aimerais un truc assez simple :
1. dans le main avant de tout lancer, je regarde si la sauvegarde existe via BFileFindFirst mais autant le premier argument je vois à quoi il correspond, autant les autres je comprends pas… Si on veut juste savoir si le fichier existe pourquoi demander 4 arguments ? ^^'
2. si le fichier n'existe pas, on s'en occupe pas pour l'instant et on initialise avec des valeurs par défaut
3. sinon on récupère les données via BFileRead juste pour être sûr : handle est un pointeur vers un fichier, pointeur que l'on obtient à l'étape (1) ?
4. avant de quitter on supprime la sauvegarde si elle existait et on créer un nouveau fichier que l'on rempli via BFileWrite mais là aussi j'ai un petit problème : j'ai trois structure de données différentes à stocker, il faut que je fasse une méta-structure qui contient tout et j'envoie ça dans le fichier ?
Voila voila, merci d'avance
Citer : Posté le 20/06/2022 15:31 | #
La réponse facile est n'utilise pas BFile, utilise <stdio.h>. Pour savoir si le fichier existe, tu peux soit tenter de l'ouvrir en lecture avec fopen() (un peu bourrin, mais si c'est pour charger la partie tu vas le faire de toute façon), soit utiliser stat() de <sys/stat.h> (le valeur de retour vaudra -1 avec errno=ENOENT s'il n'existe pas, et, sauf autre erreur, 0 s'il existe).
N'oublie pas de faire un world switch pour manipuler le système de fichiers.
Citer : Posté le 20/06/2022 15:33 | #
Ah x)
Merci de ta réponse je vais regarder ça
C'est quoi un "world switch" ? ^^'