Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: RaquiticoVnzla en Mayo 08, 2020, 05:13:42 AM

Título: Ayuda para comprender un codigo de una pelota rebotando
Publicado por: RaquiticoVnzla en Mayo 08, 2020, 05:13:42 AM
Conseguí este archivo en uno de los post del foro. Necesito ayuda para comprenderlo. Quiero incluirlo en un juego que quiero desarrollar pero quiero entender como funciona el código primero.

Link del archivo: http://www.mediafire.com/file/cja4hwl580ba38n/rebote_simple1.gmz/file (http://www.mediafire.com/file/cja4hwl580ba38n/rebote_simple1.gmz/file)

quiero entenderlo para moldearlo y usarlo a mi gusto.
Título: Re:Ayuda para comprender un codigo de una pelota rebotando
Publicado por: OmarMakero en Mayo 08, 2020, 03:24:05 PM
El script es sencillo, aqui te lo explico ;):

Create:
[gml]randomize() //ejecuta aleatoriamente los pasos.
direction = random(360) //pone aleatoriamente la direccion de la pelota
speed = 6 //Velocidad de movimiento
gravity = 1 //gravedad

maximum = 15 //Variable maxima[/gml]

Step:
[gml]speed = clamp(speed, 0, maximum) //Hace que la velocidad se mantenga entre el minimo y el maximo

if (speed <= 0) //Si la velocidad es menor o igual a 0
{
    gravity = 0 //La gravedad se pone en cero
    maximum = 0 // Y el maximo tambien
}[/gml]
Colision con obj_wall:
[gml]if(speed > 0) //Si la velocidad es mayor que cero
{
    move_bounce_all(false) //Rebota pero solo con ese objeto
    speed -= 1 //reduce la velocidad para que vaya hacia atras
    maximum -= 1.5 //Le reduce el maximo a la velocidad
}
else //Sino
y = other.y-16 //Pone que vaya hacia arriba o hacia abajo[/gml]

Draw:
[gml]draw_self() //Se dibuja la pelota
draw_text(30, 35, speed) //Dibuja un texto con la velocidad
//Dibuja la posicion de la pelota
draw_text(30, 100, x)
draw_text(30, 120, y)[/gml]

En realidad hacer un objeto que rebota no es tarea complicada, pero para gente como nosotros se hace un poco dificil :'( XD XD