
Discover how Raylib provides a simple, fast cross-platform library for game programming, with OpenGL-backed APIs, multi-language support, and practical examples.
Access resources to view the source code in the repository, locate the main and makefile, and download the correct branch to set up with VS Code.
Learn to set up raylib on Windows with VS Code, installing mingw-GCC, configuring paths, and building a project with a makefile that links OpenGL and system libraries.
You will learn how to include paths and linking libraries to visual studio.
Clone the raylib library on linux, run the setup bash script, install OpenGL libraries, and compile with a makefile to build and run examples.
Create a simple raylib window by initializing width, height, and title, then run a render loop that clears the background and draws a rectangle before closing the window.
Define a struct to group x and y as a vector for position, access and modify its fields with dot notation, and print them with cout.
Explore coordinates and rectangles in raylib by defining position (x, y) and size (width, height), using top-left origin, colors, rotation, and gradients (gradient X and V).
draw a triangle in raylib by specifying three vertices with x and y coordinates, assign a blue color, and render the edges using v1, v2, and v3.
Learn to draw circles and ellipses in Raylib by defining center positions and radii, exploring circle variants (normal, gradient, sector) and ellipse radii (horizontal and vertical) for flexible graphics.
Learn to draw lines and curves in raylib using lines, bezier curves, and cubic bezier with start and end points, control points, color, thickness, and interactive mouse updates.
Explore how time drives the sine and cosine functions to animate coordinates, map values from -1 to 1 and 0 to 1, and create circular motion in C++.
Learn raylib to draw polygons with any number of sides, using a center, radius, rotation, and color; rotate them over time with get time and math functions.
Explore color levels in Raylib by manipulating rgb values to create blue hues, sky blue, and dark blue while enabling anti-aliasing for smoother pixels.
Explore color fading in Raylib by drawing rectangles and applying alpha-driven fades, then control left-right, up-down, and diagonal transitions using time-based x and y values.
Learn how to replace static arrays with a C++ vector to store rectangles, access x and y coordinates, and manipulate elements with push_back, erase, clear, and begin/end-based loops.
Explore how pixels, the smallest addressable elements, render graphics using vectors in C++, with positions and colors, random placement, and a color list.
Explore the ternary operator in C++, using x to show true and false results, replacing if statements with concise conditional expressions and basic string and boolean examples.
Learn to load a texture 2d from a png in resource/images, draw it at a position, and toggle color via space and a ternary expression that multiplies the color.
Explore texture rendering with Raylib's draw texture and draw texture pro, slicing images with source rectangles, setting position, rotation, scale, and color, and learn texture tiling and atlas usage.
Draw text in raylib by passing text, position, font object, size, and color, loaded from resources; load ttf and png fonts, with rotation and spacing options.
Explore how to handle user input and keyboard interactions in Raylib, updating game state and moving a rectangle with arrow keys, including holding keys for smooth motion and simultaneous directions.
Explore mouse input in Raylib by dragging a rectangle from its center using the mouse position, and change colors based on left and right button presses.
Learn to animate a rectangle in Raylib C++ using time-based sine motion, display elapsed time, and map movement for a smooth back-and-forth across the screen.
Explore frame rate concepts in Raylib by measuring frame count, understanding 60 vs 120 fps, and using a simple time counter to monitor rendering performance.
Explore velocity and delta time to drive movement, showing how speed multiplied by delta time updates position and yields smoother real-time motion.
Learn to animate an object around a circle using x = cosine time and y = sine time, then tune center and speed to create scalable looping paths.
Create a timer class in C++, place timer.h and timer.cpp in a source folder, implement updates from main, and compile with a makefile.
Move a blue player toward a central wall using the mouse, detect contact with a check_collision call, and display a collided message when the rectangles touch.
Learn practical rectangle collision detection in Raylib by checking left, right, top, and bottom against window boundaries and clamp the sprite to stay within the screen.
Demonstrate computing and displaying the collided rectangle area when the player hits a wall, by obtaining the collision rectangle, drawing it in yellow, and showing its width, height, and area.
Learn how to implement real-time collision between a player and walls by checking left, right, top, and bottom sides, computing push-back, and preventing passage.
Learn to fix a collision detection bug in Raylib by checking only one side (top or left) for corner collisions, eliminating errors and ensuring real-time collision works correctly.
Learn how to detect collisions between two circles in Raylib by computing center differences, calculating the collision angle with trigonometry, and pushing the circles apart using their radii.
Apply point-circle collision techniques in Raylib to reverse collision detection by adjusting radii and centers, turning a circle-inside check into a circle-outside check.
learn to build a tile map using a multi-dimensional array with zero-based indexing, render blocks based on a map grid, and manage tile offsets and positions.
Demonstrates tilemap collision detection by iterating all blocks, checking rectangle collisions with the player, and updating movement with wasd while rendering the blue player and orange blocks.
Create a 2D camera in Raylib that follows the player, centers on screen, and supports zoom and rotation, with begin mode / end mode applying effects to game objects.
Build a simple gui in Raylib by loading textures, creating color buttons with rectangles, and using mouse collision and color state to change button colors.
Learn how to implement a hover (rollover) color effect for a button in raylib by drawing a hover rectangle, checking collision, and responding to mouse left button down.
Learn to convert plain rectangles into rounded buttons in Raylib by applying a roundness parameter, adjusting radius, and testing color and appearance in dark mode.
Learn to measure text in Raylib to center text on the cursor, using measure text for width, adjust x/y with mouse position, and render a background rectangle for readability.
Build a 12-by-12 grid of 50-pixel tiles in raylib with c++, using a vector of rectangles, computing offsets, drawing colored blocks, and fading tile colors over time with frame-based updates.
Learn how to implement random pixel walking in Raylib with C++ by creating a pixel vector, updating position with random directions, drawing current and previous positions, and adjusting speed.
Learn to implement a 2d camera in raylib, enabling zoom, rotation, and smooth following of a pixel target while centering the view and constraining motion.
Learn to build a raylib c++ snake by rendering the snake from points, updating movement with wasd, and using a 2d camera to follow and zoom.
Learn how anti-aliasing smooths jagged borders by color blending in raylib, explore SMAA, MSAA, and AA, and enable MSAA x for smoother circles and shapes on capable GPUs.
Discover window options in Raylib: set the window title and icon, resize and position the window, and apply flags for resizable, hidden, or fullscreen.
Drag and drop images into a Raylib application, resize the window to be responsive to the image, load textures from dropped files, and unload textures to manage memory.
download a music file, place it in resources/music, initialize the audio device, load the music stream from the file path, and play it with per-frame updates.
Implement a GUI slider for music in raylib using C++. Draw and render slider, track played, and seek the music by dragging with the mouse, pause and resume when needed.
Design a new slider in raylib by building a rounded rectangle, a movable slider point, calculating the circle radius from the rectangle height, and positioning the circle center with vectors.
Learn how to format a timer in Raylib by converting seconds to minutes using modulo 60, and display minutes and seconds with a string stream, centered on screen.
Learn to implement a two-action gui play button in Raylib, including hover detection, collision checks, and responsive visuals with circle, rectangles, and color changes to control music pause and resume.
Explore raylib cursor types by implementing hover interactions for a button and slider, switching the mouse cursor, and drawing centered text while debugging drag behavior.
Add backward and forward track icons in a Raylib C++ project by loading textures, colorizing them white, renaming to next track and backtrack, and resizing with radius for responsiveness.
Develop back and next track actions for an audio list in a raylib c++ project, using a three-song array and a current item index.
Implement a dark mode toggle in Raylib by swapping textures, adjusting colors, and handling hover states and mouse clicks to switch between dark and light themes.
Hey this is Raylib course for graphics, games ,audio and GUI in this course we will use C++ to work with the graphics,
And try to learn those things you know but you didn't code before like making music player, GUI Buttons, Sliders, Hovers, loading textures , mathematics in programming and one of the most important thing making a Quraan player which can include several things: Loading Surats (Quraan receptions) , GUI, Design, Responsive and publish it.
Things you learn in this course and will be able for yourself:
Making your application.
2D Rendering.
Drawing shapes (Lines,Pixels,Rectangles,Circles,eEllipses,Triangles and Polygones).
Loading Textures
Interaction with the application (Mouse or Keyboard).
Checking Collision Detection.
Using mathematics for specific movements.
Drawing Tilemaps.
Making internal GUI.
Making button and slider.
Using 2D Camera.
Loading Music.
Making quraan player.
What is raylib?
A\\ Raylib is a highly modular library. Everything is contained within a small number of well defined, specific and self-contained modules, named accordingly to its primary functionality. Note that some of those modules can be used in standalone mode, independently of raylib library.
NOTE for ADVENTURERS: raylib is a programming library to enjoy videogames programming; no fancy interface, no visual helpers, no auto-debugging... just coding in pure spartan-programmers way.
Prepared by: Muhammad Khalid