Saludos a todos los foreros, soy nuevo en esto del mundo de los videojuegos y me he propuesto adentrarme en el mundo de Game Maker, mi duda es la siguiente como puedo hacer para que dos objetos no se superpongan objetos, es decir que cuando los cree no me salga uno sobre otro, me imagino que sea mediantes coliciones pero no encuentro como, gracias de antemano por su ayuda
Bueno, depende de cómo se crean los objetos. Si creas los objetos aleatoriamente, podrías simplemente NO crearlos hasta que encuentre un espacio libre, en plan ciclos:
[gml]
randomize();
var randx = irandom(room_width);
var randy = irandom(room_height);
while(!place_free(randx, randy)) { //Mientras NO esté libre el lugar elegido
var randx = irandom(room_width); //volver a elegir
var randy = irandom(room_height);
}
instance_create(randx, randy, objeto);
[/gml]
Eso lo primero, pero si no se generan aleatoriamente, sino manualmente, tienes tres opciones: Eliminar los objetos superpuestos, eliminar los objetos subpuestos (abajo de los otros xd) o moverlos a otra posición.
Para la primera opción podrías hacer algo como esto en el <create> del objeto a crear:
[gml]
if(!place_free(x,y))
instance_destroy();
[/gml]
Que destruirá los objetos nuevos si tienen otro abajo.
Para hacerlo al revés, podrías hacer algo así:
[gml]
var revisa = instance_place(x, y, objeto);
if(revisa != noone)
with revisa instance_destroy();
[/gml]
Para mover a otra posición, por ejemplo algo así:
[gml]
lo_que_quieras = 4;
while(!place_free(x, y)) {
x += lo_que_quieras;
}
[/gml]
Jorgen, lo que te puso el Niu son códigos que hacen totalmente lo mismo que si lo hicieras sin código :) Básicamente en la acción "create instance" pones Relative y las coordenadas (Al objeto asignado Relative sera el punto 0)... Por ejemplo: X= 6 Y=2 :)
Pff, ¿Qué? XD
¿Cómo se te ocurre decir eso? XD xDDDDD
Mira bien, hay ciclos, valores aleatorios (irandom()), funciones que no están en DnD como instance_place y otras cositas que no se pueden hacer en DND xD
:love: :love: :love: un millon de gracias a ambos resolvi con mediante los codigo que NiuWeb me facilito :D
A pos me turdaunfogüaron :v Igualmente te servía lo mío...
Cita de: VisualGames en Abril 05, 2016, 12:49:45 AM
A pos me turdaunfogüaron :v Igualmente te servía lo mío...
Jeje es que ya cuando lo vi habia resuelto con el otro :-[
:v