ComputerTutorial Contest: Tutorial como hacer Pong en Godot. by @andreoid01

in Steem Studios 🎬2 years ago (edited)

Hola amigos de Steem Studios, espero que estén muy bien, vengo a hacer mi participación al concurso de @oscarcc89, aprovecho a invitar a mis amigos: @pasindukd, @andrea020 y @elinav, aquí les dejo el link del concurso si quieren participar, perdón por la tardanza, ahora vamos allá.


Estuve haciendo un juego que me tardo su tiempo, pero iré por algo más fácil ahora, luego les cuento del otro juego.

Tutorial de Pong en Godot.


image.png
imagen hecha en Canva

Primero que nada deben descargar Godot aquí les dejo el enlace a la web oficial, para este tutorial decidí crear un Pong para un jugador en donde explico cosas simples.

Opera Instantánea_2022-03-24_004043_godotengine.org.png

Se necesita descargar Godot en la web oficial.

Ya descargado, lo ejecutamos y creamos un nuevo proyecto, primero presionamos la opción de Nuevo Proyecto, en “Nombre del Proyecto” le puse Pong, en “Ruta del Proyecto” la cambie a una carpeta llamada Steem Studios en mis documento, presione crear carpeta y luego la opción de “Crear y editar” los ajustes del renderizador los deje en OpenGL ES 2.0 ya que mi laptop es de bajos recursos y es lo ideal para un juego de este tipo.

bandicam 2022-03-28 16-49-01-678.jpgbandicam 2022-03-28 16-49-11-021.jpg
bandicam 2022-03-28 16-49-17-132.jpgbandicam 2022-03-28 16-49-20-532.jpg

Creando el Proyecto.

Lo primero que hice fue crear un “Node2D” y este lo renombre como “Escenario” y guarde la escena, luego de esto cambie el color de fondo en la configuración del proyecto, en este busque la parte de “Environment” y cambie el color a uno más oscuro.

También les recomiendo activar el Grid Snap.

bandicam 2022-03-28 21-41-31-438.jpgbandicam 2022-03-28 16-49-48-700.jpg
bandicam 2022-03-28 21-42-01-427.jpgbandicam 2022-03-28 16-51-21-108.jpg

Creando al personaje/paleta de pong y la pelota de Pong.


Añadí un “kinematicBody2D” y le añadí como hijo un “ColorRect” que deje en su color predeterminado y un “CollisionShape2D” estos los posicione y los escale hasta dejarlos con una medida más alta que ancha.

bandicam 2022-03-28 16-53-46-753.jpgbandicam 2022-03-28 16-52-43-450.jpg
bandicam 2022-03-28 16-54-04-807.jpgbandicam 2022-03-28 16-55-17-716.jpg

bandicam 2022-03-28 16-55-29-897.jpg

Para la pelota añadí un “RigidBody2D”, la renombre como "pelota" y le añadí como hijo un “ColorRect” y un “CollisionShape2D” y los escale a una medida cuadrada, cuando vayan a hacer esto dejen en el centro del nodo los hijos o podrían pasar algunas cosas raras, se los digo en verdad, me paso que no lo había posicionado bien y cosas raras pasaban.

bandicam 2022-03-28 22-14-00-153.jpg

RigidBody2D

bandicam 2022-03-28 18-41-15-890.jpg

Así debería quedar.

Creando el Código para la Paleta.


bandicam 2022-03-28 17-30-44-210.jpg

El código completo.

Vamos a la opción de añadir un nuevo script y le damos en crear, ahora en el editor de código, creamos la función de “_physics_process(delta):”, creamos una variable y también la exportamos yo le puse “velocidad” y un le deje un valor de 10, para crear los controles del personaje usare el mapeado de teclas predeterminado de Godot, primero creamos una condicional “if”: esta dirá que si esta tecla esta presionada que será la de ir arriba “ui_up” se moverá hacia arriba...

bandicam 2022-03-28 17-22-20-176.jpgbandicam 2022-03-28 17-22-21-985.jpg

Para esto creamos una variable yo la llame “movimiento” y esta la hice de tipo “Vector2” y que seria igual a “Vector2” sin movimiento en X poniendo 0 y en Y tendría el valor de la variable velocidad, pero en negativo y usamos el método “move_and_collide()” a este le ponemos entre el paréntesis la variable que creamos llamada movimiento.

Para que se mueva hacia abajo, hacemos lo mismo, pero con unos cuantos cambios, la tecla que se presionara será “ui_down” y en el eje Y del “Vector2” no le pondremos el negativo a velocidad.

Como resultado nuestro personaje la paleta debería poder moverse hacia arriba y abajo contralándola con las flechas de dirección del teclado.

Terminando el escenario.


Añadí un “StaticBody2D” y le añadí como hijos 3 “CollisionShape2D” y me puse a escalarlos y posicionarlos para que cubrieran los bordes de la siguiente manera:

editor_screenshot_2022-03-28T195242-0400.png

Esto es para que la pelota rebote en el escenario.

Terminando la pelota.


Tuve varias cosas que me daban raros resultados con la pelota debido a que sus hijos no estaban centrados al centro del nodo, el código sería el siguiente:

bandicam 2022-03-28 18-32-46-094.jpg

Son 2 constantes para los ejes X y Y, para la constante con el eje X el valor que le puse fue -300 y en Y 80.

Y en la función de _ready puse una de las propiedades del “RigidBody2D” que es la de “Linear_velocity” y que esta fuera igual a “Vector2()” y adentro de este puse las variables del eje X y Y.

Resultado de este tutorial:


bandicam 2022-03-28 22-36-55-535.jpg


Para ejecutar la escena se presiona la tecla F6.


Este tutorial solamente cubrió el como crear lo principal para un juego de Pong básico single player en Godot, pero espero traerles pronto contenido de este mismo tipo ya que como dije al principio de esta publicación estaba trabajando en un juego un poco más complejo.


Bueno espero que mi entrada a este concurso este bien, espero que les haya gustado, lamento mucho la tardanza, perdón por tomarme tanto tiempo espero que aun sea valida mi entrada, nos vemos.


Especificaciones de:Mi laptop
Sistema Operativo:Windows 10 x64
RAM:2GB
Procesador:Intel® Celeron® 847

El 25% de las recompensas de esta publicación son en apoyo a @steem.studios

Aquí dejo mi logro 1.

Sort:  
 2 years ago 

This publication has been selected to be in the Top of the best posts of the Week. Congratulations!

Weekly Summary (March 23 - March 29) 📌

banner03.png

Support the community through delegations.

50 SP 100 SP 250 SP 500 SP
800 SP 1000 SP 1250 SP 1500 SP
 2 years ago 

Thank you.

Excelente tutorial hijo🙏😘💖

 2 years ago 

Muchas gracias mamá.

 2 years ago 

Excelente participación amigo, espero sigas compartiendo este tipo de contenido en nuestra comunidad. Gracias por participar.

 2 years ago 

Espero traer mas contenido así, muchas gracias amigo, me encanto participar.

Hola amigo Andrés, que genial tutorial, me encanto mucho, muchas gracias por compartirlo espero que nos sirva de mucho, bendiciones. ❤️

 2 years ago 

Muchas gracias querida amiga.

 2 years ago 

Saludos querido Andrés, este es un programa muy interesante; tienes mucho talento por la programación, hiciste un excelente post explicativo, te deseo mucho éxito en el concurso. Bendiciones ❤️

 2 years ago 

Muchas gracias por todo tu apoyo querida amiga.

(⌐ ■ ω ■)
ヽ (^ o ^) ρ┳┻┳ ° σ (^ o ^) ノ

 2 years ago 

Muchas gracias por tu apoyo.

 2 years ago (edited)

Muy buen material amiguito, se nota que tú mundo es la informática y toda su tecnología deseo que los encargado de plataforma de valorar la tecnología te tomen en cuenta, ya que haces un buen trabajo.
Saludos cordiales.
Muchas Bendiciones..🙏🏻

 2 years ago 

Muchas gracias por todo tu apoyo querida amiga.

Coin Marketplace

STEEM 0.27
TRX 0.12
JST 0.032
BTC 66960.97
ETH 3088.94
USDT 1.00
SBD 3.72