Gnerar puntaje por actividad hecha y mostrar resultados

Aquí estoy otra vez... ¡Pensarás! ¡Este muchacho no tiene conocimiento de actionscript! Y esta abusando de mi je je... Créeme he aprendido mucho y cada día aprendo más...
Pero al grano
Si te fijas en las actividades que tengo como por ejemplo en la que tu me ayudaste la primera vez... En su mayoría son drag and drop...
Para el usuasrio cada actividad es una puntuación, es decir luego de cumplir con las 5 actividades, lógicamente al hacer clic en botón siguiente me manda a la película resultados... En la película resultados le voy a colocar la cantidad de respuestas buenas y las malas y una observación según el resultado...
Por ejemplo
Si acertó las 5 actividades observación (Muy bien amiguito eres el mejor)
Si no acertó ninguna actividad (Amiguito debes estuduar más ¡Eres inteligente!)
También quiero que tenga por cada actividad 3 oportunidades de resolverla de no acertar que se inactive la actividad y haga clic en siguiente...
Mi pregunta es como puedo generar puntuación por actividad y mostrar resultados...
Nota: Si consideras que es mucho pedir de mi parte resolver me este conflicto lo entenderé, pero necesitaría alguna asesoría o tutorial relacionado con la pregunta en cuestión...

1 Respuesta

Respuesta
1
Bueno para esto no estoy muy seguro si funcione.. pero has lo siguiente crea una variable puntaje que inicie con valor =0, después metela en cada evento cuando haya choke es decir cuando lo haga bn (incrementa la variable así puntaje+=1) de esta manera cada vex que lo haga bn incrementara en uno de ahí determinas cuanto se necesita para ganar ya sea la totalidad de los retos de la actividad..
Ahora para los errores crear otra variable iniciala con el numero de posibilidades que dejaras para intentarlo es decir digamos que solo 3 intentos.. entonces kolokala =3 y dentro del evento cuando erra koloka la variable-=1 así disminuirá..
Intenta hacer esto y luego me dices como te fue..
¿Hola experto dicha programación la hago en un fotograma aparte o dentro de la programación del botón siguiente?
Eso se hace dentro del evento que te lanza si lo hixo bn o mal.. es decir que si lo mandas al fotograma 31 debes dar puntaje y si no debes quitar intentos..
Hola experto
He aplicado lo que me dijiste de colocar la variable dentro del objeto de arrastre... le coloque un texto dinámico (txt_cantidad.text=cant;) para que me mostrara el resultado... pero si se lo coloco a cada una de las acciones de cada evento... siempre me va a dar como resultado "1", coloque la variable en otro fotograma aparte pero pasa lo mismo de da el mismo resultado...
posX=a_mc._x;
posY=a_mc._y;
var cant:Number = 0;
a_mc.onPress = function(mouseDown) {
this.startDrag();
};
a_mc.onRelease = function(mouseUp) {
cant+1=;
this.stopDrag();
if(this.hitTest(dropZone1)){
txt_cantidad.text=cant;
gotoAndPlay(2);
a_mc._x=dropZone1._x;
a_mc._y=dropZone1._y;
// trace(e_mc._x);
} else {
gotoAndPlay(31);
// trace("mal");
a_mc._x=posX;
a_mc._y=posY;
}
}
Disculpa
transcribi mal es cant+=1 y no cant+1=
Pero igual me da el resultado que dije en el post anterior
Bueno lo que pasa es que el cant debe ir dentro del if del hittest.. es decir antes del txt_cantidad .. así el sabrá que choko.. y así en todos los objetos..
Hola experto la verdad ya no se que hacer he probado de varias maneras y nada
Esta fue mi ultima prueba:
stop();
var contador = 1;
var cont = ++contador;
if(cont == 5){
trace ("Muy bien");
}else{
trace ("error");
}//coloque los trace para que al colocar me de la indicacion correspondiente
posX=a_mc._x;
posY=a_mc._y;
a_mc.onPress = function(mouseDown) {
this.startDrag();
};
a_mc.onRelease = function(mouseUp) {
this.stopDrag();
if(this.hitTest(dropZone1)){
++contador;
gotoAndPlay(2);
a_mc._x=dropZone1._x;
a_mc._y=dropZone1._y;
// trace(e_mc._x);
} else {
gotoAndPlay(31);
// trace("mal");
a_mc._x=posX;
a_mc._y=posY;
}
}
posX1=e_mc._x;
posY1=e_mc._y;
e_mc.onPress = function(mouseDown) {
this.startDrag();
};
e_mc.onRelease = function(mouseUp) {
this.stopDrag();
if(this.hitTest(dropZone2)){
++contador;
gotoAndPlay(2);
e_mc._x=dropZone2._x;
e_mc._y=dropZone2._y;
// trace(e_mc._x);
} else {
gotoAndPlay(31);
// trace("mal");
e_mc._x=posX1;
e_mc._y=posY1;
}
}
posX2=i_mc._x;
posY2=i_mc._y;
i_mc.onPress = function(mouseDown) {
this.startDrag();
};
i_mc.onRelease = function(mouseUp) {
this.stopDrag();
if(this.hitTest(dropZone3)){
++contador;
gotoAndPlay(2);
i_mc._x=dropZone3._x;
i_mc._y=dropZone3._y;
// trace(e_mc._x);
} else {
gotoAndPlay(31);
// trace("mal");
i_mc._x=posX2;
i_mc._y=posY2;
}
}
posX3=o_mc._x;
posY3=o_mc._y;
o_mc.onPress = function(mouseDown) {
this.startDrag();
};
o_mc.onRelease = function(mouseUp) {
this.stopDrag();
if(this.hitTest(dropZone4)){
++contador;
gotoAndPlay(2);
o_mc._x=dropZone4._x;
o_mc._y=dropZone4._y;
// trace(e_mc._x);
} else {
gotoAndPlay(31);
// trace("mal");
o_mc._x=posX3;
o_mc._y=posY3;
}
}
posX4=u_mc._x;
posY4=u_mc._y;
u_mc.onPress = function(mouseDown) {
this.startDrag();
};
u_mc.onRelease = function(mouseUp) {
this.stopDrag();
if(this.hitTest(dropZone5)){
++contador;
gotoAndPlay(2);
u_mc._x=dropZone5._x;
u_mc._y=dropZone5._y;
// trace(e_mc._x);
} else {
gotoAndPlay(31);
// trace("mal");
u_mc._x=posX4;
u_mc._y=posY4;
}
}
Esta es la programación para todos los símbolos que se van a arrastrar
¿Qué estaré haciendo mal?
stop();
var cont = 1;
if(cont == 5){
trace ("Muy bien");
}else{
trace ("error");
}//coloque los trace para que al colocar me de la indicacion correspondiente
posX=a_mc._x;
posY=a_mc._y;
a_mc.onPress = function(mouseDown) {
this.startDrag();
};
a_mc.onRelease = function(mouseUp) {
this.stopDrag();
if(this.hitTest(dropZone1)){
cont+=1;
gotoAndPlay(2);
a_mc._x=dropZone1._x;
a_mc._y=dropZone1._y;
// trace(e_mc._x);
} else {
gotoAndPlay(31);
// trace("mal");
a_mc._x=posX;
a_mc._y=posY;
}
}
posX1=e_mc._x;
posY1=e_mc._y;
e_mc.onPress = function(mouseDown) {
this.startDrag();
};
e_mc.onRelease = function(mouseUp) {
this.stopDrag();
if(this.hitTest(dropZone2)){
cont+=1;
gotoAndPlay(2);
e_mc._x=dropZone2._x;
e_mc._y=dropZone2._y;
// trace(e_mc._x);
} else {
gotoAndPlay(31);
// trace("mal");
e_mc._x=posX1;
e_mc._y=posY1;
}
}
mire ahi le modifike haga lo mismo para los demas... agregue el con+=1; .. si kiere debajo de ese codigo agreguele trace(cont); para k le muestre komo va el conteo.. y me dices si te sirvio o nop..
Hola experto
Hice la modificación que me pidió, me parecido que la había hecho antes... de todos modos no me da el resultadoi que quiero ya que al correr la película
if(cont == 5){
trace ("Muy bien");
}else{
trace ("error");
}//coloque los trace para que al colocar me de la indicacion correspondiente
Me aplica primero el condicional y la información del trace que me sale es el de
trace ("error"); y cada vez que arrastro un objeto y lo coloco en su sitio me aparece trace ("error");
Si eso te va a aparecer hasta que no completes los 5 bn hechos.. porque el evalúa cada vex que haces un movimiento.. por eso el va a botar error porque si analizas la unika manera para que cont sea 5 es que las 5 actividades estén bn echas.. sino se completan siempre botara error..
Experto le mande la fuente para que vea con más detenimiento
Bn has lo siguiente.. la variable cont debe ser global por esta raxon no puedes acceder..
agregale _global y keda asi _global.cont=0;
y al if kitale el else entonces kedaria asi..
if(cont==5)
trace("muy bn");
Si keires ppuede porner los corchetes o no son opcionales cuando no existe "else"
No me funciona tampoco ...
Que raro yo ya probé y me funciono.. te agrego el código como me funciona..
stop();
_global.cont = 0;
if (cont == 5)
trace("Muy bien");
posX = a_mc._x;
posY = a_mc._y;
a_mc.onPress = function(mouseDown)
{
this.startDrag();
};
a_mc.onRelease = function(mouseUp)
{
this.stopDrag();
if (this.hitTest(dropZone1))
{
cont += 1;
//trace(cont);
gotoAndPlay(2);
a_mc._x = dropZone1._x;
a_mc._y = dropZone1._y;
// trace(e_mc._x);
}
else
{
gotoAndPlay(31);
// trace("mal");
a_mc._x = posX;
a_mc._y = posY;
}
};
posX1 = e_mc._x;
posY1 = e_mc._y;
e_mc.onPress = function(mouseDown)
{
this.startDrag();
};
e_mc.onRelease = function(mouseUp)
{
this.stopDrag();
if (this.hitTest(dropZone2))
{
cont += 1;
//trace(cont);
gotoAndPlay(2);
e_mc._x = dropZone2._x;
e_mc._y = dropZone2._y;
// trace(e_mc._x);
}
else
{
gotoAndPlay(31);
// trace("mal");
e_mc._x = posX1;
e_mc._y = posY1;
}
};
posX2 = i_mc._x;
posY2 = i_mc._y;
i_mc.onPress = function(mouseDown)
{
this.startDrag();
};
i_mc.onRelease = function(mouseUp)
{
this.stopDrag();
if (this.hitTest(dropZone3))
{
cont += 1;
//trace(cont);
gotoAndPlay(2);
i_mc._x = dropZone3._x;
i_mc._y = dropZone3._y;
// trace(e_mc._x);
}
else
{
gotoAndPlay(31);
// trace("mal");
i_mc._x = posX2;
i_mc._y = posY2;
}
};
posX3 = o_mc._x;
posY3 = o_mc._y;
o_mc.onPress = function(mouseDown)
{
this.startDrag();
};
o_mc.onRelease = function(mouseUp)
{
this.stopDrag();
if (this.hitTest(dropZone4))
{
cont += 1;
//trace(cont);
gotoAndPlay(2);
o_mc._x = dropZone4._x;
o_mc._y = dropZone4._y;
// trace(e_mc._x);
}
else
{
gotoAndPlay(31);
// trace("mal");
o_mc._x = posX3;
o_mc._y = posY3;
}
};
posX4 = u_mc._x;
posY4 = u_mc._y;
u_mc.onPress = function(mouseDown)
{
this.startDrag();
};
u_mc.onRelease = function(mouseUp)
{
this.stopDrag();
if (this.hitTest(dropZone5))
{
cont += 1;
//trace(cont);
gotoAndPlay(2);
u_mc._x = dropZone5._x;
u_mc._y = dropZone5._y;
// trace(e_mc._x);
}
else
{
gotoAndPlay(31);
// trace("mal");
u_mc._x = posX4;
u_mc._y = posY4;
}
};

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas