Buenas tardes, mi problema es el siguiente..... Estoy haciendo un juego tipo mario bros pero lo que me pasa, no se si a alguien le pasara lo mismo que a mi y alla podido solucionarlo, pongo full screen full escala para que se vea el juego en pantalla completa, hasta ahi todo bien, comienso a mover el personaje de mario, y en determinado momento se be medio borroso y no avansa el personaje, tengo que usar saltar para que logre moverse, despues se va y alrato pasa lo mismo, no se si sera algun bug o algo pero esta molestando mucho, agradesco su ayuda gracias...Nota: Prove a instalar una versio mas antigua, cambiar los sprites, pasa lo mismo....

Hola.

Verifica que la presición del sprite no esté activada y tambien verifica que la image_speed sea adecuada. Si todo sigue igual agrega este código en un evento step.

[gml]while(!place_empty(x,y+2)){y-=1}[/gml]
Si Dios quiere; Limpiaré la oficina, puliré el piso y les serviré café a todos, luego, me enseñarán a programar e iré a comprarles más café.

Buen dia, sigo revise la precice collision y no esta activada, puse el codigo en el evento step y el personaje queda saltando en el aire,  te paso el proyecto para ver si lo podes check por vos mismo y me digas que opinas sobre este error, al iniciar el juego move el personaje por un determinado tiempo y veras que se pone borrosa la imagen y no avansa...

Alguna solución, gracias de antemano, creo que es un bug del gamemaker

#4 Marzo 15, 2020, 05:10:49 PM Ultima modificación: Marzo 15, 2020, 05:13:44 PM por dixon
Hi.

1. Reemplazar todo y+1 por y+2
2. Reemplazar código de colicion con bloques por:

[gml]///move_contact_solid fué removido, ya no se usará.
vspeed=0;
while (!place_free(x,y+1))
{
y-=1
}[/gml]

ANEXOS:

1. Remmplazando todo y+1 por y+2


2. Cambiando el código de colición con bloques.


Ahora bien, aqui unas mejoras extra que se pueden hacer en tu código.

1. No se requiere que hagas un evento colision por cada objeto, solo debes hacer uno del primer bloque y los demás objetos debes hacerlos parientes del primer bloque.
*Eliminando eventos colision y dejando uno solo del primer bloque


*Haciendo pariente a un bloque. Esto hay que hacerlo a todos los objetos, solidos.


2. Sprite adaptable: No se requiere que tengas un objeto para la esquina derecha del suelo otro para el centro y otro para la esquina izquierda. Solo debes crear un solo objeto que adapte sus sprites dependiendo de la posicion donde se encuentre. El código es el siguiente:

[gml]
//evento create del primer bloque
left=place_meeting(x-5,y,obj_Block1)
right=place_meeting(x+5,y,obj_Block1)

if left and right sprite_index=spr_Block
if left and (not right) sprite_index=spr_Block_der
if (not left) and right sprite_index=spr_Block_izq

*Colocando código en evento create del objeto block1
[/gml]

*...

Si Dios quiere; Limpiaré la oficina, puliré el piso y les serviré café a todos, luego, me enseñarán a programar e iré a comprarles más café.

Muchas gracias no sabes cuanto te agradezco, ya me estaba frustrando mucho que el personaje se quedara pegado en el piso, y lo de las esquinas de los bloques no lo sabia, muchas graciaaaaaaaaaaaaaaas...