#0 

23-04-2007 11:43:08

franck06
Petit nouveau
Date d'inscription: 19-04-2007
Messages: 6

Salut à tous,

j'ai testé la gestion des événements clavier fournie par les tutoriaux, mais ce n'"est pas satisfaisant pour faire un jeu (on peut par exemple appuyer sur une seule touche à la fois sans quoi ca annule la première touche appuyée...)
bref, je me demandais si quelqu'un avait déjà écrit un petit code pour la gestion du clavier pour un jeu quelconque, histoire que l'on puisse tourner en avancant par exemple dans un jeu de voiture...

merci

Dernière modification par franck06 (23-04-2007 13:02:33)

Hors ligne


#1 

23-04-2007 16:44:31

Manfeukou
Petit nouveau
Date d'inscription: 18-04-2007
Messages: 6

Salut !

Moi j'utilise le principe des keystates (avec ça, tu peux rester appuyer sur la touche, l'action est répétée) et ce que tu veux faire est possible grâce à ça.

Code:

class MyEventReceiver : public IEventReceiver
{
public:
    bool Keys[KEY_KEY_CODES_COUNT]; 

    bool OnEvent(SEvent event)
    {
        if (event.EventType == EET_KEY_INPUT_EVENT)
        {
            Keys[event.KeyInput.Key] = event.KeyInput.PressedDown;
            return true;
        }
        return false;
    }

    MyEventReceiver()
    {
        for (s32 i=0; i < 256; i++)
        {
            Keys[i] = false;
        }
    }
};

MyEventReceiver receiver;

device->setEventReceiver(&receiver);

Après tu fais une fonction que tu mets dans ta boucle principale:

Code:

void event_manager()
{
    if (receiver.Keys[KEY_KEY_Z])
    {
        // L'action quand on appuie sur la touche Z
    }
}

Hors ligne


#2 

23-04-2007 18:27:14

Jerry Kan
Habitué
Date d'inscription: 21-11-2006
Messages: 265

Merci Manfeukou pour le bout de code wink je cherchais justement un bout de code propre pour faire ca (je fais souvent des bourdes dans le on_event )

Hors ligne


#3 

23-04-2007 21:35:57

franck06
Petit nouveau
Date d'inscription: 19-04-2007
Messages: 6

Super, ca marche impeccable
merci beaucoup !

Hors ligne


Options Liens officiels Caractéristiques Statistiques Communauté
Corrections
irrlicht
irrklang
irredit
irrxml
xhtml 1.0
css 2.1
Propulsé par FluxBB
Traduit par FluxBB.fr
883 membres
1429 sujets
11121 messages
Dernier membre inscrit: Saidov17
82 invités en ligne
Aucun membre connecté
RSS Feed