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]
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)
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.
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
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...
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; }
}
bkn ???? lo revisare haber que resulta.. muchas gracias??
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)
ok, hare las pruebas y les contare que ocurre... muchas gracias..