Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Flash/Flex > Flash
Flash Forum d'entraide sur la technologie Flash (Cours, FAQs, Sources)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 25/12/2007, 19h57   #1
Invité de passage
 
Inscription : décembre 2007
Messages : 8
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 8
Points : 0
Points : 0
Par défaut Areter un jeux au bout d'un certains nombre de coups ratés.

J'ai voulu reprendre le jeux de cible donné en démonstration avec flash8 , nommé 'Animation". Dans le script le nombre de tirs ratés est nommé " _global.misses". J'ai ajouter ceci à la fin du script pour que le jeux s'arrete aux bout de 5 tirs loupés :

if (_global.misses == 5){
stop;
}


Mais cela ne fonctionne pas Comment puis je résoudre ce probleme ?


Merci.
alexfr59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/12/2007, 20h21   #2
Membre Expert
 
Avatar de dom_dev
 
Inscription : février 2006
Messages : 2 067
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 2 067
Points : 2 114
Points : 2 114
as-tu essayé :
ceci dit ton "if" doit être associé à un événement s'il "dort" tout seul dans un coin il ne servira pas à grand chose...
__________________
Si la ou les réponses obtenues vous ont donné satisfaction n'oublier pas ->
Et ne rajoutez pas de nouvelles questions éternellement dans le même post surtout si vous en n'êtes pas l'auteur
MERCI
dom_dev est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/12/2007, 13h58   #3
Invité de passage
 
Inscription : décembre 2007
Messages : 8
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 8
Points : 0
Points : 0
Oui j'ai aussi essayé avec stop();
Citation:
ceci dit ton "if" doit être associé à un événement s'il "dort" tout seul dans un coin il ne servira pas à grand chose...
C'est à dire ? ( dsl je suis noob )
alexfr59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/12/2007, 08h57   #4
Membre Expert
 
Avatar de dom_dev
 
Inscription : février 2006
Messages : 2 067
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 2 067
Points : 2 114
Points : 2 114
ton "if" n'est pas forcément executé au moment ou la variable "_global.misses" est mise à jour, mais pour être plus précis il faudrait que je vois la totalité de l'application... (sur quelle image clé est placé le "if", quel est l'enchainement de événements etc...)
crdt
__________________
Si la ou les réponses obtenues vous ont donné satisfaction n'oublier pas ->
Et ne rajoutez pas de nouvelles questions éternellement dans le même post surtout si vous en n'êtes pas l'auteur
MERCI
dom_dev est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/12/2007, 10h47   #5
Invité de passage
 
Inscription : décembre 2007
Messages : 8
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 8
Points : 0
Points : 0
voici le script et le fichier fla :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
// define some global variables which let you track the player's statistics.
_global.hits = 0;
_global.misses = 0;
_global.shots = 0;
_global.cDepth = 100;
_global.level = 1;
// define some runtime variables which are used in calculations.
var xSpeed:Number = 3;
var stageWidth:Number = 550;
var stageHeight:Number = 580;
/* attach the crosshair_mc movie clip instance from the Library onto the Stage. 
   This clip is used as a custom mouse cursor. */
this.attachMovie("crosshair_mc", "crosshair_mc", 5001);
// hide the mouse cursor
Mouse.hide();
// create a mouse listener object.
var mouseListener:Object = new Object();
/* every time the mouse cursor moves within the SWF file, 
   update the position of the crosshair movie clip instance on the Stage. */
mouseListener.onMouseMove = function() {
	crosshair_mc._x = _xmouse;
	crosshair_mc._y = _ymouse;
};
/* when the mouse button is clicked, check to see if the cursor is within the boundaries of the Stage. 
   If so, increment the number of shots taken. */
mouseListener.onMouseDown = function() {
	if (bg_mc.hitTest(_xmouse, _ymouse, false)) {
		_global.shots++;
	}
};
Mouse.addListener(mouseListener);
// define a TextFormat which is used to format the stats_txt text field.
var my_fmt:TextFormat = new TextFormat();
my_fmt.bold = true;
my_fmt.font = "Arial";
my_fmt.size = 12;
my_fmt.color = 0xFFFFFF;
// create a text field to display the player's statistics.
this.createTextField("stats_txt", 5000, 10, 0, 530, 22);
// apply the TextFormat to the text field.
stats_txt.setNewTextFormat(my_fmt);
stats_txt.selectable = false;
stats_txt.tabStops = [100, 200, 300, 400];
updateStats();
// add an onEnterFrame event to the main timeline so new tofu is constantly added to the game.
this.onEnterFrame = function() {
	// randomly add new target's to the Stage.
	if (randRange(0, 20) == 0) {
		// attach a new instance of the tofu instance from the library onto the Stage, and give it a unique depth.
		var randomTofu:Number = randRange(1, 3);
		var thisMC:MovieClip = this.attachMovie("tofu"+randomTofu+"_mc", "target"+_global.cDepth+"_mc", _global.cDepth);
		_global.cDepth++;
		// set the starting postition of the current target movie clip so it is just off to the left of the Stage.
		thisMC._x = -thisMC._width;
		/* create a random number between 80 and 100.
		   This is used to set the current movie clip's scale, 
		   alpha and speed that it moves across the Stage. */
		var scale = randRange(80, 100);
		/* set the _xscale and _yscale properties of the current movie clip. 
		   This allows for some minor variations of the targets within the game. */
		thisMC._xscale = scale;
		thisMC._yscale = scale;
		thisMC._alpha = scale;
		thisMC.speed = xSpeed+randRange(0, 3)+_global.level;
		/* set a random _y value for the target. 
		   Now, instead of all targets flying along the same path, 
		   they vary their vertical position slightly. */
		thisMC._y = Math.round(Math.random()*350)+65;
		/* create an onEnterFrame handler that executes a couple dozen times per second. 
		   Update the target's position on the Stage. */
		thisMC.onEnterFrame = function() {
			/* move the target horizontally along the Stage. 
			   Currently all targets will move from left to right. */
			this._x += this.speed;
			/* slightly decrement the _y position of the current target movie clip. 
			This makes it appear like the targets are flying slightly higher as they move across the Stage. */
			this._y -= .4;
			/* if the current position of the target is no longer on the Stage, 
			   count the target as a "miss" and delete the instance. 
			   If the instance wasn't deleted from the Stage, 
			   the user's computer would eventually slow to a crawl. */
			if (this._x>stageWidth) {
				_global.misses++;
				updateStats();
				this.removeMovieClip();
			}
		};
		// when the target movie clip instance is pressed, count it as a "hit".
		thisMC.onPress = function() {
			// update the player's stats
			_global.hits++;
			if ((_global.hits%40) == 0) {
				_global.level++;
			}
			updateStats();
			/* go to the movie clip's label named "hit" 
			  (which allows you to show a clever animation when the instance is hit.) */
			this.gotoAndPlay("hit");
			// set some local variables that you'll use to animate the target falling from the sky.
			var ymov = this._y;
			var gravity = 20;
			// create an onEnterFrame event for the current movie clip instance.
			this.onEnterFrame = function() {
				ymov += gravity;
				xmov *= 0.5;
				// increment the rotation of the current movie clip clock-wise by 5 degrees.
				this._rotation += 5;
				/* set the _x and _y properties of the movie clip on the Stage, 
				   this allows us to make the target look like it is semi-realistically 
				   falling from the sky instead of just dropping straight down. */
				this._x += xSpeed;
				this._y = ymov;
				/* after the _y position is off of the Stage, 
				   remove the movie clip so that the coordinates aren't continually calculated */
				if (this._y>stageHeight) {
					this.removeMovieClip();
				}
			};
			/* delete the onPress event handler. 
			   This makes it so the target cannot continually be clicked while it is falling from the sky. */
			delete this.onPress;
		};
	}
};
/* create a function to update the player's statistics on the Stage. 
   You're displaying number of shots taken, number of targets "hit",
   number of targets "missed", the percentage of hits vs misses, 
   overall accuracy (number of shots taken vs number of hit targets). */
function updateStats() {
	var targetsHit:Number = Math.round(_global.hits/(_global.hits+_global.misses)*100);
	var accuracy:Number = Math.round((_global.hits/_global.shots)*100);
	if (isNaN(targetsHit)) {
		targetsHit = 0;
	}
	if (isNaN(accuracy)) {
		accuracy = 0;
	}
	stats_txt.text = "shots: "+_global.shots+"\t"+"hits: "+_global.hits+"\t"+"ratés: "+_global.misses+"\t"+"targets hit: "+targetsHit+"%"+"\t"+"accuracy: "+accuracy+"%"+"\t"+"level:"+_global.level;
}
/* create a function that returns a random integer between two specified numbers. 
   This allows you to add some subtle differences in size and speed for the movie clips on the Stage. */
function randRange(minNum:Number, maxNum:Number):Number {
	return (Math.floor(Math.random()*(maxNum-minNum+1))+minNum);
}
if (_global.misses ==5){
stop();
}
Cela fait plus de 2 semaines que je cherche comment stopper l'animation à partir d'un certains nombres de tirs ratés, je commence un peu à désespérer...
Fichiers attachés
Type de fichier : fla jeux.fla (203,0 Ko, 5 affichages)
alexfr59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/12/2007, 18h25   #6
Invité de passage
 
Inscription : décembre 2007
Messages : 8
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 8
Points : 0
Points : 0
Cela fait 3 semaines mainteant et toujours aucune solution de trouvée
alexfr59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/01/2008, 16h43   #7
Membre Expert
 
Avatar de dom_dev
 
Inscription : février 2006
Messages : 2 067
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 2 067
Points : 2 114
Points : 2 114
bonjour et meilleurs voeux 2008...

tel que tu as écrit ton code il ne va pas être facile à stopper. Ton d'abord comme je te l'ai déjà dit ton "if" n'est pas pris en compte il faut tester ta variable dans la boucle "onEnterFrame" mais le problème c'est que le "stop()" n'arrêtera pas ton animation.

voici une piste même si elle est incompléte (rajoute ce qui est en gras):
Code :
1
2
3
4
5
6
7
8
9
...
...
this.onEnterFrame = function() {
	
	// randomly add new target's to the Stage.
	if (randRange(0, 20) == 0 && _global.misses <= 5) {
...
...
le problème c'est que ça arrête bien la création de nouvelles cibles mais ça n'arrête pas le jeux instantanément. Il faut revoir tout le code pour cela.

tu as aussi cette instruction qui marche partiellement mais toujours placée dans la boucle onEnterFrame...
Code :
1
2
3
4
5
6
7
8
9
...
this.onEnterFrame = function() {
	if (_global.misses == 5){
		delete this.onEnterFrame;
	}
	
	// randomly add new target's to the Stage.
...
désolé...
__________________
Si la ou les réponses obtenues vous ont donné satisfaction n'oublier pas ->
Et ne rajoutez pas de nouvelles questions éternellement dans le même post surtout si vous en n'êtes pas l'auteur
MERCI
dom_dev est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/01/2008, 17h02   #8
Membre Expert
 
Avatar de dom_dev
 
Inscription : février 2006
Messages : 2 067
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 2 067
Points : 2 114
Points : 2 114
voici une solution compléte

c'est du flash CS3 si tu n'arrives pas à l'ouvrir j'essairai de t'expliquer:

Pièce jointe 23499

crdt
__________________
Si la ou les réponses obtenues vous ont donné satisfaction n'oublier pas ->
Et ne rajoutez pas de nouvelles questions éternellement dans le même post surtout si vous en n'êtes pas l'auteur
MERCI
dom_dev est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/01/2008, 20h25   #9
Invité de passage
 
Inscription : décembre 2007
Messages : 8
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 8
Points : 0
Points : 0
Je n'arrive effectivement pas à ouvrir le fichier. Peut on se le procurer on .fla compatible avec flash 8 ?
alexfr59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/01/2008, 07h26   #10
Membre Expert
 
Avatar de dom_dev
 
Inscription : février 2006
Messages : 2 067
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 2 067
Points : 2 114
Points : 2 114
bonjour,

Pièce jointe 23781

voici une version enregistrée sous flash8, est-ce que tu peux l'ouvrir?
__________________
Si la ou les réponses obtenues vous ont donné satisfaction n'oublier pas ->
Et ne rajoutez pas de nouvelles questions éternellement dans le même post surtout si vous en n'êtes pas l'auteur
MERCI
dom_dev est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2008, 20h40   #11
Invité de passage
 
Inscription : décembre 2007
Messages : 8
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 8
Points : 0
Points : 0
" Pièce jointe spécifié non valide. Si vous suivez un lien valide, veuillez notifier l'administrateur "

Le lien ne fonctionne pas
alexfr59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/01/2008, 07h28   #12
Membre Expert
 
Avatar de dom_dev
 
Inscription : février 2006
Messages : 2 067
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 2 067
Points : 2 114
Points : 2 114
bonjour, c'est la scoumoune cette histoire, je retente une nouvelle insertion de mon fichier :
Pièce jointe 24052
crdt
__________________
Si la ou les réponses obtenues vous ont donné satisfaction n'oublier pas ->
Et ne rajoutez pas de nouvelles questions éternellement dans le même post surtout si vous en n'êtes pas l'auteur
MERCI
dom_dev est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/01/2008, 20h46   #13
Invité de passage
 
Inscription : décembre 2007
Messages : 8
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 8
Points : 0
Points : 0
Je te remercie c'est vraiment à quoi je voulais arriver

Une derniere petite question (arf quel noob celui la! ) Si je veux modifier le nombre de tir raté raté au bout duquel le jeu s'arete comment est-ce que je fait ?
alexfr59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/01/2008, 07h20   #14
Membre Expert
 
Avatar de dom_dev
 
Inscription : février 2006
Messages : 2 067
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 2 067
Points : 2 114
Points : 2 114
bonjour,
je ne sais pas si tu as observé un peu les modifs mais tu as du voir que j'ai rajouté un clip qui s'appelle main_clip et que j'ai transféré le code dans celui ci. Donc tu "ouvres" main_clip et tu retrouves tout ton code et tu cherches les lignes suivantes :
Code :
1
2
3
4
5
6
7
...
// add an onEnterFrame event to the main timeline so new tofu is constantly added to the game.
this.onEnterFrame = function() {
	if (_global.misses == 5){
...
...
là tu changes la valeur numérique.
__________________
Si la ou les réponses obtenues vous ont donné satisfaction n'oublier pas ->
Et ne rajoutez pas de nouvelles questions éternellement dans le même post surtout si vous en n'êtes pas l'auteur
MERCI
dom_dev est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/01/2008, 20h25   #15
Invité de passage
 
Inscription : décembre 2007
Messages : 8
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 8
Points : 0
Points : 0
Merci j'ai compris
alexfr59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h52.


 
 
 
 
Partenaires

Hébergement Web