¿Como hago que un objeto no aparezca en una fraccion de segundo?

Publicado por Luan1801, Agosto 01, 2021, 05:08:30 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Luan1801

Lo que pasa es, que el objeto del personaje al moverse debería de borrarse el otro objeto, eso hace, pero mientras se mueve y presiono la tecla que acciona el otro objeto aparece por un segundo o dos, ¿Hay manera de solucionar eso?

AlexWood

No entendí, que es lo que quieres hacer y pon el codigo que usas

Luan1801

Cita de: AlexWood en Agosto 01, 2021, 05:59:49 PM
No entendí, que es lo que quieres hacer y pon el codigo que usas
Disculpa, quiero hacer que mi personaje (obj_ufo) suelte un rayo por debajo (obj_abduct)... Lo que hice fue poner esto en el evento "step" del personaje: [gml]xx += (keyboard_check(vk_right) - (keyboard_check(vk_left)))*10
x = lerp (x, xx, 0.1)
if keyboard_check(vk_left)
{
image_angle = R + 15
}
if keyboard_check(vk_right)
{
image_angle = R - 15
}
if keyboard_check_pressed (vk_space)
{
   instance_activate_object(obj_abduct)
instance_create_depth (x, y, 64, obj_abduct)
}[/gml]

En el evento "create": [gml]xx = x;
R = 0[/gml]

En el evento "step" del objeto "abduct" puse: [gml]xx += (keyboard_check(vk_right) - (keyboard_check(vk_left)))*10
x = lerp (x, xx, 0.1)
if keyboard_check(vk_left)
{
image_angle = R + 15
}
if keyboard_check(vk_right)
{
image_angle = R - 15
}
if keyboard_check(vk_right) && keyboard_check(vk_space)
{
instance_destroy (other)
}
if keyboard_check(vk_left) && keyboard_check(vk_space)
{
instance_destroy (other)   
}

x = obj_ufo.x;[/gml]

En el evento "create": [gml]xx = x;
R = 0[/gml]

En el evento "key press - left, key press - right y key up - space" puse:
[gml]instance_destroy ()[/gml]

Luan1801

Cita de: Void en Agosto 02, 2021, 01:53:35 AM
Si lo que quieres es que el objeto obj_abduct no se cree mientras presionas las teclas de los lados agrega && !keyboard_check(vk_right) && !keyboard_check(vk_left) al if final del step en el objeto obj_ufo:

[gml]if keyboard_check_pressed (vk_space) && !keyboard_check(vk_right) && !keyboard_check(vk_left)
{
    instance_activate_object(obj_abduct)
instance_create_depth (x, y, 64, obj_abduct)
}[/gml]

Amigo, al hacer eso se vuelve loco todo, mira, lo que quiero hacer es que al presionar la tecla con la que se mueve el "obj_ufo" y con la que se acciona el "obj_abduct" no aparezca en ningun momento, ya que, al presionarlas aparece por un instante y luego se va, lo que quiero es que no salga, no sé si me explico...

Luan1801

Cita de: Void en Agosto 02, 2021, 07:47:27 AM
El código debería funcionar para hacer lo que quieres. Alternativamente podrías agregar al evento create del objeto obj_abduct código que elimine el objeto si se están presionando las teclas para moverse:

[gml]if keyboard_check(vk_right) || keyboard_check(vk_left)
{
   instance_destroy ()
}[/gml]

De esta manera el objeto obj_abduct se destruirá antes de que sea dibujado.

Dejo un ejemplo con ambos métodos, el ufo de arriba (rojo) usa el método que te dí en el post anterior, el ufo de abajo (azul) usa el método que explico en este.

Ya me funcionó, ¡Muchas gracias!

Powered by EzPortal
SMF spam blocked by CleanTalk