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.

Temas - kevinalanbossa

1
Hola! La verdad es que soy nuevo en esto de programar y estoy intentando hacer un juegito solo para aprender y practicar. La verdad es que a veces hay tanto codigo que se me olvida el codigo que escribi hace un tiempo y tengo que volver a leerlo todo y entenderlo todo de nuevo porqeu ni se que habia hecho!
Quisiera ayuda si alguno sabe mas de game maker y me ayuda, les comnparti mi proyecto a ver si se animan aayudarme a hacer mi codig mucho mas eficiente y rapido
y mas corto
https://drive.google.com/file/d/1vvss4bT4S7_AblBYOn4HPQNjfkLrjYL5/view
ese es mi proyecto! si lo bajan veran
2
Hola a todos. Soy nuevo. Estoy empezando con Game Maker y mire este tutorial de movimiento para un juego de plataformas: https://www.youtube.com/watch?v=izNXbMdu348
Basicamente el codigo es el siguiente:
CREATE EVENT:
hsp = 0
vsp = 0
grv = 0.3
walkspeed = 4
//Get Player Input //
key_left = keyboard_check(vk_left);
key_right = keyboard_check(vk_right); 
//Calculate Movement //
var move = key_right - key_left; 
hsp = move * walksp; 
vsp = vsp + grv; 
//Horizontal collision //
if (place_meeting(x+hsp,y,oWall))
{     
while (!place_meeting(x+sign(hsp),y,oWall)) 
{      x = x + sign(hsp);

hsp = 0;
}
x = x + hsp; 
//Vertical Collision //
if (place_meeting(x,y+vsp,oWall))
{   while (!place_meeting(x,y+sign(vsp),oWall))
{    y = y + sign(vsp);  }
vsp = 0;
}
y = y + vsp;

----------------------------------------------------------------------------------------------------------------------------------------------------
Bueno, entendi basicamente todo menos una sola parte en la parte de "Colision vertical"
El codigo dice que la gravedad es igual a 0.3 y que la velocidad vertical es 0.
Despues dice que la velocidad vertical es la velocidad vertical mas la gravedad. Basicamente la velocidad vertical siempre
va a ser 0 + 0.3 que da siempre 0.3
Bueno, hasta ahi todo bien. Lo que no entiendo es lo siguiente:
En la parte de colision vertical primero se fija a ver si hay una pared 0.3 pixeles debajos nuestro y despues de eso tiene un while que se fija
a ver si NO hay una pared 1 pixel debajo nuestro. Esa es la parte que no entiendo. Osea porque fijarse si NO hay una pared 1 pixel debajo nuestro si ya sabemos que absolutamente si hay una pared debajo nuestro, sino la hubiera el evento de if seria falso y no estariamos checkeando eso. Es muy confuso. Despues de eso dice "si no hay una pared 1 pixel debajo nuestro, entonces move el jugador 1 pixel hacia abajo" Pero eso es muy confuso porque ya sabemos que si hay una pared debajo nuestro y encima va a mover el jugador 1 pixel mas abajo. En teoria eso deberia hacer que el jugador se quede atascado en el suelo. Pero la realidad es que el codigo FUNCIONA PERFECTAMENTE. Funciona bien, no tiene ningun problema y la gravedad funciona bien PERO LO QUE YO QUIERO ES ENTENDER POR QUE FUNCIONA. REALMENTE NO ENTIENDO PORQUE. Quiero entenderlo para aprender y no solamente copiar codigo sin entender nada ¿Que es lo que no estoy entendiendo? ¿Porque ese codigo funciona tan bien? Espero haber sido claro.