Ver Mensaje Individual
  #23 (permalink)  
Antiguo 03/07/2008, 16:28
Avatar de daPhyre
daPhyre
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: [email protected] (Redirects to 127.0.0.1)
Mensajes: 2.404
Antigüedad: 16 años, 1 mes
Puntos: 142
Respuesta: ideas para crear un juego interactivo para niños

Excelente, un código sencillo y funcional. Creo que ha de haber problemas en la detección de colisiones, pues primero detecta los de la izquierda, y en caso de ser cierto, se va al primero por muy cercano que lo sueltes del segundo. Una forma de solucionarlo sería comparar desde la mitad del MC su colisión, para ver de que lado debería ir mejor. Prueba con este código:

Código:
if (_root.ga.hitTest(_root.clip1)) {
if(abs(_root.ga._x - _root.clip1._x) < _root.ga._width/2){
_root.ga._x = _root.clip1._x;
_root.ga._y = _root.clip1._y;
}
}
De igual forma repitelo con cada tipo de colisión. Otro detalle: Si estás programando dentro de "ga", por ejemplo, puedes llamarlo con "_this" en lugar de con "_root.ga". Esto ayuda tambien a que no debes modificar tanto el código al copiarlo y pegarlo en los demás MC.

De esta forma, ya deberían ser capaces de acomodarse las sílabas en sus respectivos cuadros, lo siguiente es saber si los bloques están desocupados o no. Comencemos a poner una variable a cada clip# de la siguiente forma:

Código:
onLoad{
ocupado = false;
}
Y después, modificar las silabas (Esta vez usaré el "_this"):

Código:
if (this.hitTest(_root.clip1) && _root.clip1.ocupado == false) {
if(abs(this._x - _root.clip1._x) < this._width/2){
this._x = _root.clip1._x;
this._y = _root.clip1._y;
_root.clip1.ocupado = true;
}
}
Esto es temporal; aun estoy ideando una forma de "desocuparlo" cuando sacas la silaba, pero todavia no tengo una idea clara. Quizá leer de forma continua si no está colisionando con nada, y en dado caso devolver a false ocupado, pero aun no estoy seguro si es lo más óptimo.

Prueba si esto te funciona, y en tal caso, luego continuaremos a ver como "leer palabras completas". ¡Suerte!

PD: Temo decirte que no tengo el CS3 ni el CS2. Como te había dicho antes, tengo el MX 2004, motivo mismo por el que no pude ver tu archivo. De igual forma no creo que sea necesario que lo envies.
__________________
<signs>daPhyre</signs>
Jugaa.me


Adios al dolor de cabeza de IE...

Última edición por daPhyre; 04/07/2008 a las 21:09 Razón: Corrección en this