Comunidad de diseño web y desarrollo en internet online

NECESITO AYUDA CON CODIGO

Citar            
MensajeEscrito el 09 Feb 2009 02:10 am
hola bueno soii nuevo en el foro pero tengo conocimientos de flash,,, diria nivel novato/intermedio,,, pero el problema q tengo es este,,

quiero hacer un juego de peleas tipo street figther,,, el problema q tengo es q nose como hacer o sea que funcion armar para que responda a los combos y tecnicas,,, intente guardar las teclas presionaas en una array con un limite ,, por ejemplo cuando se presionaba una tecla de accion (ejemplo patada) se comprobaba si la array era igual a alguna que tengo el combo o tecnica ,, es decir,, verificaba que se hayan presionado las flechas de direccion correspondinete, luego me vino el problema del tiempo, es decir hize un temporizador que cada 1 seg. se comprobara esa array,, pero ahi fue donde se me hizo el lio en la cabeza y en internet no encontre mucha info sobre engines de peleas,, asi que queria saber si uds. me podrian ayudar como puedo hacer para que me funcione el sistema de tecnicas o combos,,, desde ya gracias iii debo admitir que hay muchas mentes inteligentes en este site,,,

gracias ii adios

Por uchiha_dario

15 de clabLevel



 

firefox
Citar            
MensajeEscrito el 09 Feb 2009 07:06 am
bueno si todos los combos tienen la misma cantidad de caracteres tendrias que guardar en un array los combos ejemplo

combos[0]="asdw";
combos[1]="awds";
combos[2]="adsw";
combos[3]="adws";

luego una variable que guarde los tecleeos, al principio con una serie que tenga la misma cantidad de caracteres que los combos, en este caso 4, y que tenga un caracter que no pertenesca a un combo, ejemplo el 3

combinacion = "3333";

despues en la funcion de deteccion de precionado

si toco A
{
.....-Combinacion tiene que ser igual a los ultimos 3 caracteres, es decir omitiendo el primero, si combinacion fuera "abcd", tendria que ser "bcd", en este caso quedaria "333"
.....-Ahora agruega la letra A al final de la cadena, combinacion = combinacion + "a", te queda "333a"
.....-Llamo a funcion DetectarCombo();
}

si toco S
{
.....-Combinacion tiene que ser igual a los ultimos 3 caracteres, es decir omitiendo el primero, si combinacion fuera "abcd", tendria que ser "bcd", en este caso quedaria "333"
.....-Ahora agruega la letra S al final de la cadena, combinacion = combinacion + "s", te queda "333s"
.....-Llamo a funcion DetectarCombo();
}

si toco D
{
.....-Combinacion tiene que ser igual a los ultimos 3 caracteres, es decir omitiendo el primero, si combinacion fuera "abcd", tendria que ser "bcd", en este caso quedaria "333"
.....-Ahora agruega la letra D al final de la cadena, combinacion = combinacion + "d", te queda "333d"
.....-Llamo a funcion DetectarCombo();
}

si toco W
{
.....-Combinacion tiene que ser igual a los ultimos 3 caracteres, es decir omitiendo el primero, si combinacion fuera "abcd", tendria que ser "bcd", en este caso quedaria "333"
.....-Ahora agruega la letra W al final de la cadena, combinacion = combinacion + "w", te queda "333w"
.....-Llamo a funcion DetectarCombo();
}

Function DetectarCombo()
{
.....If(combinacion = combos[0])
.....{
.......... //Se Hizo el combo 0
}

.....If(combinacion = combos[1])
.....{
..........//Se Hizo el combo 1
.....}

.....If(combinacion = combos[2])
.....{
..........//Se Hizo el combo 2
.....}

.....If(combinacion = combos[3])
.....{
..........//Se Hizo el combo 3
.....}
}

Bueno hay lugares donde no pongo codigo sino que escribo porque ni me acuerdo como era, ase mucho que no toco flash XD, bueno espero que te sirba, fijate que no es muy complicado, de esta forma se comprobara cada ves que el usuario precione una tecla si hay un combo. Ahora si todos lso combos tienen diferente cantidad de caracteres, bueno hay decime porque es un poco mas jodido y hay que pensarlo mas.

si no etendes algo preguntame, tene en cuenta las mayusculas y minusculas porque el usuario pude tener activado el "Caps Lock".

Byee Saludos!

Por wawi

325 de clabLevel

2 tutoriales

 

Argentina

firefox
Citar            
MensajeEscrito el 17 Feb 2009 04:00 am
ok gracias,,,en unos dias pruebo el codigo pasa que con la facultad no tengo mucho tiempo,, voy a ver como organizo el codigo en un principio esta era mi forma pero la hacia de otra,, comparaba cada elemento del array ii eso se me hacia complicado

vere eso del Caps Lock,, gracias,,, pronto traere avances

otra pregunta ,, cmo hago para q esto se verifique en nu cierot tiempo por ejemplo en el mortal kombat tenes un tiempo para hacer el combo oo truco rapido,, sino no funciona,, eso es un problema por q no encuentro solucion,, me podrias ayudar?

muchisimas gracias

Por uchiha_dario

15 de clabLevel



 

firefox
Citar            
MensajeEscrito el 17 Feb 2009 05:20 pm
eso te lo iba a poner, pero no sabia si lo necesitabas, la cosa es que es medio complicado, la primera opcion es que al tocar una tecla comience un timer hasta medio segundo, si llega al medio segundo la variable combinacion vuelve a valer "3333" (Al ser medio segundo el combo se estaria haciendo en 2 segundos), cada ves que el usuario precione este timer se desabilita y comienza otro, de esta forma el usuario tiene menos de dos segunos para hacer los combos, es muy facil hacerlo de esta manera, pero no es la fomra correcta, ya que imaginate que si tenes dos segundos para hacer el combo, el usuario podria estar un segundo para tocar la primera letra del combo y el otro segundo para tocar las otras tres, si el usuario hace esto con este mini algoritmo, no le va a detectar el combo.

LA SEGUNDA OPCION es crear un array de tiempo, que inicie asi

tiempo[0] = 00:00:00:00
tiempo[1] = 00:00:00:00
tiempo[2] = 00:00:00:00
tiempo[3] = 00:00:00:00

obio que esto asi no se declara y tampoco se asigana asi el tiempo, lo pongo asi para que entiendas no mas, cada ves que se llame a la fucion DetectarCombo(), la informacin de tiempo[3] se pasa a tiempo[2]

tiempo[2] = tiempo[3]

y tiempo[3] es igual a la hora actual

y cuando se hace un combo quedan registradas las horas en que se tocaron cada tecla, entonces haces tiempo[3] - tiempo[0], que es la diferencia entre el tiempo que tocaste la pimer tecla del combo y la ultima, si la diferencia es menor a 2 segundos:

diferencia = tiempo[3] - tiempo[0];
minimocombo = 2segundos

if(diferencia<minimocombo)
{
...//Se hizo el combo
}

bueno busca por intenet y/o pregunta aca como crear variable de tiempo, y busca la funcion de como restar o sumar el tiempo (diferencia = tiempo[3] - tiempo[0];)

espero que te sirba cualquier cosa que no entiendas decime

Byee Saludos!

Por wawi

325 de clabLevel

2 tutoriales

 

Argentina

firefox
Citar            
MensajeEscrito el 17 Feb 2009 05:37 pm
yo de nuevo, tenes que buscar algo asi para medir el tiempo:

http://tempuzfugit.wordpress.com/2008/04/10/como-el-tiempo-con-net-c/

pero para ActionScript, esto esta en C#

Byee Saludos!

Por wawi

325 de clabLevel

2 tutoriales

 

Argentina

firefox
Citar            
MensajeEscrito el 18 Feb 2009 07:54 pm
gracias pero ya lo solucione,, delcaro una variable ii hago un clip q se reproduce cuando el usuario toca las teclas,,, en el root aii una funcion q cuando el array de teclas es 4 llama la function detectar combo,,, si el combo es correto ii el reloj q tiene el clip esta en true,, hace el combo,, sino no lo hace,, el clip recorre 10 frames q hacen 1 seg. de tiempo real,, tonces al llegar al seg, cancela el poder usar combo,,, esto del time ya lo solucione gracias =

ahora una preg.,, me convendria hacer clases con AS ii luego armar los clips tonces armo un flash con el clip ii le asigno la clae,, por q se me hace lio con tanto codigo ademas,, si tiene distitnos personajes cada 1 tiene sus tecnias tonces lo q haria yo es una clases para cada jugador donde aii van a salir los combos,, el daño,, etc,,,

tonecs si se elige otro PJ cambia sus propiedades por el archivo q le corresponde en vez de escribir en un flah todo el codigo del jeguo,, lo armo por clases,, me conviene eso no?

gracias por responder

Por uchiha_dario

15 de clabLevel



 

firefox
Citar            
MensajeEscrito el 21 Feb 2009 10:38 am
Siempre es bueno usar clases, es mucho mas comodo

hace una sola clase para las propiedades de los PJs, personajes.as, y crea un metodo que asigne al objeto las propiades segun el personaje, ejemplo:

import personajes;

personajes player1 = new personajes(); //Sin parametros en el constructor

player1.asignar("personajeTal");

y en el metodo que un swich recorra este parametro

swith(personaje)
{
case "personajetal":
this.daño = 4;
this.defensa = 8;
this.combos[] = combos1[]
break;
}

seguro que deven haber algunos erroers en la sintaxis ya qque hace mucho que no toco as2 y toque poco el tema de clases en as2 pero la idea esta :P. a tu pregunta, si te conviene

Byee Saludos!

Por wawi

325 de clabLevel

2 tutoriales

 

Argentina

firefox
Citar            
MensajeEscrito el 22 Feb 2009 08:46 pm
ok gracias ,,, por casualidad no sabes de alguna pagina que tenga un egine ya hecho en cualquier lenguaje como para leer su codigo e interpretar otras cosas.

Gracias por la ayuda

Por uchiha_dario

15 de clabLevel



 

firefox
Citar            
MensajeEscrito el 22 Feb 2009 09:04 pm
a que te referis con "engine", soy argentino, tal vez lo conosco con otro nombre :P

byee Saludos!

Por wawi

325 de clabLevel

2 tutoriales

 

Argentina

firefox
Citar            
MensajeEscrito el 23 Feb 2009 05:25 am
engine = motor,, generalmente se refiere asi a por ejemplo M.U.G.E.N. es un engine o motor de pelea,,, o sea,, yo quiero hacer un tipo street fighter de Naruto,, pero a la hora de plantearlo estoii muchas horas escribiendo ii armando posibilidades q al final me canso ii las dejo para desp. pero si yo veo uno ya armado o como es el codigo base, me es mas facil por que ya se como se arma y no andar probando 1000 codigos hasta llegar al correcto, a eso me referia.

Gracias por responder.

Por uchiha_dario

15 de clabLevel



 

firefox
Citar            
MensajeEscrito el 23 Feb 2009 12:49 pm
jaj si un codigo base :P, jaja recien ahora me entero que se le llama engine XD que verguenza. fijate sie sto te sirve:

http://www.taringa.net/posts/juegos/1769565/Rumblah!-Flash-Fighting-Engine.html

Byee Saludos!

Por wawi

325 de clabLevel

2 tutoriales

 

Argentina

firefox
Citar            
MensajeEscrito el 23 Feb 2009 05:56 pm
si este lo conozco pero no tengo acceso a su codigo fuente,, solo te lo deja bajar y nada mas ,, es como bajar le MUGEN esta compilado y quiero ver el codigo para entenderlo y hacer mi propio codigo de ahi.

Nose si me doy a entender, sino avisame pero esa es la idea, te gusta naruto?

Por uchiha_dario

15 de clabLevel



 

firefox
Citar            
MensajeEscrito el 23 Feb 2009 08:26 pm
la verdad que si no es ese no conosco ninguno, hacelo de 0, si no sabes como hacer algo pregunta por aca, y sino de ultima usa el recurso que te brinda este rumblah.

que o quies en naruto?

Byee Saludos!

Por wawi

325 de clabLevel

2 tutoriales

 

Argentina

firefox
Citar            
MensajeEscrito el 24 Feb 2009 02:50 am
ok,, vere como lo sigo desarrollando,,, naruto es un anime,, je ,, pregunte por preguntar jaja

Por uchiha_dario

15 de clabLevel



 

firefox
Citar            
MensajeEscrito el 24 Feb 2009 07:49 am
jajaj ok, cualquier duda preguntanos, suertee :).

Byee Saludos!

Por wawi

325 de clabLevel

2 tutoriales

 

Argentina

firefox

 

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