begin process at 2008 08 30 13:40:23
1 234 024 membres
59 nouveaux aujourd'hui
14 294 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

COMPOSANT "JOYPAD"POUR FLASHCS3


Information sur la source

Catégorie :Objets à insérer Classé sous : jeu, joypad, controle, facile, FlashCs3 Niveau : Initié Date de création : 14/06/2008 Date de mise à jour : 15/06/2008 00:03:17 Vu / téléchargé: 1 723 / 123

Note :
Aucune note

Commentaire sur cette source (8)
Ajouter un commentaire et/ou une note


Description

Je me suis toujours demandé si je serais capable de créer un composant qui avec le temps pourrait devenir un standart. Mais quel type de composant ? Mais comment partager son travail sans se le faire voler ? C'est impossible... On peut limiter la casse mais rien de plus réellement.

Donc pas grave je prend le risque.

Le composant est livrée avec 3 Fla expliquant sont fonctionnement.
Plus d'infomations au fur et à mesure. Désolé manque de temps...

Source

  • hope.games.joypad.Joypad
  • |_JoypadKey
  • hope.games.events.JoypadEvent
  • |_JoypadKeyEvent
  • |_JoypadStickEvent
  • On va donc essayer d'expliquer comment cela fonctionne :
  • 1/ Joypad est donc un composant AS3 qu'il vous faut posséder dans la bibliothèque du Fla l'utilisant.
  • 2/ Le chemin du package et son contenu étant décris ci-dessus.
  • 3/ L'importation se faisant de faÇon classique : "import hope.games.joypad.Joypad"
  • 4/ Le composant répondant aux appels claviers, il faut donc le connecter à un objet "visuel". J'ai personnelement choisi, dans le cas de ce composant, l'objet "stage".
  • 5/ Une fois "connecter", l'instance Joypad se chargera d'émettre des évents "touche" correspondant.
  • 6/ Chaque touche pouvant mémoriser son "temps de pression" et ainsi indiquer le temps restant avant de revenir à un état "initial".
  • 7/ Les touches "left, up, right and down" étant l'équivalent d'un pad sur un Joypad.
  • 8/ Les touches "console, select et start", ne fonctionnant elles, comme des touches traditionnelles. la seule différence étant que une fois maintenue pressées, elles n'emette plus d¡event "keyDown".. Elle émettront simplement l'event suivant : "keyUp".
  • 9/ L'ensemble des touches (et du Joypad) essayant de rester "adpatable" aux besoins de tout à chacun.
  • Voici la structure d'une instance "Joypad":
  • // la vitesse d'émission des évènements. Par default : 25 ms.
  • var speed :uint ;
  • // Si est en train d'écouter un objet "stage".
  • var connected :Boolean ;
  • // Permet à l'instance de répondre aux entrées clavier.
  • function connect( stage:Stage ) ;
  • // Emmet un event "JoypadEvent.CONNECT"
  • // Arrête l'écoute des évènements clavier,
  • function disconnect():void ;
  • // Emmet un event "JoypadEvent.DISCONNECT"
  • // Indique à l'instance d'appuyez sur une touche.
  • // Son utilisation étant plus adaptée à la "manipulation" d'une instance vià une AI.
  • function press( key:JoypadKey ):void ;
  • // Emmet un event "JoypadKeyEvent.DOWN"
  • // Indique à l'instance de relacher une touche.
  • // Son utilisation étant plus adaptée à la "manipulation" d'une instance vià un AI.
  • function release( key:JoypadKey ):void;
  • // Emmet un event "JoypadKeyEvent.UP"
  • // Si posséde l'isntance passée
  • function hasKey( key:JoypadKey ):Boolean ;
  • // Ajoute un nouvelle touche au "joypad"
  • function addKey( key:JoypadKey ):Boolean ;
  • // Retire un touche de l'instance
  • function removeKey( key:JoypadKey ):Boolean ;
  • // Si la touche passée est actuellement pressée
  • function isDown ( key:JoypadKey ):Boolean ;
  • // Retourne l'instance Joypadkey correspondant au nom passée.
  • function getKeyName( name:String ):JoypadKey;
  • // Retourne l'instance Joypadkey correspondant au "keyCode" passée.
  • function getKeyCode( code:int ):JoypadKey;
  • // Retourne un evenement "JoypadStickEvent" (de type "infos") correspondant aux
  • // attributs des touches directionnelles au moment de l'appel de la fonction.
  • function getStickEvent( type:String='infos' ):JoypadStickEvent ;
  • Si vous restez appuyez sur une touche d'une instance Joypad, et que la valeur "dispatchEvent"(Boolean) de la tocuhe pressée est sur true, alors le Joypad émettra tout le temps de la pression, un event "JoypadKeyEvent.CHANGE".
hope.games.joypad.Joypad
                |_JoypadKey

hope.games.events.JoypadEvent
                |_JoypadKeyEvent
                |_JoypadStickEvent


On va donc essayer d'expliquer comment cela fonctionne :

1/ Joypad est donc un composant AS3 qu'il vous faut posséder dans la bibliothèque du Fla l'utilisant.
2/ Le chemin du package et son contenu étant décris ci-dessus.
3/ L'importation se faisant de faÇon classique : "import hope.games.joypad.Joypad"
4/ Le composant répondant aux appels claviers, il faut donc le connecter à un objet "visuel". J'ai personnelement choisi, dans le cas de ce composant, l'objet "stage".
5/ Une fois "connecter", l'instance Joypad se chargera d'émettre des évents "touche" correspondant.
6/ Chaque touche pouvant mémoriser son "temps de pression" et ainsi indiquer le temps restant avant de revenir à un état "initial".
7/ Les touches "left, up, right and down" étant l'équivalent d'un pad sur un Joypad.
8/ Les touches "console, select et start", ne fonctionnant elles, comme des touches traditionnelles. la seule différence étant que une fois maintenue pressées, elles n'emette plus d¡event "keyDown".. Elle émettront simplement l'event suivant : "keyUp".
9/ L'ensemble des touches (et du Joypad) essayant de rester "adpatable" aux besoins de tout à chacun.


Voici la structure d'une instance "Joypad":

// la vitesse d'émission des évènements. Par default : 25 ms.
var speed :uint ;

// Si est en train d'écouter un objet "stage".
var connected :Boolean ;

// Permet à l'instance de répondre aux entrées clavier.
function connect( stage:Stage ) ;
// Emmet un event "JoypadEvent.CONNECT"

// Arrête l'écoute des évènements clavier,
function disconnect():void ;
// Emmet un event "JoypadEvent.DISCONNECT"

// Indique à l'instance d'appuyez sur une touche.
// Son utilisation étant plus adaptée à la "manipulation" d'une instance  vià une AI.
function press( key:JoypadKey ):void ;
// Emmet un event "JoypadKeyEvent.DOWN"

// Indique à l'instance de relacher une touche.
// Son utilisation étant plus adaptée à la "manipulation" d'une instance  vià un AI.
function release( key:JoypadKey ):void;
// Emmet un event "JoypadKeyEvent.UP"

// Si posséde l'isntance passée
function hasKey( key:JoypadKey ):Boolean ;

// Ajoute un nouvelle touche au "joypad"
function addKey( key:JoypadKey ):Boolean ;

// Retire un touche de l'instance
function removeKey( key:JoypadKey ):Boolean ;

// Si la touche passée est actuellement pressée
function isDown ( key:JoypadKey ):Boolean ;

// Retourne l'instance Joypadkey correspondant au nom passée.
function getKeyName( name:String ):JoypadKey;

// Retourne l'instance Joypadkey correspondant au "keyCode" passée.
function getKeyCode( code:int ):JoypadKey;

// Retourne un evenement "JoypadStickEvent" (de type "infos") correspondant aux
// attributs des touches directionnelles au moment de l'appel de la fonction.
function getStickEvent( type:String='infos' ):JoypadStickEvent ;

Si vous restez appuyez sur une touche d'une instance Joypad, et que la valeur "dispatchEvent"(Boolean) de la tocuhe pressée est sur true, alors le Joypad émettra tout le temps de la pression, un event "JoypadKeyEvent.CHANGE".
Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

14 juin 2008 23:02:32 :
__description++ ;
14 juin 2008 23:50:07 :
__explications++ ;
15 juin 2008 00:03:17 :
__explications++ ;
  • signaler à un administrateur
    Commentaire de pegase31 le 14/06/2008 18:04:11

    Amusant, mais la visualisation des touches du clavier sont configurées pour un QWERT* ... or sur un AZERTY, les touches ne sont pas au bon endroit.
    Mais je pense que je pinaille un tantinet ;)

    Peg'

  • signaler à un administrateur
    Commentaire de top30 le 14/06/2008 21:51:35

    Interessant ta remarque !
    C'est justement fait pour ne pas tenir compte du type du clavier.
    Ni qwerty, ni azerty, ti africany.. Ca utilise (en thérorie) le code des touches et non leur valeur de retour....Peut tu être plus "précis" ????

  • signaler à un administrateur
    Commentaire de pegase31 le 14/06/2008 23:40:01

    ben quand tu regardes les touches du clavier qui sont colorées de l'animation KeysVisualisation.swf, sur un clavier azerty, la touche à gauche du E (le Z, donc) ne fonctionne pas et il faut taper sur la touche W se situant en bas (2 touches à droite du Shift-G) pour activer la direction Haut.
    C'est d'ailleurs comme ça que j'ai découvert que tu était en QWERT* ... ;)
    Et même problème pour le A/Q ...

    Passe ton clavier en AZERTY sous ton os pour tester ...

    Peg'

  • signaler à un administrateur
    Commentaire de top30 le 14/06/2008 23:57:26

    OK !!!
    Donc je confirme, les évènements du clavier ne sont pas "logiques".
    La valeur "keyCode" est DIFFERENTE selon le type du clavier. Choses non normale vue que ce c'est la valeur "charCode" qui devrait "contenir" la différence selon.
    Bref, ceci-n'empechant pas le bon fonctionnement du composant, ca gene juste l'utlisation des explications.
    En tout cas merci pour l'intervention...

  • signaler à un administrateur
    Commentaire de pegase31 le 15/06/2008 00:21:50

    si j'ai pu t'être utile, j'en suis content ;)

    Peg'

  • signaler à un administrateur
    Commentaire de bali_balo le 17/06/2008 17:37:55

    J'ai pas regardé le composant en détail, mais ça à l'air utile, comme toute tes sources :)
    "Mais comment partager son travail sans se le faire voler ?"
    C'est pour cela que je n'ose plus poser de source sur le net, en particulier sur ce site :S
    Les manques en freelance ou autre se font du profits sur des trucs sont censés être à but non commercial. Moi pour mes swf j'utilise des obfuscateurs.

    Bref, sinon pour ceux que ça intéresserait, il existe un logiciel qui s'appelle JoyToKey: "http://www.electracode.com/4/joy2key/JoyToKey%20English%20Version.htm" qui permet d'associer les touches de son Joystick ou de sa manette aux touches de clavier.
    C'est génial sur des jeux en Flash :D, moi qui en développe pour ma boite, quand il s'agit de les tester : mode chaise allongée et joystick à la main ^^, enfin pas pour tous :P

    Ciao à tous!

  • signaler à un administrateur
    Commentaire de bali_balo le 17/06/2008 17:38:19

    _

  • signaler à un administrateur
    Commentaire de bali_balo le 17/06/2008 18:14:16

    Bon, aller, en fin de semaine je balance une source en AS3 qui permet de gérer les rentrées et sorties du pointeur dans une fenêtre SWF.

    bali_balo....=]

Ajouter un commentaire

Discussions en rapport avec ce code source

Pub



Appels d'offres

Recherche developpeur ...
Budget : 700€
SITE MARCHAND LOCATION...
Budget : 3 000€
SITE MARCHAND POUR HOTEL
Budget : 4 000€

CalendriCode

Août 2008
LMMJVSD
    123
45678910
11121314151617
18192021222324
25262728293031

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS