tamtaasatiani / tahmlib

Library for Game Development with C++
MIT License
81 stars 11 forks source link

tahmlib

tahmlib is a simple C++ library for making video games.

tahmlib is inspired by Love2D, and is a bare-bones way of programming games: no fancy interface, no level editor. Just pick your favorite code editor and program away

Currently tested for Windows 10.


How to run

tahmlib was made with Visual Studio 2022. It uses the "Desktop Development with C++" module. Install those and run Visual Studio. Afterwards, click on "Clone a Repository".
image

Copy the repository location and choose a desired path on your PC.
image

Click on "clone" and you're all set, code away!
note: MAKE SURE TO SET THE CONFIGURATION TO x86 IF IT'S NOT ALREADY SET TO THAT, AS TAHMLIB HAS ONLY BEEN SET UP FOR 32 BIT AT THE MOMENT


Required libraries

ALL of the required libraries are included in the source code, no need to download/set them up.


Guidelines


How to use

Open up the main.cpp file, you'll see this code


#include "engine.h"

void start()
{

}

void keypressed(Event event)
{

}

void update()
{

}

void draw()
{

}


Inside the "start" function, call the "create" method to create a window of the desired title, width, and height.
note: the create method is optional. If it's not called, tahm will assign default values.


void start()
{
    tahm.window->create("Test", 1280, 720);
}


If you run the code, you should see something like this.
image


At the start of the file (outside of functions), create a Player struct with parameters x, y, width, and height, and a constructor to pass in those parameters.
Create a player object.
Then in the draw function, set the active color and call the "rect" method to draw a rectangle with the player parameters.


#include "engine.h"

struct Player
{
    Player (int x, int y, int width, int height)
    {
        this->x = x;
        this->y = y;

        this->width = width;
        this->height = height;
    }

    int x, y, width, height;
};

Player player(200, 200, 20, 20);

void draw()
{
    tahm.graphics->draw->rect(player.x, player.y, player.width, player.height);
}


You should get something like:
image


Almost there! Now just update the player x position whenever we press the D key.

void update()
{
    if (tahm.input->keyPressed[KEYCODE_D])
    {
        player.x += 10;
    }
}


Done! You just made your very first game in tahmlib.


Example projects