Noticias

Importante: ¡Si quieres publicar tu juego no olvides leer este tema!

Comunidad Game Maker

Bienvenid@ a la comunidad hispana de Game Maker. Nuestro objetivo es crear videojuegos y dar soporte en castellano de GM. Para mejorar nuestro servicio hemos implantado, como adicion al reglamento general, algunas normas especificas en los subforos más comunes. ¡No olvides informarte antes de participar!.

Autor Tema: Relación entre las instancias de dos objetos  (Leído 1448 veces)

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

Desconectado kaliman777

en: Octubre 26, 2009, 05:41:46 pm
Hola:

Podría alguien decirme cómo hago algún código para que cuando las instancias de dos objetos coincidan en un mismo eje x, ocurra alguna acción específica por ejemplo dispararle uno al otro, destruirse, sumar score.

Por ejemplo cuando obj_cazador y obj_venado coincidan en el eje de las Xs, el cazador dispare. Esto no sucederá por ejemplo si un obj_venado y un obj_leopardo se interceptan. Sólo cazador-animales.

Probé con la condicionante if creando variable disparar, pero no me funcionó.

He revisado varios post pero ninguno me responde esta inquietud.

Gracias de antemano.


La verdad es como la luz de una vela, que ni la oscuridad inmensa, puede opacarla.
 


No Tienes Permisos Para Dar Puntos
point 0 Puntos

Este tema no recibió puntos.


Desconectado kakashigna

Respuesta #1 en: Octubre 26, 2009, 05:46:02 pm
if x=venado.x
{
//aqui las acciones
}
o si quieres chekear la distancia
if distance_to_object(venado)<100//si esta a menos de 100 pixeles
{
//aqui las acciones
}

Orgulloso veterano de CGM
El poder de hacer un buen juego esta en tus manos.
 


Desconectado kaliman777

Respuesta #2 en: Octubre 26, 2009, 10:45:59 pm
Gracias amigo:

Perdona mi ignorancia, pero dónde pongo este código en step, en create?Específicamente cuando los dos objetos se ubiquen en dos posiciones, cómo le ordeno que me incrementen el score?

Gracias de nuevo. ???

La verdad es como la luz de una vela, que ni la oscuridad inmensa, puede opacarla.
 


Desconectado DarkKRuleR

Respuesta #3 en: Octubre 27, 2009, 04:54:02 pm
Tambien, es posible que no funcione porque alomejor no tienen el mismo tamaño, asi que prueba tambien esto, en STEP... pero, por lo que leo, si quieres que reaccionen al estar a la misma altura la coordenada que debe ser igual es la y, la x igual seria al estar encima del otro, bueno:

if y>obj_venado.y-20 and y<obj_venado.y+20 {//aqui lo que debe pasar al tener la misma y} por ejemplo, score+=1, esto sumaria constantemente el score siempre que se encuentren

asi obligatoriamente no pasa al estar en la misma coordenada sino un poco mas o menos... si no funciona (puede ser porque me lio xD) en el primero pon +20 y el segundo -20, pero creo que asi sirve) claro esto va en step del cazador, y repetirias el codigo con cada animal, de momento
en el code hay un margen de 20 pixeles a cada lado, recuerda que donde se cuentan las coordenadas es en el PUNTO DE ORIGEN del sprite, y para que se cumpla el code de
if x=obj_venado.x
deben coincidir exacto, cosa dificil
asi hay un margen de 20 pixeles a cada lado
« última modificación: Octubre 27, 2009, 04:55:34 pm por DarkKRuleR »

 


Desconectado kaliman777

Respuesta #4 en: Octubre 27, 2009, 05:51:11 pm
Gracias. Los objetos son en la vertical, en el eje de las Xs, pero quien cambia es la Y. Estoy probando, y me dice que no conoce la variable Y, cómo la ingreso en CREATE?


Gracias mil nuevamente.

« última modificación: Octubre 27, 2009, 06:07:18 pm por kaliman777 »

La verdad es como la luz de una vela, que ni la oscuridad inmensa, puede opacarla.
 


Desconectado kakashigna

Respuesta #5 en: Octubre 27, 2009, 06:08:07 pm
hola!!!
perdon por no responderte no he tenido tiempo y veo que darkruler ya te contesto,pero si quieres que pasen cosas mas concretas que aumentar score deberias leer los capitulos basicos de GML(asignaciones,programas, sentencias if's,construcciones with,etc) en el manual XD

salu2 amigo ;D

edit:escribiste la variable y con mininusculas cierto?
« última modificación: Octubre 27, 2009, 06:10:33 pm por kakashigna »

Orgulloso veterano de CGM
El poder de hacer un buen juego esta en tus manos.
 


Desconectado kaliman777

Respuesta #6 en: Noviembre 21, 2009, 05:32:02 pm
hola!!!
perdon por no responderte no he tenido tiempo y veo que darkruler ya te contesto,pero si quieres que pasen cosas mas concretas que aumentar score deberias leer los capitulos basicos de GML(asignaciones,programas, sentencias if's,construcciones with,etc) en el manual XD

salu2 amigo ;D

edit:escribiste la variable y con mininusculas cierto?

El problema es que uno se deprime cuando le tira puros errores y en eso de PRUEBA Y ERROR se le pasa una eternidad y sin resultados, luego la frustración. Lo que uno hace es ir guardando códigos válidos para luego hacer ya sin dificultades su juego, y este código no le hallo XD!!!

La verdad es como la luz de una vela, que ni la oscuridad inmensa, puede opacarla.