Hola a todos. Estoy programando un juego que tendría lo que viene siendo un sistema en el que tu apretas a una tecla y hace un poder distinto. Tengo pensado realizar estos poderes con particulas.

Ahora, me preguntaba cual es la forma más correcta de escribir dicho codigo.

¿Seria buena idea hacer un script para cada poder? Haciendo un script general,  y separar cada poder en un script distinto con cada una de sus peculiaridades, se llamaria desde cada uno al script general y luego cada uno haría sus cosas. Y luego haría que a cada step con if se vea si se pulsaron las teclas para ejecutar cada poder y ejecute dicho script.. así lo tendría bien separado y a mano.

¿es buena idea o sería mejor trabajar de otra forma? Saludos.

Yo creo que tu idea es muy buenapuedes usar triggers para "poner" el if y así te ahorras bastante lío :)
Jugador de muchos juegos y creador de algunos ;)
¿Buscas un guionista? Haz click aquí

#2 Noviembre 21, 2012, 12:03:08 AM Ultima modificación: Noviembre 21, 2012, 12:05:15 AM por Scimjara
Gracias Marron por la respuesta, preguntaba porque acabo de empezar hace un par de dias y todavia no conozco mucho GML, tampoco sé lo que son los triggers pero enseguida me pongo a leer, que esto me sirve mucho para aprender :)

Saludos!

Edito: acabo de leer que los triggers están obsoletos, uso GM:S, así que de momento los iré haciendo como puse arriba, a no ser que me corrijáis algo, de todos modos gracias Marron!

hola Scimjara, yo creo que lo mejor por experiencia es usar scripts, deberias usar un script por ejemplo Sc_VarPoderes, en dicho script definies por ejemplo la variable global.poderes=0; la usas para determinar el tipo de poder, y demas variables de configuracion de los poderes, luego por ejemplo en otro script Sc_CreaPoder, pones:

argument0=global.poderes
if argument0=0{
codigo de rayos
}

if argument0=1{
codigo de fuego
}



y luego en el evento create del jugador ponemos:

script_execute(Sc_VarPoderes); //carga las variables para poder utilizarlas en cualquier momento



en el step del jugador, podrias poner:

if keyboard_check_pressed(vk_numpad1){
global.poderes=0; //establecemos el poder numero 1
}
if keyboard_check_pressed(vk_numpad2){
global.poderes=0; //establecemos el poder numero 2
}


luego en el evento de atacke por ejemplo cuando pulsas Enter:

script_execute(Sc_CreaPoder,global.poderes)
//ejecuta el poder seleccionado
}



espero serte de ayuda y cualquier duda avisame. Salu2.-

Esperen, porque si recien empieza no sabe escribir código, la idea es que en el evento de la tecla de atacar actue depende del poder activo con if, o sea:

Test variable poder = 0
*Hacer tal cosa*

Test variable poder = 1
*Hacer tal otra cosa*
El Manual

- Ley de la gravitación selectiva: toda herramienta se caerá donde produzca el mayor daño.
- Si todo parece estar bien, es obvio que uno no encontró el problema
- Todo aquello que se corte a medida resultara ser demasiado corto.
- Todo archivo borrado era necesario, todo archivo conservado es inutil
- Cuando a usted se le ocurra la solución ideal, alguien habrá resuelto ya el problema.

                                                               Murphy


Muchas gracias, me lo habeis explicado genial. No no, tengo experiencia con programación y me he mirado directamente el manual para desde el primer dia aprender con código. Antes de mirar vuestra respuesta ya logré crear las particulas, lo que pasa es que queria crear un pequeño haz de luz que actue como un escudo fino y resulta que he hecho una cascada de luz que me tapa el personaje entero pero solamente es cuestión de aprender xDD por lo menos responde a las teclas.

Lo que quería era saber de que forma trabajar y gracias por el ejemplo que me has puesto the_blade, me sirve para aprender diferentes modos de ejecutar scripts, puesto que quizá el que yo había pensado no fuera el más correcto o el más rápido, quiero optimizar bien los recursos!!

Un saludo!

de nada compañero espero haberme explicado bien y cualquier duda me avisas. si quieres puedes visitar mi blog del  sector desarrolladoreshttp://www.comunidadgm.org/index.php?topic=17650.0 , ahy se halla mi juego en desarrollo. jaja. salu2.-