-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
9 changed files
with
152 additions
and
8 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
122 changes: 122 additions & 0 deletions
122
src/content/posts/how-to-start-raylib/how-to-start-raylib.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,122 @@ | ||
--- | ||
title: ¿Cómo empezar con Raylib? | ||
published: 2024-10-28 | ||
description: 'Raylib es considerado una de las bibliotecas de C/C++ más fáciles de usar para crear videojuegos, pero puede ser un poco complicado empezar para algunos. Aquí te enseñaré cómo empezar con Raylib.' | ||
image: '' | ||
tags: [guía, raylib, c, c++, videojuegos] | ||
category: 'Guía' | ||
draft: false | ||
language: '' | ||
id: 22 | ||
--- | ||
## Tabla de contenido | ||
- [Compilar y correr](#compilar-y-correr) | ||
- [Empezar otro proyecto](#empezar-otro-proyecto) | ||
- [Conceptos básicos](#conceptos-básicos) | ||
- [El código más esencial](#el-código-más-esencial) | ||
- [Ciclo principal del juego](#ciclo-principal-del-juego) | ||
- [¿Qué sigue?](#qué-sigue) | ||
___ | ||
Antes de comenzar, recomiendo bastante que primero leas [¿Cómo instalar Raylib?](/grupo932/posts/how-to-install-raylib/how-to-install-raylib/) si aún no lo has hecho. | ||
## Compilar y correr | ||
Para compilar y correr un programa de Raylib, a partir de la plantilla rápida que descargaste en el artículo anterior, sigue estos pasos: | ||
1. En **Visual Studio Code**, con la carpeta de tu proyecto abierta como raíz, presiona `F5` para compilar y correr el programa. Alternativamente, también puedes presionar seleccionar la opción del menú izquierdo que dice `Run and Debug` (como se muestra en la imagen). | ||
![Imagen 1](./image1.png) | ||
También puedes compilar y correr el juego presionando el botón de `Debug C/C++ File` o `Run C/C++ File` en la parte superior derecha de la ventana, y seleccionar cualquiera de las 4 opciones mostradas en la imagen: | ||
![Imagen 2](./image2.png) | ||
![Imagen 3](./image3.png) | ||
:::note[NOTA] | ||
Si tienes descargada la extensión **Code Runner**, es probable que aparezca la opción `Run Code`. Compilar de esta forma no funcionará, así que asegúrate de usar las opciones mencionadas anteriormente. | ||
::: | ||
:::warning[AVISO] | ||
La primera vez que intentes compilar y correr tu juego, va a tardar alrededor de 1 o 2 minutos en compilar. Esto es normal, y a partir de la segunda vez, debería compilar más rápido. | ||
::: | ||
2. Una vez compilado, si no has realizado cambios en el código, puedes volver a correr el archivo ya compilado, o sea, sin necesidad de compilarlo de nuevo, ejecutando el archivo `.exe` que se generó en la carpeta `\bin\Release\` o `\bin\Debug\` (dependiendo de la configuración de compilación que hayas seleccionado). | ||
## Empezar otro proyecto | ||
Si quieres empezar otro proyecto, simplemente copia la carpeta de la plantilla rápida de Raylib y renómbrala a lo que quieras. Es por esto que recomiendo bastante que tengas una copia de la plantilla rápida en una carpeta aparte, para que puedas copiarla y renombrarla fácilmente a la hora de empezar un nuevo proyecto. | ||
## Conceptos básicos | ||
Si quieres aprender más sobre Raylib, te recomiendo que te dirijas a la [página oficial de Raylib](https://www.raylib.com/), donde encontrarás la documentación oficial, tutoriales y ejemplos de código. Alternativamente, también puedes buscar tutoriales en YouTube. | ||
|
||
Dicho esto, puedo darte una pequeña introducción a los conceptos básicos de Raylib. | ||
### El código más esencial | ||
Empezamos con el siguiente código base: | ||
```cpp | ||
#include "raylib.h" | ||
int main() | ||
{ | ||
InitWindow(800, 450, "Raylib"); | ||
SetTargetFPS(60); | ||
while (!WindowShouldClose()) | ||
{ | ||
// Ciclo principal del juego | ||
} | ||
CloseWindow(); | ||
return 0; | ||
} | ||
``` | ||
Ahora analicemos el código: | ||
```cpp | ||
#include "raylib.h" | ||
``` | ||
Incluye la biblioteca de Raylib. | ||
```cpp | ||
InitWindow(800, 450, "Raylib"); | ||
``` | ||
Inicializa la ventana del juego con un ancho de 800 píxeles, un alto de 450 píxeles y un título de "Raylib". Por supuesto, puedes cambiar estos valores a lo que quieras. | ||
```cpp | ||
SetTargetFPS(60); | ||
``` | ||
Establece la cantidad de fotogramas por segundo a 60. Puedes cambiar este valor a lo que quieras, pero es recomendable mantenerlo en 60. | ||
```cpp | ||
while (!WindowShouldClose()) | ||
{ | ||
// Ciclo principal del juego | ||
} | ||
``` | ||
Ciclo principal del juego. Mientras la ventana no deba cerrarse (es decir, hasta que el usuario cierre la ventana o presione `Esc`), el programa ejecutará lo que esté dentro del ciclo. | ||
```cpp | ||
CloseWindow(); | ||
``` | ||
Finalmente, cierra la ventana y libera la memoria. | ||
### Ciclo principal del juego | ||
Dentro del ciclo principal del juego, puedes dibujar cosas en la ventana, actualizar la lógica del juego, y más. Es recomendable primero encargarse de la lógica del juego, y luego dibujar las cosas en la ventana. | ||
|
||
Por el momento, solo vamos a aprender a dibujar. Para dibujar, usamos la función `BeginDrawing()` y `EndDrawing()`. Entre estas dos funciones, puedes dibujar cosas en la ventana, llamando a funciones como `DrawRectangle()`, `DrawCircle()`, `DrawText()`, etcétera (puedes encontrar todas las funciones de dibujo en la [documentación oficial de Raylib](https://www.raylib.com/cheatsheet/cheatsheet.html), en la sección del módulo `rshapes`). | ||
```cpp | ||
while (!WindowShouldClose()) | ||
{ | ||
BeginDrawing(); | ||
ClearBackground(RAYWHITE); | ||
DrawText("¡Hola, mundo!", 10, 10, 20, DARKGRAY); | ||
EndDrawing(); | ||
} | ||
``` | ||
Vamos a hablar brevemente de las funciones usadas: | ||
```cpp | ||
BeginDrawing(); | ||
``` | ||
Comienza a dibujar en la ventana. | ||
```cpp | ||
ClearBackground(RAYWHITE); | ||
``` | ||
Limpia el fondo de la ventana con el color `RAYWHITE`, que es un color predefinido en **Raylib** muy parecido al blanco. Puedes cambiar el color a alguno de los otros predefinidos (verás una lista de colores predefinidos en la [documentación oficial de Raylib](https://www.raylib.com/cheatsheet/cheatsheet.html), en la sección de `colors`). También puedes crear tu propio color con `(Color){r, g, b, a}`, donde `r`, `g`, `b` y `a` son valores entre 0 y 255, por ejemplo: | ||
```cpp | ||
ClearBackground((Color){255, 127, 63, 255}); | ||
``` | ||
:::warning[AVISO] | ||
Si no usas `ClearBackground()`, entonces los dibujos anteriores se quedarán en la ventana, y muy rápidamente la ventana se verá llena de dibujos y todo se puede salir de control. Es por esto que siempre asegúrate de llamar a esta función, y siempre antes de dibujar algo en la ventana. | ||
::: | ||
Puedes usar [este sitio](https://htmlcolorcodes.com/color-picker/) para encontrar el color que quieras y obtener los valores `r`, `g`, `b` y `a` (que son los valores de rojo, verde, azul y alfa, respectivamente). | ||
```cpp | ||
DrawText("¡Hola, mundo!", 10, 10, 20, DARKGRAY); | ||
``` | ||
Dibuja el texto "¡Hola, mundo!" en la posición `(10, 10)` con un tamaño de 20 píxeles y un color de `DARKGRAY`. Puedes cambiar el texto, la posición, el tamaño y el color a lo que quieras. | ||
:::tip[SUGERENCIA] | ||
La posición `(0, 0)` es la esquina superior izquierda de la ventana, y no la esquina inferior izquierda como en la mayoría de los sistemas de coordenadas. Esto es común en la mayoría de software de dibujo y videojuegos. | ||
::: | ||
```cpp | ||
EndDrawing(); | ||
``` | ||
Termina de dibujar en la ventana. | ||
## ¿Qué sigue? | ||
Si suficiente gente lo pide, puedo expandir este artículo, pero por el momento ando ocupado con otros proyectos. Mi consejo es que vayas a Youtube y busques tutoriales de Raylib, o que vayas a la [documentación oficial de Raylib](https://www.raylib.com/cheatsheet/cheatsheet.html) y empieces a experimentar con el código. ¡Buena suerte! |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters