Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: shaggymon en Noviembre 01, 2011, 11:48:02 PM

Título: Movimiento mas rapido de sprites
Publicado por: shaggymon en Noviembre 01, 2011, 11:48:02 PM
Bueno, probando y probando pegue este codigo en LEFT y RIGHT en el objeto de mi personaje, y magicamente se mueve mas rapido, originalmente era un script para slopes ... alguien podria explicarme lo que hace el codigo?

[gml]
LEFT
if place_free(x-4,y)
{
 x -= 4
}
else if place_free(x-4,y-8)
{
 x -= 4
 y -= 8
 move_contact_solid(270,8)
}
[/gml]

[gml]
RIGHT
for (i=0; i<= 16; i +=1) {
if place_free(x+5,y-i) { x += 5; y -= i+move_contact_solid(270,1); exit; }
}
[/gml]
Título: Re: Movimiento mas rapido de sprites
Publicado por: magnetox en Noviembre 02, 2011, 02:49:21 AM
los 2 codigos no son iguales! y se mueve mas rapido con respecto a que? a un codigo anterior? por cierto el exit en el evento de rigth lo veo innecesario, creo que era un break para salir del for

Saludos 8)
Título: Re: Movimiento mas rapido de sprites
Publicado por: shaggymon en Noviembre 02, 2011, 03:32:11 AM
los sprites de mi personaje se mueven a la misma velocidad, pero se trasladan mas rapido, quiero saber porque poniendo esos codigos, que se que no son iguales, mi personaje se traslada mas rapido.. eso. 
Título: Re: Movimiento mas rapido de sprites
Publicado por: elviskelley en Noviembre 02, 2011, 03:05:49 PM
no veo que ninguno de los dos codigos afecte el cambio de sprites, debe ser un bug del game maker. para evitarlo gradua tu la velocidad con image_speed
Título: Re: Movimiento mas rapido de sprites
Publicado por: shaggymon en Noviembre 02, 2011, 03:42:34 PM
me explique mal, no afecta la velocidad a la que se muestran los sprites , sino que el codigo hace que el objeto del personaje se traslade mas rapido,lo que da la impresion de que corre mas r?pido xD , mas que nada era para saber porque ocurria...
Título: Re: Movimiento mas rapido de sprites
Publicado por: elviskelley en Noviembre 02, 2011, 05:28:38 PM
Solo quieres saber como interpreta el sistema estos codigos.
Citar
LEFT
if place_free(x-4,y) //si esta libre el lugar de X 4 pxl a la izq
{
x -= 4; //se re posiciona 4 pxl a la izq en el siguiente step
}
else //de lo contrario
if place_free(x-4,y-8) //si esta libre el lugar de X 4 pxl a la izq y ahi la Y - 8 pxl esta libre.
{
x -= 4 //se re posiciona 4 pxl a la isquierda y 8 pxl arriba.
y -= 8
move_contact_solid(270,8) //se mueve asia abajo 8 pxl hasta hacer contacto con un solido.
}
//basicamente verifica la posicion X a mover si no puede por que hay un solido, hacer lo siguiente mira en esa misma posicion X pero 8 pxl mas arriba, y lo mueve asia ese lugar, y luego baja hasta contactar con el solido, serviria para un slope. y pordia adartarse para una escalera agregando un calculo de la distancia entre la Y pr?xima y mas abajo.

Este hace b?sicamente lo mismo pero inicia la verificaci?n de 1 pxl a un m?ximo de 16 pxl por step.
for (i=0; i<= 16; i +=1) {
if place_free(x+5,y-i) { x += 5; y -= i+move_contact_solid(270,1); exit; }
}
Título: Re: Movimiento mas rapido de sprites
Publicado por: shaggymon en Noviembre 02, 2011, 07:58:37 PM
bkn ???? lo revisare haber que resulta.. muchas gracias??
Título: Re: Movimiento mas rapido de sprites
Publicado por: magnetox en Noviembre 03, 2011, 02:50:47 AM
unos se mueve a 4 pixeles y el otro a 5 pixeles de distacia, cambia el 4 y el 5 a una variable "vel" y asignala en el evento create, esto te ayudara mucho si se pone complejo el juego y tambien podras probar mas facilmente diferentes velocidades...

Un Saludo 8)
Título: Re: Movimiento mas rapido de sprites
Publicado por: shaggymon en Noviembre 03, 2011, 09:52:45 PM
ok, hare las pruebas y les contare que ocurre... muchas gracias..