Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.

Forum Casio - Projets de programmation


Index du Forum » Projets de programmation » [en dévelopement] Donkey Kong FX
Pedrobzh Hors ligne Membre Points: 616 Défis: 0 Message

[en dévelopement] Donkey Kong FX

Posté le 24/04/2021 14:09

bonjour, je usi enfin dékick, et mon projet Donkey Kong FX a bien avancé!
le jeu est développé avec gint (cmake)

il y aura plusieurs modes de jeu:
Donkey Kong FX infinite (premier à sortir):
dans cette version il faudra monter (enchaîner) le ou les mêmes niveaux pour battre votre meilleur record

Donkey Kong FX:
version de base, une dizaines de niveaux inclus
note: les niveaux sont inclus dans le binaire

Donkey Kong FX edited:
des versions pouvant être construit par la communauté PC avec des niveaux inédits que je n'aurais pas pus faire (mon inspiration est NULLE)

note pour les admins: c'est pas du spam, pour le jeu j'ai un moteur, des des classes de niveaux or pour chaque modification de gameplay je dois modifier le moteur, donc je dois compiler chaque variants du moteur indépendamment
note pour les admins 2: mon kick est finit mais vous avez oublié mon ban ip et ma 4g est pas infinie : (


Pedrobzh Hors ligne Membre Points: 616 Défis: 0 Message

Citer : Posté le 25/04/2021 09:21 | #


annonce
je conte programmer ensuite un version que supporte les niveaux externes (fichiers)
ce sera juste un binaire qui contient une liste de 128 int

Ajouté le 25/04/2021 à 22:27 :
je développe finalement un système de niveau avec éditeur de niveau ULTRA facile:
paint (ou koulourpaint sur linux)
un niveau sera un simple .bmp avec les pixels (en rgb) qui correspond a des blocks au autres
il y aura:
-les blocks (issus de la tilemap, mêmes collisions entre eux)
-les objets prédéfinis dans le code du jeu (précise juste leur endroit de spawn)
- les spawn a objets, qui font spawn a un temps d'intervalle prédéfinit dans le code du jeu des objets (mobs,plateforme...)
pensés suicidaires
   90%
Massena Hors ligne Rédacteur Points: 1894 Défis: 11 Message

Citer : Posté le 29/04/2021 22:17 | #


Coucou Pedro,
Ça a l'air sympa. Tu as des images pour nous teaser dans la RdP ? Des avancées ?
Pedrobzh Hors ligne Membre Points: 616 Défis: 0 Message

Citer : Posté le 30/04/2021 08:20 | #


oui mais je sais pas comment prendre une photo de l’écran
et j'utilise le moteur de gris
pensés suicidaires
   90%
Lephenixnoir Hors ligne Administrateur Points: 20809 Défis: 143 Message

Citer : Posté le 30/04/2021 09:19 | #


Oui c'est un peu compliqué, il faut sauvegarder les VRAMs dans un fichier et ensuite reconstituer l'image sur l'ordinateur. Si tu crées un dépôt avec ton code je pourrai te soumettre une PR avec le code pour faire ça.
Pedrobzh Hors ligne Membre Points: 616 Défis: 0 Message

Citer : Posté le 30/04/2021 10:07 | #


il y a une librairie pour lire les .bmp sous gint?
pensés suicidaires
   90%
Shadow15510 Hors ligne Administrateur Points: 4981 Défis: 16 Message

Citer : Posté le 30/04/2021 10:07 | #


Les bmp je ne sais pas, mais les png sont bien gérés.
"Ce n'est pas parce que les chose sont dures que nous ne les faisons pas, c'est parce que nous ne les faisons pas qu'elles sont dures." Sénèque

Lephenixnoir Hors ligne Administrateur Points: 20809 Défis: 143 Message

Citer : Posté le 30/04/2021 10:10 | #


Attention à ne pas confondre deux choses ; dans gint tu ne peux ni lire des BMP ni lire des PNG dans l'add-in ; mais le fxSDK a un outil qui s'appelle fxconv et qui peut convertir à peu près n'importe quelle image (placée dans assets-fx ou assets-cg) en un format lisible par gint à la compilation.

La question importante est donc : est-ce que l'image tu l'as déjà au moment où tu compiles l'add-in ? SI oui, mets-la dans assets-fx ou assets-cg, liste la dans le CMakeLists.txt si tu utilises CMake et rien si tu utilises un Makefile, et tout ira tout seul. Tu peux l'enregistrer en BMP, PNG, GIF, ce que tu veux.

Si non, alors c'est plus compliqué ; surtout que lire un fichier dans la mémoire de stockage est extrêmement lent.
Massena Hors ligne Rédacteur Points: 1894 Défis: 11 Message

Citer : Posté le 10/05/2021 06:33 | #


Tant que j'y pense,pouf, je case un @RDP pour cette semaine
Pedrobzh Hors ligne Membre Points: 616 Défis: 0 Message

Citer : Posté le 10/05/2021 07:24 | #


ok

Ajouté le 03/06/2021 à 07:40 :
je refais le code en C, je me suis perdu dans ces fichues classes toutes mélangés entre-elles

Ajouté le 03/06/2021 à 07:52 :
qui s'y connais en timers, j'ai suivit le tuto de lephe et j'ai fait ça:
#include <gint/display.h>
#include <gint/keyboard.h>
#include <gint/gray.h>
#include <gint/timer.h>
#include <gint/clock.h>
#define ENGINE_TICK 10

//////// TIMER SETUP ////////
static int callback_tick(volatile int *tick){
    *tick = 1;
    return TIMER_CONTINUE;
}
static volatile int tick = 1;

int t = timer_configure(TIMER_ANY, ENGINE_TICK*1000, GINT_CALL(callback_tick, &tick));

//////// MAIN LOOP  ////////
int main(void){
    ////////SETUP PROGRAM////////
    //gray engine
    dclear(C_WHITE);
    dgray(DGRAY_ON);
    dupdate();
    //timer
    if(t >= 0) timer_start(t);

    ////////PROGRAM LOOP////////
    while(1){

    }
    ///////  EXIT CODE  ////////
    //timer
    if(t >= 0) timer_stop(t);
    //gray engine
    dclear(C_WHITE);
    dgray(DGRAY_OFF);
    dupdate();
    //exit
    return 1;
}


et ça me donne ça:
 pierre  ~  casio-fx  cdonkeykong  fxsdk build-fx

:: Making into build-fx

sh-elf-gcc -c src/main.c -o build-fx/src/main.c.o -mb -ffreestanding -nostdlib -fstrict-volatile-bitfields -Wall -Wextra -Wno-missing-field-initializers -Os -D FX9860G -m3 -I include -MMD -MT build-fx/src/main.c.o -MF build-fx/src/main.c.d -MP
src/main.c:15:9: warning: implicit declaration of function 'timer_configure' [-Wimplicit-function-declaration]
   15 | int t = timer_configure(TIMER_ANY, ENGINE_TICK*1000, GINT_CALL(callback_tick, &tick));
      |         ^~~~~~~~~~~~~~~
src/main.c:15:54: warning: implicit declaration of function 'GINT_CALL' [-Wimplicit-function-declaration]
   15 | int t = timer_configure(TIMER_ANY, ENGINE_TICK*1000, GINT_CALL(callback_tick, &tick));
      |                                                      ^~~~~~~~~
src/main.c:15:9: error: initializer element is not constant
   15 | int t = timer_configure(TIMER_ANY, ENGINE_TICK*1000, GINT_CALL(callback_tick, &tick));
      |         ^~~~~~~~~~~~~~~
make: *** [Makefile:121 : build-fx/src/main.c.o] Erreur 1


pour info je suis sous gint dev 2.2.1
pensés suicidaires
   90%
Lephenixnoir Hors ligne Administrateur Points: 20809 Défis: 143 Message

Citer : Posté le 03/06/2021 10:36 | #


src/main.c:15:9: warning: implicit declaration of function 'timer_configure' [-Wimplicit-function-declaration]

Cet avertissement signifie que GCC n'a pas connaissance de l'existence de timer_configure. Cette fonction est déclarée par <gint/timer.h>, que tu as inclus. Cependant tu utilises une version de gint où cette fonction n'existe pas encore (et le mécanise GINT_CALL non plus).

Tu peux soit mettre à jour soit utiliser la version équivalente de gint 2.2.1 :

int t = timer_setup(TIMER_ANY, ENGINE_TICK*1000, callback_tick, &tick);

Comme tu peux le voir, avant on n'avait droit qu'à un paramètre (et moins de types étaient autorisés).

src/main.c:15:9: error: initializer element is not constant

Celle-là est un peu moins claire dans le contexte, mais essentiellement le problème est que tu as mis du code (l'appel à timer_configure()) alors que tu n'es pas dans une fonction. Tu ne peux donner des instruction que dans une fonction, dans ce cas ça devrait être au début de main.

Et pour finir :

dclear(C_WHITE);
dgray(DGRAY_ON);
dupdate();

Il faut lancer dgray() avant de commencer à dessiner sinon tu obtiens n'importe quoi !
Pedrobzh Hors ligne Membre Points: 616 Défis: 0 Message

Citer : Posté le 04/06/2021 14:11 | # | Fichier joint


voici une partie du moteur physique, y y a les déplacements
https://linx.breizh.pm/nx9ulnzi.g1a
lien disponible 1 mois, si il est plus disponible regardez le fichier joint

Ajouté le 04/06/2021 à 14:13 :
info: appuyez sur la touche [TAN] pour voir le debug mode
pensés suicidaires
   90%
Inikiwi Hors ligne Membre Points: 167 Défis: 0 Message

Citer : Posté le 31/08/2021 14:50 | #


ça ma donné une super idée de jeu! en plus, le projet est abandonné

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 v42 © créé par Neuronix et Muelsaco 2004 - 2021 | Il y a 45 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