bueno es mi primer tema o pregunta asi que espero respuesta  :), mi problema es el siguiente estoy creando un juego tipo asteroide (el clasico), cree 3 sprites el asteroide grande, mediano y pequeño, como adivinaran si se destruye el grande salen varios medianos y si se destruye un mediano saldran pequeños...

haora mi duda es como logro que eso pase y mas que cuando se destruya un grande aparesca otro grande en otro lugar aleatorio de la habitacion  :'( ya que la habitacion o la room sera bastante grande y como logro que cada asteroide necesite diferente cantidad de disparo por ejemplo que el grande necesite 5 disparos para explotar y los medianos 3 y los pequeños 1.

espero respuesta y gracias de antemano  :D.

Cita de: 11chrismaster22 en Noviembre 01, 2014, 02:38:15 AM
bueno es mi primer tema o pregunta asi que espero respuesta  :), mi problema es el siguiente estoy creando un juego tipo asteroide (el clasico), cree 3 sprites el asteroide grande, mediano y pequeño, como adivinaran si se destruye el grande salen varios medianos y si se destruye un mediano saldran pequeños...

haora mi duda es como logro que eso pase y mas que cuando se destruya un grande aparesca otro grande en otro lugar aleatorio de la habitacion  :'( ya que la habitacion o la room sera bastante grande y como logro que cada asteroide necesite diferente cantidad de disparo por ejemplo que el grande necesite 5 disparos para explotar y los medianos 3 y los pequeños 1.

espero respuesta y gracias de antemano  :D.

¿Los asterioides deben aparecer fuera del room?

En un script llamado scr_create_outside pon esto:
[gml]var objspr,sprw,sprh,sprx,spry,perim,cenx,ceny,sprhw,sprhh,ranpos,tarx,tary,linh,linv;
objspr=object_get_sprite(argument0)
sprx=sprite_get_xoffset(objspr)
spry=sprite_get_yoffset(objspr)
sprw=sprite_get_width(objspr)
sprh=sprite_get_height(objspr)
sprhw=sprw/2
sprhh=sprh/2
cenx=sprhw-sprx
ceny=sprhh-spry
perim=sprhw*4+sprhh*4+room_height*2+room_width*2
linh=sprw+room_width
linv=sprh+room_height
randomize()
ranpos=irandom(perim)
if ranpos<linh then
{
    tarx=ranpos-sprhw
    tary=-sprhh
}
if ranpos>=linh then
{
    tarx=linh-sprhw
    tary=ranpos-linh-sprhh
}
if ranpos>=linh+linv then
{
    tarx=linh-sprhw-(ranpos-linh-linv)
    tary=linv-sprhh
}
if ranpos>=linh+linv+linh then
{
    tarx=-sprhw
    tary=linv-(ranpos-(linh+linv+linh))-sprhh
}
instance_create(tarx+cenx,tary+ceny,argument0)[/gml]

Como funciona:

Tiene una propiedad: el objeto a crear

Ejemplo:
scr_create_outside(obj_asteroide)

Un ejemplo de GMK8:

Cita de: TheSandBoxMKG en Noviembre 02, 2014, 03:37:48 PM
En un script llamado scr_create_outside pon esto:
[gml]var objspr,sprw,sprh,sprx,spry,perim,cenx,ceny,sprhw,sprhh,ranpos,tarx,tary,linh,linv;
objspr=object_get_sprite(argument0)
sprx=sprite_get_xoffset(objspr)
spry=sprite_get_yoffset(objspr)
sprw=sprite_get_width(objspr)
sprh=sprite_get_height(objspr)
sprhw=sprw/2
sprhh=sprh/2
cenx=sprhw-sprx
ceny=sprhh-spry
perim=sprhw*4+sprhh*4+room_height*2+room_width*2
linh=sprw+room_width
linv=sprh+room_height
randomize()
ranpos=irandom(perim)
if ranpos<linh then
{
    tarx=ranpos-sprhw
    tary=-sprhh
}
if ranpos>=linh then
{
    tarx=linh-sprhw
    tary=ranpos-linh-sprhh
}
if ranpos>=linh+linv then
{
    tarx=linh-sprhw-(ranpos-linh-linv)
    tary=linv-sprhh
}
if ranpos>=linh+linv+linh then
{
    tarx=-sprhw
    tary=linv-(ranpos-(linh+linv+linh))-sprhh
}
instance_create(tarx+cenx,tary+ceny,argument0)[/gml]

Como funciona:

Tiene una propiedad: el objeto a crear

Ejemplo:
scr_create_outside(obj_asteroide)

Un ejemplo de GMK8:

Gracias por el ejemplo pero no es lo que busco, ya resolvi que aparescan aleatoriamente y que se muevan...

haora tengo otro problema es que cuando inicia la habitacion los asteroides no se mueven y programe que se movieran ademas le puse una colicon que los ase moverse a otro lado aleatoriamente pero solo se mueven cuando ocurre esta colicion.

les dejo lo que llevo hasta haora asi me entenderan mejor... espero respuesta  :D

nota:los controles son las flechas con el mouse se apunta y del 1 al 4 se selecciona armas ademas si presionas shift la velocidad de movimiento aumenta.





Cita de: 11chrismaster22 en Noviembre 04, 2014, 12:49:41 AM
Cita de: TheSandBoxMKG en Noviembre 02, 2014, 03:37:48 PM
En un script llamado scr_create_outside pon esto:
[gml]var objspr,sprw,sprh,sprx,spry,perim,cenx,ceny,sprhw,sprhh,ranpos,tarx,tary,linh,linv;
objspr=object_get_sprite(argument0)
sprx=sprite_get_xoffset(objspr)
spry=sprite_get_yoffset(objspr)
sprw=sprite_get_width(objspr)
sprh=sprite_get_height(objspr)
sprhw=sprw/2
sprhh=sprh/2
cenx=sprhw-sprx
ceny=sprhh-spry
perim=sprhw*4+sprhh*4+room_height*2+room_width*2
linh=sprw+room_width
linv=sprh+room_height
randomize()
ranpos=irandom(perim)
if ranpos<linh then
{
    tarx=ranpos-sprhw
    tary=-sprhh
}
if ranpos>=linh then
{
    tarx=linh-sprhw
    tary=ranpos-linh-sprhh
}
if ranpos>=linh+linv then
{
    tarx=linh-sprhw-(ranpos-linh-linv)
    tary=linv-sprhh
}
if ranpos>=linh+linv+linh then
{
    tarx=-sprhw
    tary=linv-(ranpos-(linh+linv+linh))-sprhh
}
instance_create(tarx+cenx,tary+ceny,argument0)[/gml]

Como funciona:

Tiene una propiedad: el objeto a crear

Ejemplo:
scr_create_outside(obj_asteroide)

Un ejemplo de GMK8:

Gracias por el ejemplo pero no es lo que busco, ya resolvi que aparescan aleatoriamente y que se muevan...

haora tengo otro problema es que cuando inicia la habitacion los asteroides no se mueven y programe que se movieran ademas le puse una colicon que los ase moverse a otro lado aleatoriamente pero solo se mueven cuando ocurre esta colicion.

les dejo lo que llevo hasta haora asi me entenderan mejor... espero respuesta  :D

nota:los controles son las flechas con el mouse se apunta y del 1 al 4 se selecciona armas ademas si presionas shift la velocidad de movimiento aumenta.

Yo sé cual es tu error

Te olvidaste de poner el call event, que sirve para ejecutar el evento del objeto pariente.


Y otra cosa: no uses las flechas para movimiento si vas a usar mouse, te lo digo por experiencia propia, es re incomodo. Es mejor usar las teclas WASD.

muchas gracias! me funciono perfectamente :D