Este es el resultado de 5 minutos de experimentación en Flash, un MovieClip que camina por los bordes de un dibujo. Aunque se adapta bastante bien a cualquier situación, es experimental y aún surgen un par de errores molestos que se pueden corregir sin demasiada dificultad.
El funcionamiento es sumamente simple: Al presionar las flechas no movemos la caja sino 2 puntos (invisibles). Estos puntos se ubican en la siguiente posición posible hacia arriba o hacia abajo en la dirección deseada.
Usando algo de trigonométricabásica, colocamos la caja a la mitad de camino entre los puntos con un ángulo igual al ángulo formado por estos puntos.
Para evitar errores que congelen el procesador, empleo for() y no whiles para realizar los hitTests que determinan la siguiente posición posible.
El resultado es aceptablemente bueno, considerando la simpleza y la escasa cantidad de recursos que emplea. Igualmente, es muy mejorable.
En realidad, el juego del trineo es totalmente distinto. En ese juego, el usuario dibuja un camino que (probablemente) se almacene en un Array. Entonces, la comprobación de colisión, se realiza con matemáticas y no "probando hasta que de false".
Esto es distinto, la idea es ahorrarle a quien crea el programa la necesidad de pasar sus dibujos a código. Dándole así más espacio creativo. Por:HernanRivas
Buen ejemplo HernanRivas Realmente se logra un buen efecto para el poco código que utiliza. El juego del trineo se podría hacer con este mismo código, lo único que variaría es que el movieclip al que tú llamas "piso" estaría dibujado dinámicamente. Por:Zguillez
muy bueno, hace un tiempo hicimos un par de juegos donde el piso era dinámico y todo eso, la verdad q se investiga mucho para lograr cosas interesantes, muy buen tip Por:eldervaz
Muy Bueno , Hernan, hace rato habia usado uno parecido (pero mas complejo)
aun no logro entender el por que del ciclo, es decir, dentro de el no ocupas la variable "i". Por:eveevans
Exelente... me quedo sin palabras, me acaban de ayudar a resolver casi dos semanas de estar sentado frente al computador jajaja... gracias Por:Chelo_blog
Muy bueno gracias por el *.fla, sera de mucha ayuda en mis estudios. Por:Victor-Nael
eveevans :
Muy Bueno , Hernan, hace rato habia usado uno parecido (pero mas complejo)
Siempre me gustó la gente modesta Como ya dije, esto es un código de 5 minutos, una idea. No un programa terminado.
eveevans :
aun no logro entender el por que del ciclo, es decir, dentro de el no ocupas la variable "i".
El uso del for no se relaciona con la variable i. Lo uso para darle fácilmente un máximo a la cantidad de iteraciones que realiza el mc al chequear los hitTests. No puedo hacerlo simplemente con un enterFrame por que no caería lo suficientemente rápido. Y si aumento la velocidad de caida (leáse cuántos píxeles por fotograma baja o sube el MC) el hitTest pierde presición.
Como ya dije, una solución más ortodoxa es usar un while, pero hay un alto riesgo de joder el procesador. El problema se presenta con los cambios bruscos en el dibujo que obligan a hacer cientos de iteraciones, con el for le puse un límite que, además, se puede cambiar con mucha facilidad).
Este verano me gustaría empaparme de conocimientos sobre el hittest en juegos de motos y bicis de trial, este clip me servirá para iniciar mis conocimientos
Muchas gracias Por:Pedrito_blog
simpatiquisimo ! Por:penholder_blog
JAJA, Muchisimas gracias Hernan (lo del code mas complejo me referia a que "este es mejor!!!") Por:eveevans
Nunca me hubiera imaginado lo de los puntitos, que buen tip hernan =) Por:bryanisimo
Los puntitos, entendidos como 2 MCs no hacen falta, con manejar las coordenadas solamente alcanza.
Los puntos los agregué para hacer más visible a la idea. Por:HernanRivas
Hernan, es muy bueno el ejemplo. Se nota que sabes mucho. Cuanto me cobras por hacer un visor en flash que permita visualizar videos y fotos sin tener que resamplear las imágenes? que tome una carpeta tal como está y muestre el contenido foto y video con solo colocar el swf dentro de esta? Es para uso personal. Estaré pendiente. Gracias. Por:Tobias_blog