begin process at 2012 05 26 15:53:50
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Flash / Flash MX

 > 

Scripts

 > 

ActionScript

 > 

AS3==> 2 touches simulatnée sur un ecouteur clavier


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

AS3==> 2 touches simulatnée sur un ecouteur clavier

lundi 11 janvier 2010 à 06:55:16 | AS3==> 2 touches simulatnée sur un ecouteur clavier

delphijb

Bonjour. voila, je suis en trian de faire un petit jeu de plateforme
en AS3 et j'ai quelques soucis...

Comme le jeu sera jouable au clavier, il faut que je puisse gérer
au moins 2 simultanéments (par exemple sauter ET aller vers la droite)

Seulement, mon addEvenListener ne me detecte qu'une seul touche enfoncé
a la fois. Comment faire pour en avoir plus ??




voici le code:

Code ActionScript :
package {
	import flash.display.*;
	import flash.events.*;
	import flash.events.MouseEvent;
	import flash.events.KeyboardEvent;
	import flash.utils.Timer;
	import flash.events.TimerEvent;
	
	
	public class plateforme extends MovieClip {
		
		// variables divers==========================================================
		//===========================================================================
		var iteration:Number = 50;		//nbr de calcul par seconde
		var vitessex:Number = 0;		//variable qui gère les mouvements en X
		var vitessey:Number = 0;		//variable qui gère les mouvements en Y
		var heros:String = "balle";		//variable de lien du nom d'occurence (stage)
		
		// fonction construtor*******************************************************
		//***************************************************************************
		public function plateforme() {
			var balle_01:Balle=new Balle  ;
			balle_01.x=300;
			balle_01.y=50;
			balle_01.name=heros;
			addChild(balle_01);
			//gravite(9.81)
			clavier()
			mouvement()
		}
		
		
		//fonction qui gère les touches du clavier===================================
		//===========================================================================
		public function clavier(){
			stage.addEventListener(KeyboardEvent.KEY_DOWN,enfonce);
			stage.addEventListener(KeyboardEvent.KEY_UP,relache);
			function enfonce(event:KeyboardEvent):void{
				if (event.keyCode == 39){ //droite
					vitessex = 2
				}
				if (event.keyCode == 37){ //gauche
					vitessex = -2
				}
				if (event.keyCode == 38){ //haut
					vitessey = -9;
				}
				if (event.keyCode == 40){ //bas
				}
			}
			function relache(event:KeyboardEvent):void{
				if (event.keyCode == 39){ //droite
					vitessex = 0
				}
				if (event.keyCode == 37){ //gauche
					vitessex = 0
				}
				if (event.keyCode == 38){ //haut
					vitessey = -9;
				}
				if (event.keyCode == 40){ //bas
				}
			}
		}
		
		//fonction qui gère les mouvements gauche-droite-haut-bas====================
		//===========================================================================
		public function mouvement() {
			var mouvement_gdhb:Timer = new Timer(1000/iteration);
			mouvement_gdhb.addEventListener(TimerEvent.TIMER, gaucheDroiteHautBas);
			mouvement_gdhb.start()
			function gaucheDroiteHautBas (e:TimerEvent):void{
				getChildByName(heros).x += vitessex 
				getChildByName(heros).y += vitessey
			}
		}
		
		//fonction qui gère la gravite===============================================
		//===========================================================================
		public function gravite(valeur) {
			var myTimer:Timer = new Timer(1000/iteration);
			myTimer.addEventListener(TimerEvent.TIMER, timerListener);
			function timerListener (e:TimerEvent):void{
				vitessey += 0.12*valeur
			}

			start_btn.addEventListener(MouseEvent.CLICK, onStart);
			function onStart(e:MouseEvent):void{
			myTimer.start();
			}
			stop_btn.addEventListener(MouseEvent.CLICK, onStop);
			function onStop(e:MouseEvent):void{
			myTimer.stop();
			}
		}

	}
}


L'erreur vient de la partie "gestion des touches clavier".
En effet, cette methode fonctionne bien mais des que j'appuie
sur 2 touches en meme temps, c'est la galère totale.

Comment fais-t-on pour gérer simultanément plusieurs touches
(par ex droite et haut si je veux sauter vers la droite...)
pour ne plus que ca bug ?


Un grand merci d'avance pour vos eventuel réponses..
lundi 11 janvier 2010 à 19:04:49 | Re : AS3==> 2 touches simulatnée sur un ecouteur clavier

nickydaquick

Membre Club


Salut,

Utilise un switch-case a la place.


Bonne continuation.
http://liveplayaz.com
je suis heureux de faire partie d'une grande famille ...!
mardi 12 janvier 2010 à 08:34:18 | Re : AS3==> 2 touches simulatnée sur un ecouteur clavier

delphijb

Je comprend pas. le switch-case ne va t-il pas simplement
remplacer le fonctionnement des if-then-else ?

Je vais le faire et voir ce que ca donne. au pire, ca rendra
le code un eu plus lisible..

^_^ merci
mardi 12 janvier 2010 à 10:12:12 | Re : AS3==> 2 touches simulatnée sur un ecouteur clavier

delphijb

ca va un peu mieux mais ce n'est pas encore ca. j'ai quelques bugs...


j'explique quelques exemples d'erreur de fonctionnement:


j'appuie sur DROITE, puis en maintenant, j'appuie sur HAUT
--> pendant que DROITE est enfoncé, j'ai un trace "DROITE"
--> mais quand j'appuie sur HAUT, je n'ai plus de trace "DROITE", juste un trace "HAUT"


j'appuie sur DROITE, je relache, j'appuie sur HAUT
--> pendant que DROITE est enfoncé, j'ai un trace "DROITE"
--> mais quand j'appuie ensuite sur HAUT, j'ai les deux ! "DROITE", suivi de "HAUT"



En résumé:
Quand j'essaie d'appuyer sur 2 touches en même temps, c'est toujours
la derniere pressé qui prend entierement le relais... meme si la
premiere pressé reste enfoncé.

en plus, j'ai un soucis qui vient de windows: quand je reste enfoncé,
il me fait un trace, puis plus rien pendant 1 seconde, puis ensuite
il enchaine les traces (suivant la répétition des touches paramétré
dans le panneau de configuration).
Y a pas moyen de contrer cela ?
mardi 12 janvier 2010 à 11:08:19 | Re : AS3==> 2 touches simulatnée sur un ecouteur clavier

delphijb

Ok c'est bon, j'ai trouvé. Je suis tout simplement passé par
une variable booléenne intermédiaire...

comme expliqué ici:

Tapez le texte de l'url ici.


Merci à tous !


Cette discussion est classée dans : function, keycode, event, balle, if


Répondre à ce message

Sujets en rapport avec ce message

Lien sur image dans un diaporama flash ? [ par phobiahz ] Bonjour a tous !Voila j'ai le code d'un diaporama (fixe mais avec fondu entre les images) dont les images sont chargées dynamiquement a partir d'un fi unload 1 variable avec 1 bouton [ par Flash2zeb ] Bonjour, j me prends la tete sur un truc depuis 1 h now, alor j pose ma question en esperant que qqn pourra m aider.J'ai insérer 1 galerie dans mon si Lecteur mp3 : Problème Lecture/pause [ par annexe04 ] Bonjour, Alors voici ce que j'ai essayé de faire : Je veux un petit lecteur mp3 autonome avec un bouton Lecture/Pause et Arret. Au chargement de la pa problème slideshow [ par jpthali ] Salut à tous, J'ai récupérer la source pour créer un slide show sur Kirupa:"Adding Thumbnails" Avec des miniatures. J'ai ajouté la fonction slideshow convertir en action script 3 un code en action script 2 [ par loicmorlon ] Bonjour, je suis débutant, je cherche à me créér un site très simple pour mon boulot.Or, je cherche à intégrer dans une de mes pages un diaporama.Ce d as3 pb enterFrame [ par inaden ] Bonjour,l'idée est de créer une fonction de transition alpha... truc simple en as2 mais là.Voici deux tentatives (les seuls qui ne me donne pas de mes interraction dynamique avec un clip [ par flyingdutch ] Bonjour ! Je suis nouveau sur le site. Je suis en train de concevoir une interface se rapprochant du pianographique.Voila mon problème je balance d'ab galerie photo Flash avec conteneur... [ par fififine ] Bonjour à tous, problème pour dupliquer le code [ par jaya ] Bonjour,J'ai récuperer il y as quelques jours le code ci dessous, mon souci est que je n'arrive pas à y integrer d'autres balles, pour pouvoir varier onEnterFrame [ par MangueCarotte ] Bonjour je réalise en ce moment mon premier site entièrement en ActionScript.Et bien évidemment je galère. Voici mon souci:je souhaite déplacer une fo


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,997 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales