[Projet] Elphorina
Posté le 30/12/2020 12:25
Bonjour !
Je suis en train de créer un jeu vidéo pour Graph Monochrome, je vous laisse pour l'histoire avec le README du dépôt Git :
Elphorina est un jeu pour Casio Graph Monochromes.
L'histoire : Dans le royaume d'Elphorina, deux camps se livrent une bataille sans merci pour une terre : le comté de Hannenbourg.
Vous êtes le réconciliateur, c'est-à-dire que vous avez le pouvoir de réconcilier les camps ennemis.
Vous devez donc vous rendre dans le comté d'Hannenbourg, pour arrêter cette guerre, donc vous vous enfermez 2 mois dans votre maison pour réviser vos secrets de magiciens.
Au bout de ces 2 mois, on a oublié de vous dire un petit détail : le royaume a été ravagé par une tempête, qui a tout détruit sur son passage.
Votre but ? Le reconstruire pour pouvoir passer.
Mais vous ne pourrez pas toujours ne mettre qu'un bout de bois ! Il faudra faire preuve d'une grande ingéniosité pour reconstruire le chemin...
Je vais avancer progressivement là dessus, en attendant vous pouvez trouver le dépôt (mis à jour régulièrement) ici :
https://gitea.planet-casio.com/Potter360/Elphorina
Enjoy
Citer : Posté le 01/01/2021 12:01 | #
La je ne peux pas mais je vais tester
Hypothèse : il faudra afficher le perso à y=16 car 16+24 = 40 : le perso s'affiche donc de 16 à 40 puis en bas de 40 à 56, il ya le bloc ...
Ajouté le 02/01/2021 à 20:01 :
Mon hypothèse est validée, ca a marché !
Le résultat final :
(Apparement, le screen shot sur Gint est compliqué, donc désolé pour la qualité !
Ajouté le 02/01/2021 à 20:35 :
D'ailleurs, y-a-til un moyen de faire en sorte que la caméra suive le personnage (que si le personnage arrive au bout de l'écran, la camera avance)
Citer : Posté le 02/01/2021 20:51 | #
Oui : avec les bonnes variables, et en réfléchissant un peu.
Pour ce dernier point, on ne pourra pas le faire pour toi.
Fais un schéma sur papier, illustre les variables sur le dessin (position du monde, position de la caméra, position du joueur, coordonnées à l'écran), et tu verra qu'avec quelques soustractions tu peux le faire tout seul
Citer : Posté le 02/01/2021 21:02 | #
Je vais voir ca.
Hypothèse : faire une variable ybloc=0, mettre le 1er bloc à ybloc puis le 2ème à ybloc+16 puis le 3ème à ybloc+32...
Et quand x=128( fin de l'écran) enlever 1 à ybloc.
Citer : Posté le 02/01/2021 21:04 | #
Ça peut être une solution. Ce n'est pas la seule, mais c'est un bon début o/
Citer : Posté le 02/01/2021 21:07 | #
Bon, et bien je vais coder ca
Merci !
Citer : Posté le 02/01/2021 21:11 | #
Spoiler : la prochaine fois, code-le directement.
Citer : Posté le 02/01/2021 21:41 | #
Oui, désolé !
Ajouté le 02/01/2021 à 22:37 :
Après avoir marché quelque temps dans le jeu, j'ai un vilain SysError :
J'ai cherché, mais je ne m'y connais pas et je ne sais pas dechiffrer les SysError...
Ajouté le 02/01/2021 à 22:38 :
(Désolé pour la qualité)
Citer : Posté le 02/01/2021 22:47 | #
La fonction à l'adresse 003018ca (tu peux la trouver dans build-fx/map) a tenté de lire l'adresse mémoire 0xfffffeb1 n'importe comment. C'est peut-être un entier de valeur -335 que tu as pris pour un pointeur.
Citer : Posté le 03/01/2021 12:56 | #
Pour le SysError, je ne trouve vraiment pas, tu peux trouver le code sur le Gitea du projet.
En me balladant dans le jeu, j'ai trouvé un nouveau SysError :
Voici le résultat sinon !
Ajouté le 04/01/2021 à 17:46 :
Niveau SysError, je ne trouve pas le problème, le code est sur Gitea : https://gitea.planet-casio.com/Potter360/Elphorina
Ajouté le 04/01/2021 à 19:34 :
Pour un entier de -335, à la limite je pourrai avoir xref, mais je ne vois pas où il a pu se confondre avec un pointeur...
Ajouté le 05/01/2021 à 18:54 :
Y a til moyen de récupérer le nombre d'objets dans :
{ &img_bloc, 55 , bloc , true, false, 16, &ListOfObjects[1] },
{ &img_bloc, 55 , bloc , false, false,32, &ListOfObjects[2] },
{ &img_bloc, 55 , bloc , false, false,48, &ListOfObjects[3] },
{ &img_bloc, 55 , bloc , false, false,64, &ListOfObjects[4] },
{ &img_bloc, 55 , bloc , false, false,80, &ListOfObjects[5] },
{ &img_bloc, 55 , bloc , false, false,96, &ListOfObjects[6] },
{ &img_bloc, 55 , bloc , false, false,112,&ListOfObjects[7] },
{ &img_bloc, 55 , bloc , false, false,128,&ListOfObjects[8] },
{ &img_bloc, 55 , bloc , false, false,144,&ListOfObjects[9] },
{ &img_bloc, 55 , bloc , false, true, 160,&ListOfObjects[0] },
};
Ajouté le 05/01/2021 à 19:44 :
Ou en tout cas de faire une boucle for (i=0;i=[nombre_d'objets];i++)
Citer : Posté le 05/01/2021 20:59 | #
sizeof(ListOfObjects) / sizeof(struct object);
(Assuming ListOfObjects is used directly without being a function parameter)
Citer : Posté le 06/01/2021 16:13 | #
Release :J'ai changé le système d'affichage, avec une liste d'objets.
Certains me diront KISS mais je trouve ça plus pratique !
Le lien : https://gitea.planet-casio.com/Potter360/Elphorina
Citer : Posté le 06/01/2021 21:14 | #
I noticed you had
Citer : Posté le 07/01/2021 08:17 | #
Oh thanks !
Citer : Posté le 08/01/2021 15:37 | #
Bonjour, jai essaye de telecharger avec le g1a sur gitea, apparement c'est cense s'arreter quand il n'ya plus de blocs mais ca continue, c'est normal ?
Citer : Posté le 08/01/2021 15:43 | #
Oui, c'est normal, j'essaye de trouver depuis tout à l'heure le bug mais je trouve pas... Petit appel aux gens qui s'y connaissent
Citer : Posté le 08/01/2021 15:44 | #
Ok, je vais attendre que tu trouve le bug ou que les gens qui s'y connaissent le trouvent
Citer : Posté le 09/01/2021 16:39 | #
Je ne trouve pas le problème, bizarre...
Ajouté le 10/01/2021 à 19:22 :
HELP !
Citer : Posté le 10/01/2021 20:09 | #
On te répondra quand tu aura décrit et isolé ton problème, ce que tu as fait, ce que tu n'a pas fait, que tu pense faire, et prouvé que t'as un minimum bossé avant que les autres ne le fassent pour toi.
Citer : Posté le 10/01/2021 21:15 | #
Les objets sont definis entre autre par une bool isCommenced et isFinish (isCommenced indique si le bloc commence une ligne de blocs,donc si il y a un bloc avant, et isFinish si il ya un bloc après)
Le personnage est defini par entre autre isWalkableTop et isWalkableBack, je vous laisse comprendre
Donc dans mon code j'ai : désolé pour l'indentation dégueulasse, ce n'est pas comme ca dans mon code)
for(i=0;i<=(sizeof(ListOfObjects) / sizeof(struct object));i++)
{
if(current_player->x == xref+current_object->XrefAdd && current_object->isFinish == true)
{
current_player->isWalkableTop = false;
}
}
Ici isWalkableTop = true au départ, et si la position x du joueur est la meme que celle du bloc selectionné et que ce bloc a sa variable isFinish selectionée, alors on ne peut pas marcher donc isWalkableTop = false.
Ensuite j'ai juste : if(isWalkableTop = true)
xref=xref+1
Je ne vois pas où ca coince...
Citer : Posté le 10/01/2021 21:17 | #
if(isWalkableTop = true) n'est pas une condition, ça assigne true à la variable avant de la tester (auquel cas elle est vraie puisque tu viens de la mettre à true).
Ajouté le 10/01/2021 à 21:18 :
Pour information sous GCC, avec -Wall -Wextra tu as des warnings pour ça (la syntaxe habituelle est d'écrire if((isWalkable = true)) pour montrer que c'est fait exprès.)
Citer : Posté le 10/01/2021 21:24 | #
Non, en fait je me suis trompé dans mon message, j'ai bien mis ==...