Problema con la animacion en flash action script 2.0

POST EDITADO, NUEVO PROBLEMA

Al final pude solucionar el problema hace meses con el "gotoxy" y acto seguido hacia un printf linea a linea... Subiré el jueguecito para que lo probeis.

Ahora tengo otro problemilla con el flash, que estoy empezando justamente ahora.

Aprovecho para cambiar el titulo del hilo.

El problema es el siguiente, no logro que al no pulsar una tecla, vuelva a la animacion inicial, y se queda la ultima animacion pulsada hasta el infinito.

El codigo es el siguiente:

onClipEvent(load)
{
speed = 10
gravedad =3
speedjump = 30
IDLE =0
MOVDER=1
MOVIZQ=2
JUMP=3
anim=IDLE
}
onClipEvent(enterFrame)
{
//Movement control
if(Key.isDown(Key.RIGHT))
{
if(this._x<=225)
{
this._x +=speed
_root.marco.gotoAndStop(2)
anim=MOVDER
}
if(this._x>225)
{
_root.fondo1._x -= speed
_root.camino._x -= speed
_root.marco.gotoAndStop(2)
anim =MOVDER
}

}

if(Key.isDown(Key.LEFT))
{
if(this._x<=225)
{
this._x -=speed
_root.marco.gotoAndStop(3)
anim=MOVIZQ
}
if(this._x>225)
{
_root.fondo1._x += speed
_root.camino._x += speed
_root.marco.gotoAndStop(3)
anim =MOVIZQ
}

}

if (Key.isDown(Key.DOWN))
{
_root.marco.gotoAndPlay(4)
}
if (!Key.isDown) {
_root.marco.gotoAndStop(1);
}
}


Estoy seguro de que el fallo esta en el ultimo if, pero no se como arreglarlo, Gracias


Hola bonditardanit!

Pues vereis, estoy en un projecto de C de crear un videojuego de naves con caracteres ASCII.

El caso es que tengo ciertos problemillas a la hora de plantear el como se mostrara la pantalla de titulo...

Para crear la pantalla de titulo he empleado la siguiente pagina http://www.patorjk.com/software/taag/

El caso es que claro, esta pagina te da el titulo a modo de texto, y claro hay que recodificarla a codigo ascii en una matriz para que se muestre paso por paso como yo se y a mi me de la gana... con lo cual tengo el coñazo de codificar manualmente simbolo a simbolo todos los caracteres en una matriz de valores.

Entonces habia pensado, representarlo directamente a modo de texto, tal cual, pero tengo un problema, y es que no se si se puede de alguna manera jugar con el tiempo a la hora de mostrar caracteres que pertenezcan a una sentencia de texto, si se puede mostrar linea a linea, cada 10 caracteres, etc, ni idea.

A ver si podeis hecharme un cable, o algo que me codifique los valores automaticamente, o algo para yo poder "jugar" con los caracteres.

Logicamente cuando acabe el proyecto lo pondre para que jugueis, pero no espereis maravillas [+risas]

Muchisims gracias y muchos saludos!
C hace tiempo que no lo toco, pero poniendo 'C' no te guarda el caracter C?

Pregunto porque no me acuerdo.

Otra de las cosas que recuerdo que pasa con juegos modo texto es que da una sensación parpadeante bastante chunguilla cuando tienes que borrar y escribir de nuevo.
Para especificar decir que, lo que yo quiero es "Texto dinamico" por decirlo de algun modo, y claro se hacerlo por representacion de matrices y con caracteres ascii, y preguntaba si, con el texto directamente, se podria llegar a conseguir, sin recurrir a otro tipo de representacion.

Porque si tengo que hacer una matriz 80X50 simbolo a simbolo me puedo morir [+risas]
DarK-LaMoS escribió:Para especificar decir que, lo que yo quiero es "Texto dinamico" por decirlo de algun modo, y claro se hacerlo por representacion de matrices y con caracteres ascii, y preguntaba si, con el texto directamente, se podria llegar a conseguir, sin recurrir a otro tipo de representacion.

Porque si tengo que hacer una matriz 80X50 simbolo a simbolo me puedo morir [+risas]


:), hombre la verdad que sí, pero evidentemente siempre puedes hacer una función que dado un texto y tal sea capaz de crearte la matriz, no tener que meter el texto a pelo hombre :)

De ese modo tienes tus cadenas de caracteres y se las pasas a la función y tal, puedes leer de fichero y pasarlas a la función, es decir, procesando en vez de tenerlo precargado, no se si me explico...
Si sisisisisiisi, te explicas perfectamente.

De hecho podria crearlo de tal forma que leyera un archivo .txt... lo procesara, y lo guardara en otro archivo .txt ya codificado.

No te sonara tener algun programa de esos? No he tenido suerte buscando por google.
Yo no guardaría nada en ningún otro txt, simplemente crearía una función a la que se le pase la ruta a un fichero de texto con la pantalla y devolviese la matriz lista para usar. Despues llamas a esa función cada vez que inicias el juego y listo. Lo que no entiendo muy bien es como quieres tener la matriz ¿Con los valores ASCII de cada caracter? ¿Strings con los "\loquesea" en los caracteres especiales?
Primero guardas los caracteres, por su simbologia entera, ascii en una matriz, y luego mueves esa matriz como quieras...

Pero para guardarla hay que codificarla, caracter a caracter, eso es lo que me quiero "ahorrar" en tener que codificar manualmente unos 1000 caracteres.
¿Con codificar te refieres a meterlos en la matriz en la posición adecuada? Si es eso y lo estas leyendo de un archivo es muy facil hacer una función simple que rellene la matriz leyendo caracter a caracter. ¿Que te impide hacer lo siguiente?

for(int i = 0; i > iAlto; i++)
{
   for(int j = 0; j > iAncho; j++)
       matriz[j][i] = leerSiguienteCaracter();
   leerSiguienteCaracter(); //salto de línea
}
¿Has probado a "repintar" la pantalla completa a ver que velocidad consigues? Te lo digo porque ahí, seguramente, tendrás un buen cuello de botella.

Respecto a lo que quieres ahorrate, no si te refieres a:
a) Ahorrarte transcribir la matriz a pelo en el código fuente
b) Ahorrarte el proceso de obtener los códigos ascii de los caracteres

Caso a): Montate un programilla que escriba el código fuente
sprintf(&destino, "matriz[%d][%d] = %c;", i, j, caracter);


Caso b): ¿Qué problema tienes con la representación en modo caracter? De cualquier manera, en C, los char son int, no es necesario ningún procesamiento para cambiar de un tipo al otro.
int numero = 65;
int A = 'A';
printf("%d", A); //Muestra 65
printf("%c", numero); //Muestra A
Al final pude solucionar el problema hace meses con el "gotoxy" y acto seguido hacia un printf linea a linea... Subiré el jueguecito para que lo probeis.

Ahora tengo otro problemilla con el flash, que estoy empezando justamente ahora.

Aprovecho para cambiar el titulo del hilo.

El problema es el siguiente, no logro que al no pulsar una tecla, vuelva a la animacion inicial, y se queda la ultima animacion pulsada hasta el infinito.

El codigo es el siguiente:

onClipEvent(load)
{
speed = 10
gravedad =3
speedjump = 30
IDLE =0
MOVDER=1
MOVIZQ=2
JUMP=3
anim=IDLE
}
onClipEvent(enterFrame)
{
//Movement control
if(Key.isDown(Key.RIGHT))
{
if(this._x<=225)
{
this._x +=speed
_root.marco.gotoAndStop(2)
anim=MOVDER
}
if(this._x>225)
{
_root.fondo1._x -= speed
_root.camino._x -= speed
_root.marco.gotoAndStop(2)
anim =MOVDER
}

}

if(Key.isDown(Key.LEFT))
{
if(this._x<=225)
{
this._x -=speed
_root.marco.gotoAndStop(3)
anim=MOVIZQ
}
if(this._x>225)
{
_root.fondo1._x += speed
_root.camino._x += speed
_root.marco.gotoAndStop(3)
anim =MOVIZQ
}

}

if (Key.isDown(Key.DOWN))
{
_root.marco.gotoAndPlay(4)
}
if (!Key.isDown) {
_root.marco.gotoAndStop(1);
}
}


Estoy seguro de que el fallo esta en el ultimo if, pero no se como arreglarlo, Gracias
9 respuestas