Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mensajes - Klind

31
Me sigue pasando lo mismo.

Y tiene sentido, porque supongamos que voy caminando de abajo hacia arriba, y la bolita pega contra la pared, entonces la hago moverse hacia abajo y la derecha, la dirección contraria es hacia arriba y a la izquierda entonces por eso atraviesa la pared y aparece del otro lado de la pared y en la dirección contraria a la que yo le dije que se moviera.

EDIT:

Es curioso porque SOLO pasa cuando el movimiento del personaje es en diagonal. Cuando lo tengo pegado a la pared y me muevo en linea recta hacia abajo se mueve perfecto.
32
Intenté con eso y nada, sigue pasando lo mismo de que cuando está muy pegado a la pared y lo hago caminar en sentido contrario a la pared, en vez de moverse normal salta al otro lado de la pared.

Ok, voy a estar pendiente aquí.
33
Probando el nuevo código de distintas maneras, me doy cuenta que ahora cuando el personaje está muy muy pegado de una pared (de manera que se detecta una colisión) y lo hago moverse hacia la dirección contraria a la pared, el personaje se "teletransporta", atraviesa toda la pared apareciendo del otro lado.

Sé por qué pasa eso, pero no sé cómo solucionarlo.

Si alguien puede descargar el ejemplito para que vea el modo de movimiento, se lo agradecería un montón. No pesa nada de verdad.
34
Qué tal brunoxzx,

todo lo que me faltaba era ese "-direction" en el move_outside_solid"  :-[.

Lo que hice fue agregarle ese código que me dijiste al evento de colisión con la pared y me quedó así:

move_outside_solid(-direction, speed)
mover = false
ds_queue_clear(xCola)
ds_queue_clear(yCola)


¡Mil gracias hermano!

Saludos.
35
Sigo sin poder resolver este problema, alguien que por favor me eche una manito. Me tiene frustrado no poder continuar el proyecto por este rollo de la colisión.
36
Cita de: metalfox6383 en Marzo 27, 2013, 08:54:47 PM
Aun no veo tu ejemplo, pero me imagino que tu problema es que el personaje se te queda atascado en la pared, cierto? O me equivoco. Bueno, yo lo solucionaba con INSTANCE_PLACE. Con ella verificaba si al poner mi objeto en una nueva coordenada, iba en ella colisionar con otra, entonces ponia un FOR con para probar coordenadas menores y encontrar el espacio libre. A ver, revisa esa funcion y me dices si algo asi te sirve.

Conozco ese método, pero en mi caso no sé cómo usarlo ya que para mover a la bolita uso una coordenada (x,y) y un move_towards_point(x,y,speed) para que vaya dando steps hacia esa coordenada, entonces no sé cómo chequear con el instance_place la coordenada a la que voy a caminar, porque siempre es una dirección distinta.

Cuando puedas revisa el ejemplo a ver qué se te ocurre, ¡muchas gracias por responder!

¿Alguien más se anima a ayudar? Les aseguro que les va a gustar el juego cuando lo termine  ;D
37
Epale gente!

Otra vez yo pidiendo ayuda  :-[

Esta vez no sé cómo explicar el problema, por lo que creé una demostración aparte del proyecto original para mostrarles lo que pasa.

Descarguen el ejemplo y muevan el personaje hacia una pared varias veces, es decir, que el personaje choque contra la pared, y luego hacen que vuelva a moverse en esa dirección para que siga chocando. Hasta que vean que el personaje queda viendo a una sola dirección (generalmente hacia arriba y a la izquierda) y queda ahí estancado. No se mueve más. ¿Cómo puedo solucionar eso y crear una mejor colisión?

La forma de moverse es darle click al personaje y soltar el botón donde queramos moverlo. Luego le dan a la tecla Espacio.

OJO: NO pueden soltar el mouse en una zona donde haya pared porque NO se creará la ruta. Simplemente le dan Click a la bolita, y sueltan el mouse en una zona verde pero de manera que la ruta atraviese una pared para que la bolita choque.

Gracias de antemano y disculpen la molestia, pasan y pasan los años y las colisiones en el Game Maker siguen siendo un dolor de cabeza para mí  :(
38
Juegos completos / Re:IAD's Rampage
Marzo 27, 2013, 06:00:30 PM
Excelente juego Daz.

Está difícil, no pude pasar del nivel 2 jaja.

Felicitaciones hermano.

¡Saludos!
39
Preguntas y respuestas / Re:Highscore en gm studio
Marzo 27, 2013, 05:13:21 PM
Hermano, lee bien el código y préstale atención a los comentarios. Está muy bien explicado, pero tiene un pequeño error de esos casuales que a todos nos pasan xD. En el script scrConfigIni los nombres del archivo no están entre comillas. Colócale las comillas y ponte a jugar con los valores y todo eso para que veas cómo funciona el código.

Excelente el ejemplo, Elvis.

¡Saludos!

EDIT: Elvis, lo de score += (1/room_speed) no funciona. Tuve que cambiarlo a score += 1 para poder probarlo. Pero no entiendo por qué no funciona así como tú lo pusiste.
40
AndreiiCx, ten en cuenta que el código que te dio Texic funciona perfectamente SOLO si el origen de ambos sprites es 0,0.
41
Creo que lo puedes hacer con un collision_rectangle que se cree partiendo de la posición del objeto 1 y luego con un place_meeting verificas si el objeto 2 está dentro de ese rectángulo (rango).

Es lo primero que se me ocurre y lo respondo así rápido y sin ejemplos porque ando un poco ocupado, si me equivoco alguien que por favor me corrija, y si no lo entiendes muy bien avísame para hacer un ejemplo más tarde cuando me desocupe.

¡Saludos!
42
Sí, es que desde el principio estaba pensando en hacerlo con arrays pero no tenía muy claro cómo hacerlo.

Ya logré hacer lo que quería usando las "colas"  ;D

Gracias nuevamente.
43
Cita de: Mgbu en Marzo 19, 2013, 06:09:25 PM
Yo diría que mires cómo funcionan las Pilas o las Colas (Stacks o Queues en inglés)

Son estructuras de datos, o sea donde guardas algo y luego cuando lo necesitas lo sacás. la diferencia es que cuando "sacás" un dato de una Pila vas a obtener el ultimo dato que pusiste en ella. Pero cuando "sacas" un dato de una Cola vas a obtener el primer dato que colocaste en ella.

O sea, cuando el jugador elije una coordenada ponés la coordenada X en una estructura y la coordenada Y en otra, despues mientras que el jugador siga agregando puntos vas haciendo lo mismo. Al final cuando vos quieras recorrerla sabrás cuál es la proxima coordenada obteniendo dos valores, una para cada estructura, en definitiva desde la primera estructura vas a obtener la X y desde la segunda estructura la Y. Luego cuando necesites otras coordenadas haces lo mismo

EDIT: Ahora acabo de leer que debe ser recorrido en el orden en que fueron creadas, así que la estructura que deberías usar es una Cola

¡Pilas y colas! No sabía que el GML traía incluidas esas estructuras de datos. Vi eso en Programación Avanzada de Visual Basic hace aaaños.

Voy a intentar con eso a ver, muchas gracias bro.
44
Epale gente,

Necesito ayuda con esto, primero que todo por favor vean la imagen. Lo que tengo es un personaje al que le dibujo (con el mouse) una ruta y luego al presionar Espacio él empieza a recorrer la ruta.

Todo va bien cuando la ruta es de un solo trazo, pero cuando son varios trazos (en la imagen la ruta es de 3 trazos) me viene el problema.

¿Cómo puedo ir guardando las coordenadas donde termina cada trazo para luego recorrerlas en el orden que fueron creadas?

Gracias de antemano, saludos desde Venezuela.

@LeoCardinale1
45
Preguntas y respuestas / Re:Detectar ruta dibujada
Febrero 20, 2013, 10:11:15 PM
Hola Elvis!
Ya solucioné el problema hace unos minutos así:

Creé un obj_camino de 1 pixel de ancho, por 20 pixeles de alto (ver imagen 1).

Este objeto camino se crea en la posición x,y del obj_personaje cuando suelto el boton left del mouse (es decir, cuando termino de dibujar el camino) y tiene el siguiente código en el evento Create:

image_angle=point_direction(x,y,mouse_x,mouse_y)
image_xscale=point_distance(x,y,mouse_x,mouse_y)


Con eso, la ruta queda dibujada como ves en la imagen 2.

NOTA: La parte blanca de la ruta la uso como mascara de colision y va invisible, la puse blanca para explicarte mejor.

Igualmente muchas gracias por tu ayuda hermano!