Comunidad de diseño web y desarrollo en internet online

Necesito saber como se hace un score para mi juego

Citar            
MensajeEscrito el 26 Jul 2011 06:30 pm
Hola amigos pues ya despues de anar buscando y estudiando me vi la necesidad de pedirles auxilio a ustedes resulta que quiero poner un score a mi juego que arrastra y suelta mc en lugares especificos pero al momento de soltar todas las figuras me aparece un resultado en el cual no era el que esperaba, les anexo mi codigo para que lo chequen

Código :

var mi_obj:Object=new Object();
var score:Number = 0

R1_mc.addEventListener(MouseEvent.MOUSE_DOWN,onDrag); 
R1_mc.addEventListener(MouseEvent.MOUSE_UP,ofDrag); 

function onDrag(evento:MouseEvent):void 
{
   mi_obj= evento.currentTarget;evento.currentTarget.startDrag();
      
}
function ofDrag(evento:Event):void

{
    if(R1_mc.hitTestObject(R1_mo)==true)
   {
      
      R1_mc.x=R1_mo.x;
      R1_mc.y=R1_mo.y;
      score++;
      //trace('score: ' + score); 
      puntos_txt.text = String(score);
   }
   else
   {
      R1_mc.x=6.20;
      R1_mc.y=35.10;
   }
mi_obj= evento.currentTarget;evento.currentTarget.stopDrag();
}


Espero me ayuden o me digan cual es el cmaino para la luz de antemano mil gracias.

Por stynpy

47 de clabLevel



 

safari
Citar            
MensajeEscrito el 26 Jul 2011 08:44 pm
Tienes una variable que inicializas en cero y luego le sumas uno en cada drag exitoso. ¿Cual es el problema/error?

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 26 Jul 2011 10:07 pm
Que cuando arrastro el mc no aparece mi punto en el texto dinamico, ahora tambien que cuando no suelto en el lugar correcto hace el conteo de todos modos como le hago ahi para que se quede en el conteo que esta o reste?

Por stynpy

47 de clabLevel



 

safari
Citar            
MensajeEscrito el 26 Jul 2011 11:22 pm
Por partes. Tienes un if donde si el drag es correcto suma y muestra, ¿Se dispara? Descomenta el trace, ¿sale el score? Donde está el campo de texto, ¿en la misma línea de tiempo?

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 27 Jul 2011 02:28 pm
Mira te anexo mi codigo que tengo.

Código :

var mi_obj:Object=new Object();
var score:Number = 0

R1_mc.addEventListener(MouseEvent.MOUSE_DOWN,onDrag); 
R1_mc.addEventListener(MouseEvent.MOUSE_UP,ofDrag); 

function onDrag(evento:MouseEvent):void 
{
   mi_obj= evento.currentTarget;evento.currentTarget.startDrag();
      
}
function ofDrag(evento:Event):void

{
    if(R1_mc.hitTestObject(R1_mo)==true)
   {
      
      R1_mc.x=R1_mo.x;
      R1_mc.y=R1_mo.y;
      score++;
      //trace('score: ' + score); 
      puntos_txt.text = String(score);
   }
   else
   {
      R1_mc.x=6.20;
      R1_mc.y=35.10;
   }
mi_obj= evento.currentTarget;evento.currentTarget.stopDrag();
}

Y de antemano gracias por responder.

Por stynpy

47 de clabLevel



 

safari
Citar            
MensajeEscrito el 27 Jul 2011 02:43 pm
No te pedí el código, que ya lo habías posteado anteriormente, te hice un par de preguntas

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 27 Jul 2011 06:52 pm
Ok el score si sale en el trace y sale asi

1
2
3
4
y si en un if tengo las coordenadas en el cual tengo para que suelte en su lugar especifico, pero cuando bloque el trace y le indico en donde debe aparecer el score al empezar arrastrar la primera pieza y sale hasta que termino soltar la ultima pieza entonces lo que quiero decir es que aparesca el score y darle un valor cada vez que se suelte en su lugar correcto cada pieza.

Por stynpy

47 de clabLevel



 

safari
Citar            
MensajeEscrito el 27 Jul 2011 07:45 pm
Bien, si el trace sale correcto, no hay motivo para que no salga el score en el campo de texto que está en la línea inferior ... a menos que la ruta sea incorrecta. Ahora traza el textfield a ver si no da undefined

trace(puntos_txt)

Si da undefined, entonces quizás esté en root o en otro lado

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 27 Jul 2011 09:13 pm
Ok, mira ya lo hice y en salida me aparece esto [object TextField] y en el campo de texto me sale el numero hasta que le doy clic a mi mc y no cuando lo suelto

Por stynpy

47 de clabLevel



 

safari
Citar            
MensajeEscrito el 27 Jul 2011 09:16 pm
Ocurre cuano lo sueltas, es decir pasa esto:

R1_mc.addEventListener(MouseEvent.MOUSE_UP,ofDrag);

y esto:

if(R1_mc.hitTestObject(R1_mo)==true)

¿Cuando quieres que ocurra?

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 27 Jul 2011 09:28 pm
Cuando suelto la figura en su objetivo es decir en esto

Código :

function ofDrag(evento:Event):void
{
    if(R1_mc.hitTestObject(R1_mo)==true)
   {
      R1_mc.x=R1_mo.x;
      R1_mc.y=R1_mo.y;
      score++;
      trace(puntos_txt); 
      puntos_txt.text = String(score);   
   }
   else
   {
      R1_mc.x=6.20;
      R1_mc.y=35.10;
   }

Por stynpy

47 de clabLevel



 

safari
Citar            
MensajeEscrito el 29 Jul 2011 12:05 am
Que paso amigos ya no quieren contestar ando atoradillo

Por stynpy

47 de clabLevel



 

safari
Citar            
MensajeEscrito el 29 Jul 2011 02:11 am
No contestas, me vuelves a poner el mismo código, no veo que esto avance

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 29 Jul 2011 02:52 am
huuuy pues si conteste pero en fin gracias de todos modos

Por stynpy

47 de clabLevel



 

safari
Citar            
MensajeEscrito el 29 Jul 2011 09:17 am

Código ActionScript :

if(R1_mc.hitTestObject(R1_mo))

El ==true no es necesario.
A mi me parece que ese codigo debiese funcionarte. Todavia no entiendo cual es tu problema.

Por cierto, para restar un punto si se coloco en el sitio equivocado, solo agrega score-- en el 'else' del condicional del hitTestObject, ejemplo:

Código ActionScript :

   else
   {
      R1_mc.x=6.20;
      R1_mc.y=35.10;
      score--;
      puntos_txt.text = String(score);
   }

Por Acreonte

Claber

1543 de clabLevel

5 tutoriales
6 articulos

Genero:Masculino  

Digital Scientist

firefox
Citar            
MensajeEscrito el 29 Jul 2011 03:29 pm
Gracias amigo ya lo puse como me dijiste ya funciona pero ahora tengo varias clips y les puse el codigo de score pero ahora cuando arrastro las figuras empieza con un numero menos ejemplo

-5

Te anexo el codigo para haber si me úedes decir si estoy haciendo algo incruente o que estoy haciendo mal.

Código :

import flash.events.Event;

var mi_obj:Object=new Object();
var score:Number = 0;

R1_mc.addEventListener(MouseEvent.MOUSE_DOWN,onDrag); 
R1_mc.addEventListener(MouseEvent.MOUSE_UP,ofDrag); 
 
R2_mc.addEventListener(MouseEvent.MOUSE_DOWN,onDrag); 
R2_mc.addEventListener(MouseEvent.MOUSE_UP,ofDrag); 
 
R3_mc.addEventListener(MouseEvent.MOUSE_DOWN,onDrag); 
R3_mc.addEventListener(MouseEvent.MOUSE_UP,ofDrag); 

R4_mc.addEventListener(MouseEvent.MOUSE_DOWN,onDrag); 
R4_mc.addEventListener(MouseEvent.MOUSE_UP,ofDrag); 

R5_mc.addEventListener(MouseEvent.MOUSE_DOWN,onDrag); 
R5_mc.addEventListener(MouseEvent.MOUSE_UP,ofDrag); 

R6_mc.addEventListener(MouseEvent.MOUSE_DOWN,onDrag); 
R6_mc.addEventListener(MouseEvent.MOUSE_UP,ofDrag); 

R7_mc.addEventListener(MouseEvent.MOUSE_DOWN,onDrag); 
R7_mc.addEventListener(MouseEvent.MOUSE_UP,ofDrag); 

function onDrag(evento:MouseEvent):void 
{
   mi_obj= evento.currentTarget;evento.currentTarget.startDrag();
}
function ofDrag(evento:Event):void

{

    if(R1_mc.hitTestObject(R1_mo))
   {
      
      R1_mc.x=R1_mo.x;
      R1_mc.y=R1_mo.y; 
      score++;  
        //puntos.text = score.toString();*/
      //score=(Number(score) + 1);
      puntos.text=score.toString();
   }
   else
   {
      R1_mc.x=1.35;
      R1_mc.y=99;
      score--; 
        puntos.text = String(score); 
   }
   if(R2_mc.hitTestObject(R2_mo))
   {
      R2_mc.x=R2_mo.x;
      R2_mc.y=R2_mo.y;
      score++;
      puntos.text=score.toString();
   }
   else
   {
      R2_mc.x=16.50;
      R2_mc.y=244;
        score--;
      puntos.text = String(score);
   }
   if(R3_mc.hitTestObject(R3_mo))
   {
      R3_mc.x=R3_mo.x;
      R3_mc.y=R3_mo.y;
      score++;
      puntos.text=score.toString();
   }
   else
   {
      R3_mc.x=424.50;
      R3_mc.y=14.35;
      score--;
      puntos.text=String(score);
   }
   if(R4_mc.hitTestObject(R4_mo))
   {
      R4_mc.x=R4_mo.x;
      R4_mc.y=R4_mo.y;
      score++;
      puntos.text=score.toString();
   }
   else
   {
      R4_mc.x=454.35;
      R4_mc.y=139.50;
      score--;
      puntos.text=score.toString();
   }
   if(R5_mc.hitTestObject(R5_mo))
   {
      R5_mc.x=R5_mo.x;
      R5_mc.y=R5_mo.y;
      score++;
      puntos.text=score.toString();
   }
   else
   {
      R5_mc.x=149;
      R5_mc.y=230.10;
      score--;
      puntos.text=score.toString();
   }
   if(R6_mc.hitTestObject(R6_mo))
   {
      R6_mc.x=R6_mo.x;
      R6_mc.y=R6_mo.y;
        score++;
      puntos.text=score.toString();
   }
   else
   {
      R6_mc.x=415.35;
      R6_mc.y=279.30;
        score--;
      puntos.text=score.toString();
   }
   if(R7_mc.hitTestObject(R7_mo))
   {
      R7_mc.x=R7_mo.x;
      R7_mc.y=R7_mo.y;
      score++;
      puntos.text=score.toString();
   }
   else
   {
      R7_mc.x=341;
      R7_mc.y=254;
      score--;
        puntos.text=score.toString();
   }
   mi_obj= evento.currentTarget;evento.currentTarget.stopDrag();
}


Y gracias por haber respondido.

Por stynpy

47 de clabLevel



 

safari
Citar            
MensajeEscrito el 30 Jul 2011 05:13 am
El -5 te ocurre porque en las condicionales siempre entran a la seccion "else", excepto el clip que arrastras correctamente a su posicion.

A grosso modo y al vuelo es lo que vi.
Dentro de un rato (ya con menos alcohol en la sangre) veré... mientras. checa eso.

Por Camuss

498 de clabLevel

1 tutorial
1 articulo

Genero:Masculino  

Lima City - Perú

chrome
Citar            
MensajeEscrito el 30 Jul 2011 05:36 am
Ok, despues de algunas tazas de café... dos cosas puntuales...

Primero, es que veo que usas una variable mi_obj a la que le asignas el clip que estas arrastrando

Código ActionScript :

function onDrag(evento:MouseEvent):void 
{
   mi_obj= evento.currentTarget;
   evento.currentTarget.startDrag();
}

Pero no lo usas. Es decir, lo asignas pero nada mas. O lo usas o quitalo.

Segundo, tu codigo es muy largo, no me imagino que pasaria si fueran 100 clips para mover.
En fin, la solucion que veo es que no pongas tantos "if" en el stopDrag.
Date cuenta que ahi lo que estas diciendo es:

"Si el clip mc 1 intersecta con el clip mo 1 entonces... que haga esto...
"Si el clip mc 2 intersecta con el clip mo 2 entonces... que haga esto...
"Si el clip mc 3 intersecta con el clip mo 3 entonces... que haga esto...
.
.
.
.
.

Pero son estructuras if, sino se cumple salta al else.
Ahora imagina, jalas el clip 1 y lo colocas donde corresponde, el primer if te funcionara ok, pero luego, siguiendo el orden, se vuelve a entrar al segundo if. Aqui, no se cumple la condicion (que el clip 2 intersecte donde corresponde) asi que necesariamente, TIENE QUE ENTRAR en el "else", por lo que siempre lo ejecutara. A eso agregale que siempre has puesto en el else que haga la resta ("score--") y entonces tienes la explicacion de tu -5.

Haciendolo como te dije creo que seria asi (y mas corto)

Código ActionScript :

var mi_obj:Object={};
var score:int = 0;

for (var i:int=1; i<=7; i++)
{
   this["R"+i+"_mc"].addEventListener(MouseEvent.MOUSE_DOWN,onDrag); 
   this["R"+i+"_mc"].addEventListener(MouseEvent.MOUSE_UP,ofDrag); 
   this["R"+i+"_mc"].buttonMode=true;
}


function onDrag(evento:MouseEvent):void 
{
   mi_obj = evento.currentTarget;
   mi_obj.startDrag();
}
function ofDrag(evento:Event):void

{
   var clip:String=mi_obj.name;
   var numClip:String=clip.substring(1,2); //para hallar el numero de clip
   
      if (mi_obj.hitTestObject(this["R"+numClip+"_mo"]))
   {   
      score++;
      mi_obj.x = this["R"+numClip+"_mo"].x;
      mi_obj.y = this["R"+numClip+"_mo"].y;
   }
   else
   {
      score--;
   }
   
   puntos.text=score.toString();
   mi_obj= evento.currentTarget;
   mi_obj.stopDrag();
}


Y bueno, creo que asi seria.
Segui usando tu variable "mi_obj" aunque yo usaria e.currentTarget, pero supongo que es cuestion de gustos. En la seccion "else" le quite los valores que pusiste porque no entiendo a donde quieres moverlo. En todo caso, yo crearia un array con las posiciones que necesitas y las llamaria usando el numero que obtengo del objeto.

Espero esto te ayude.
Por cierto, lee cuidadosamente cuando alguien te solicita algo mas de informacion, se necesita entender bien cual es el problema para poder ayudarte.

Saludos!

Por Camuss

498 de clabLevel

1 tutorial
1 articulo

Genero:Masculino  

Lima City - Perú

chrome
Citar            
MensajeEscrito el 03 Ago 2011 07:10 pm
Gracias amigo camuss por responder y una disculpa por responder hasta ahora ya vi tu codigo y me resulto bien ahora estoy viendo la manera de mostrar mis clips pero ahora aleatoriamente.

Por stynpy

47 de clabLevel



 

safari

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.