Como dice el título, la pregunta es como referirse a un grupo de instancias(de un objeto) que toman un determinado rango o numero en una determinada variable.
Gracias.
Cita de: :StonerStanley: en Abril 12, 2019, 11:55:33 PM
Como dice el título, la pregunta es como referirse a un grupo de instancias(de un objeto) que toman un determinado rango o numero en una determinada variable.
Gracias.
[gml]
with objeto {
if variable == 2 {
//aquí haces cualquier cosa con todas las instancias de 'objeto' en las que la variable 'variable' valga 2.
}
}
[/gml]
PD: Debes colocar en el post el ícono de la versión de GM que estás utilizando.
Cita de: NiuWeb en Abril 13, 2019, 12:18:04 AM
[gml]
with objeto {
if variable == 2 {
//aquí haces cualquier cosa con todas las instancias de 'objeto' en las que la variable 'variable' valga 2.
}
}
[/gml]
PD: Debes colocar en el post el ícono de la versión de GM que estás utilizando.
Sí, pero la idea es declararlos como si fueran una variable en conjunto, como por ejemplo: '[función](arg1, arg2, variable)'
No sé si se ha entendido bien, pero por lo menos gracias por responder.
----------------------------------------------
Vale, he intentado esto, pero el problema es que solo llega a ser capaz de referirse una instancia:
Primero, he hecho un script llamado 'establecer_solidos_enem(altura1, altura2, objeto a referirse,)':
zz1 = argument0;
zz2 = argument1;
obj = argument2;
with (obj) {
if other.zz1 > z1 and
other.zz2 < z2 {
return id;
}
}
Luego, en el evento 'step' del objeto que desea obtener ese conjunto de variable:
mp_potential_step_object(jugador_obj.x, jugador_obj.y, velocidad, establecer_solidos_enem(z1, z2, bloque))
El problema en el script es el return. La estructura with es un ciclo que recorre las instancias una a una, cuando utilizas return se termina el ciclo y devulve el id de una sola instancia.
Podrías cambiar el script de esta forma
[gml]
with (argument2) {
if argument0 > z1 and argument1 < z2 {
solid = true;
}
else {
solid = false;
}
}
[/gml]
incluso se puede hacer más simple
[gml]
with (argument2)
solid = (argument0 > z1 and argument1 < z2);
[/gml]
En la función mp_step_potential, el último argumento solo debe ser true o false. Para evadir sólidos utiliza false.
[gml]
mp_potential_step_object(jugador_obj.x, jugador_obj.y, velocidad, false);
[/gml]
Cita de: Clamud en Abril 13, 2019, 04:50:02 PM
El problema en el script es el return. La estructura with es un ciclo que recorre las instancias una a una, cuando utilizas return se termina el ciclo y devulve el id de una sola instancia.
Podrías cambiar el script de esta forma
[gml]
with (argument2) {
if argument0 > z1 and argument1 < z2 {
solid = true;
}
else {
solid = false;
}
}
[/gml]
incluso se puede hacer más simple
[gml]
with (argument2)
solid = (argument0 > z1 and argument1 < z2);
[/gml]
En la función mp_step_potential, el último argumento solo debe ser true o false. Para evadir sólidos utiliza false.
[gml]
mp_potential_step_object(jugador_obj.x, jugador_obj.y, velocidad, false);
[/gml]
¿Y no se podría hacer de otra manera que no use sólidos? Quiero decir, que pueda haber varias instancias así (es para los enemigos en un juego 3D), ya que lo más probable de esta manera es que al ser 3D el juego, haya una mezcla de colisiones.