Input pour gameboy advance avec visual ham

Soyez le premier à donner votre avis sur cette source.

Vue 8 344 fois - Téléchargée 196 fois

Description

Ce programme sert à rien :p mais aide à comprendre le fonctionnement INPUT sur GBA.

Programmé avec Visual HAM (sorte de Visual C++ 6 plus simple que DevKit Advance pour la programmation sur GBA).

Source / Exemple :


//////////////////////////////////////////
//   INPUT BY NEO_00110010101    //
// neo_00110010101@hotmail.com //
//////////////////////////////////////////

// Toujours le même début ;-)
#include <mygba.h>

// Fonction: main()
int main()
{
    // Variable
    bool bouton_presse = 0;

    // Initialisation de HAMlib
    ham_Init();

    // Initialisation du système d'affichage de texte en BGMODE 0
    ham_InitText(0);

    // On écrit des trucs :
    ham_DrawText(0,19,"neo_00110010101");
    ham_DrawText(0,0,"Press any button");
    ham_DrawText(0,1,"-------------------------------");
    ham_DrawText(0,2,"RIGHT");
    ham_DrawText(0,3,"LEFT");
    ham_DrawText(0,4,"UP");
    ham_DrawText(0,5,"DOWN");
    ham_DrawText(0,6,"A");
    ham_DrawText(0,7,"B");
    ham_DrawText(0,8,"SELECT");
    ham_DrawText(0,9,"START");
    ham_DrawText(0,10,"L");
    ham_DrawText(0,11,"R");
    ham_DrawText(20,16,"started :");
    ham_DrawText(20,17,"22/01/2004");
    ham_DrawText(20,18,"finished :");
    ham_DrawText(20,19,"24/01/2004");
    ham_DrawText(0,14,"------------------------------");
    ham_DrawText(0,15,"Button pressed :");

    // Boucle jusqu'à ce qu'un bouton soit pressé
    while(bouton_presse == 0)
    {
        // On regarde s'il y a un bouton pressé
        if (F_CTRLINPUT_UP_PRESSED)
        {
             
            // Si oui, on affiche "1" et "UP" (La flèche du haut du pad)
            ham_DrawText(8,4,"1");
            ham_DrawText(0,16,"UP");
        }
            // Sinon, on affiche "0" et des espaces pour effacer la zone où est écrit UP/DOWN etc...
            else
            {
                ham_DrawText(8,4,"0");
                ham_DrawText(0,16,"      ");
            }
        if (F_CTRLINPUT_DOWN_PRESSED) // Même chose pour la flèche du bas du pad
        {
            ham_DrawText(8,5,"1");
            ham_DrawText(0,16,"DOWN");
        }
            else
            {
                ham_DrawText(8,5,"0");
            }
        if (F_CTRLINPUT_LEFT_PRESSED) // Pour la gauche
        {
            ham_DrawText(8,3,"1");
            ham_DrawText(0,16,"LEFT");
        }
            else
            {
                ham_DrawText(8,3,"0");
            }
        if (F_CTRLINPUT_RIGHT_PRESSED) // Pour la droite
        {
            ham_DrawText(8,2,"1");
            ham_DrawText(0,16,"RIGHT");
        }
            else
            {
                ham_DrawText(8,2,"0");
            }
        if (F_CTRLINPUT_A_PRESSED) // Pour le bouton A
        {
            ham_DrawText(8,6,"1");
            ham_DrawText(0,16,"A");
        }
            else
            {
                ham_DrawText(8,6,"0");
            }
        if (F_CTRLINPUT_B_PRESSED)// Pour le B
        {
            ham_DrawText(8,7,"1");
            ham_DrawText(0,16,"B");
        }
            else
            {
                ham_DrawText(8,7,"0");
            }
        if (F_CTRLINPUT_SELECT_PRESSED) // Pour le bouton SELECT
        {
            ham_DrawText(8,8,"1");
            ham_DrawText(0,16,"SELECT");
        }
            else
            {
                ham_DrawText(8,8,"0");
            }
        if (F_CTRLINPUT_START_PRESSED) // Pour le bouton START
        {
            ham_DrawText(8,9,"1");
            ham_DrawText(0,16,"START");
        }
            else
            {
                ham_DrawText(8,9,"0");
            }
        if (F_CTRLINPUT_L_PRESSED) // Pour la gachette L
        {
            ham_DrawText(8,10,"1");
            ham_DrawText(0,16,"L");
        }
            else
            {
                ham_DrawText(8,10,"0");
            }
        if (F_CTRLINPUT_R_PRESSED) // Pour la gachette R
        {
            ham_DrawText(8,11,"1");
            ham_DrawText(0,16,"R");
        }
            else
            {
                ham_DrawText(8,11,"0");
            }

    
    }

    return 0;
} // Fin de la fonction main()

Conclusion :


Ce programme affiche aussi le nom de la touche pressée mais je l'ai fait d'une telle manière que ça clignote parfois ... à améliorer :)

et puis il date ce programme !

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Messages postés
32
Date d'inscription
mardi 10 février 2004
Statut
Membre
Dernière intervention
22 août 2005

Franchement, c'est super, et je suis très attiré par ces machines : j'ai commencé la programmation sur calculette, et, depuis, je n'ai toujours pas arrêté!
Messages postés
360
Date d'inscription
samedi 27 septembre 2003
Statut
Membre
Dernière intervention
30 mai 2006

J'oubliais : Visual HAM dispose de l'émulateur VisualBoy Advance (bah oui faut bien voir si tes progs marchent !) mais tu peux aussi télécharger celui-ci gratos ici : http://vba.ngemu.com/downloads.shtml

Moi aussi je suis un fou de 3D et maintenant je m'intéresse à l'IA alors imagine le jour où je ferai un jeu en 3D avec une IA ...
Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
8
cool moi c'est surtout la 3d qui m'interesse
Messages postés
360
Date d'inscription
samedi 27 septembre 2003
Statut
Membre
Dernière intervention
30 mai 2006

lol, voici un site rempli de très bon tutoriaux :
> http://www.aaronrogers.com/ham/index.php
ça, c'est LE site de développement GBA :
> http://www.gbadev.org/
et là c'est une autre communauté très grande et très active (mais alors TRES)
> http://www.playeradvance.org/

Sinon, sur GBAdev tu verras des demos de malades !! des demo 3D ...
Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
8
ba ca va alors, la derniere c'est la 2.5 et moi j'ai la 2.7!
Afficher les 25 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.