hola verán en mi juego hay una escopeta y no se como hacerle para que cuando dispare al crearse las balas se creen así como las escopetas me explico? como por ejemplo la krm de black ops 3 y que las balas al llegar a una cierta distancia se destruyan
Si lo que quieres es que los perdigones desaparezcan un momento después de ser disparadas, puedes activar una alarma que haga el trabajo.
[gml]
///EVENTO CREATE DEL PERDIGÓN
alarm[0] = room_speed * 1; //El tiempo de vida del perdigón es de un segundo
[/gml]
[gml]
///EVENTO ALARM 0 DEL PERDIGÓN
instance_destroy(); //Destruir el proyectil.
[/gml]
Y si lo que quieres es que salgan literalmente perdigones, crea varias instancias con angulo medio random.
repeat(10) { // numero de perdigones
with instance_create(obj_escopeta.x,obj_escopeta.y,obj_perdigon) {
direction += irandom_range(-10,10); //a mas numero mas abierto
image_angle = direction;
}
}
Cita de: NiuWeb en Noviembre 15, 2018, 01:17:07 AM
Si lo que quieres es que los perdigones desaparezcan un momento después de ser disparadas, puedes activar una alarma que haga el trabajo.
[gml]
///EVENTO CREATE DEL PERDIGÓN
alarm[0] = room_speed * 1; //El tiempo de vida del perdigón es de un segundo
[/gml]
[gml]
///EVENTO ALARM 0 DEL PERDIGÓN
instance_destroy(); //Destruir el proyectil.
[/gml]
te aconsejo utilizar valores literales o constantes, si tu quieres que siempre vaya a la misma velocidad pon alarm[ 0 ] = 30; en caso de que la velocidad de tu juego sea 30 PFS, eso de estar hacienda room_speed * 1; son operaciones matematicas que se ejecutan y no causan dano cuando son pocas, pero si tu juego es grande, son operaciones que pueden quitar un poco de performance en el juego, es solamente una sugerencia.
Entre utilizar una variable y un entero no hay prácticamente ninguna diferencia, y de hecho los mismos de YoYo utilizan room_speed en varios de sus tutoriales.
No solo no hay repercusión en el rendimiento, sino que además evita tener que modificar manualmente los valores en caso de cambiarse la velocidad de la sala.
Cita de: NiuWeb en Noviembre 16, 2018, 07:32:59 PM
Entre utilizar una variable y un entero no hay prácticamente ninguna diferencia, y de hecho los mismos de YoYo utilizan room_speed en varios de sus tutoriales.
No solo no hay repercusión en el rendimiento, sino que además evita tener que modificar manualmente los valores en caso de cambiarse la velocidad de la sala.
eso es porque el hacer juegos no tiene buenas practicas tan concreatas como hacer applicaciones empresariales, pero es major tener una constant o un macro, como explique anteriormente, no hay problema si son pocas ocaciones en el codigo, pero si el juego es muy grande y tiene muchas dinamicas ahi si hay que pensarle bien.