hola, como puedo hacer que al apretar la barra espaciadora dispare pero que se pueda disparar cada 2 o 3 segundos sino va uno a tras de otro (las balas) y queda muy feo y peor
este es el codigo en "press <Space>"
if sprite_index=sprite_gato_C_radioactivo_der{
instance_create(x,y,obj_bola_de_pelos_C_der)};
if sprite_index=sprite_gato_C_radioactivo_descanzo_der{
instance_create(x,y,obj_bola_de_pelos_C_der)};
if sprite_index=sprite_gato_C_radioactivo_iz
{instance_create(x,y,obj_bola_de_pelos_C_iz)};
if sprite_index=sprite_gato_C_radioactivo_descanzo_iz{
instance_create(x,y,obj_bola_de_pelos_C_iz)};
la bala en este caso seria "bola_de_pelos"
Con alarmas amigo .
Cita de: eams1986 en Mayo 11, 2014, 04:10:45 AM
Con alarmas amigo .
pero como, se le puede agregar una alarma al codigo ese?
primero que nada , en el evento create del objeto pon
puedo_disparar = 1
ahora, en el evento alarm0, (si ya existe alarm0 ponlo en el siguiente) va esto:
puedo_disparar = 1
ahora en el evento de press space tiene que quedar asi:
if puedo_disparar = 1
{
if sprite_index=sprite_gato_C_radioactivo_der{
instance_create(x,y,obj_bola_de_pelos_C_der)};
if sprite_index=sprite_gato_C_radioactivo_descanzo_der{
instance_create(x,y,obj_bola_de_pelos_C_der)};
if sprite_index=sprite_gato_C_radioactivo_iz
{instance_create(x,y,obj_bola_de_pelos_C_iz)};
if sprite_index=sprite_gato_C_radioactivo_descanzo_iz{
instance_create(x,y,obj_bola_de_pelos_C_iz)};
puedo_disparar = 0
alarm0 = 15
}
Cita de: ivn_eze en Mayo 11, 2014, 04:41:18 AM
primero que nada , en el evento create del objeto pon
puedo_disparar = 1
ahora, en el evento alarm0, (si ya existe alarm0 ponlo en el siguiente) va esto:
puedo_disparar = 1
ahora en el evento de press space tiene que quedar asi:
if puedo_disparar = 1
{
if sprite_index=sprite_gato_C_radioactivo_der{
instance_create(x,y,obj_bola_de_pelos_C_der)};
if sprite_index=sprite_gato_C_radioactivo_descanzo_der{
instance_create(x,y,obj_bola_de_pelos_C_der)};
if sprite_index=sprite_gato_C_radioactivo_iz
{instance_create(x,y,obj_bola_de_pelos_C_iz)};
if sprite_index=sprite_gato_C_radioactivo_descanzo_iz{
instance_create(x,y,obj_bola_de_pelos_C_iz)};
puedo_disparar = 0
alarm0 = 15
}
en que evento create, en el del personaje o la bala? y tambien en cual creo la alarma? el evento de press space esta en el personaje
es porque me salta error
todo en el personaje.
si te sigue tirando error prueba quitando el codigo que agrege a press space y reemplazalo por drag and drop, asi
en press space
- if puedo_disparar is equal to 1
- execute a piece of code (el codigo original que tenias en press space, sin lo que yo te agrege)
- set variable puedo_disparar to 0
- set alarm 0 to 15
luego en alarm0 y en create deja lo mismo
Cita de: ivn_eze en Mayo 11, 2014, 05:17:26 AM
todo en el personaje.
si te sigue tirando error prueba quitando el codigo que agrege a press space y reemplazalo por drag and drop, asi
en press space
- if puedo_disparar is equal to 1
- execute a piece of code (el codigo original que tenias en press space, sin lo que yo te agrege)
- set variable puedo_disparar to 0
- set alarm 0 to 15
luego en alarm0 y en create deja lo mismo
este es el error
___________________________________________
############################################################################################
FATAL ERROR in
action number 1
of Key Press Event for <Space> Key
for object obj_gato_C_radioactivo:
Push :: Execution Error - Variable Get -1.puedo_disparar(100002, 0)
at gml_Object_obj_gato_C_radioactivo_KeyPress_32 (line 15) - if puedo_disparar = 1
############################################################################################
el tutorial de scrooling shooter muestra exactamente cómo hacer lo que pides, disparar cada "n" cantidad de tiempo. El error creo que es porque no está declarada la variable puedo_disparar
Cita de: penumbra en Mayo 11, 2014, 05:29:58 AMEl error creo que es porque no está declarada la variable puedo_disparar
-.- tienes razon, especificamente le dije que la declarara en el evento create
[user]ivn_eze[/user]:
No se si sabes pero esto es redundante:
if puedo_disparar = 1
Por que?
Por que usar "=" o "==" en una condicion con una variable que es booleana no es necesario.
Osea es lo mismo que:
if ( puedo_disparar )
Al usar el "= true" estas chequeando si una variable es verdadera pero el valor que tenga asignada la variable la hace true o false.
----------------------------------------------------------------
Una variable boolena es aquella que se le puede asignar solo dos valores:
true ó false.
True se puede representar como 1.
False se puede representar como 0.
En el GM toda variable que tenga un valor <= 0 se considera false y toda variable que tenga un valor mayor a 0 se considera true.
En tu ejemplo la variable puedo_disparar sera tratada como boolena, osea se la asiganara solo dos valores 1 y 0
Te recomiendo siempre pongas los parentesis en la condiciones.