Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
This repository was archived by the owner on Jan 18, 2021. It is now read-only.
/mintaroPublic archive

A small framework for making simple games.

NotificationsYou must be signed in to change notification settings

mackron/mintaro

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Mintaro

Mintaro is a tiny framework for making simple, retro style games. It's not intended to bea full-featured game engine, but is instead focused on simplicity and just making it funto make simple games.

C/C++, single file, public domain.

Features

  • A single file with optional dependencies to extend functionality.
  • No external dependencies except for the standard library and necessary platform librarieslike XLib and Win32.
  • Software rendering, with up to 256 colors and a customizable palette.
  • Uncapped framerate.
  • Custom resolutions of any dimensions.
  • 8 buttons of input
    • Up, down, left, right
    • A, B
    • Start, Select
  • Sound groups with independant volume controls.
  • A simple API.
  • Supports Windows and Linux.

Features Coming Soon

  • Fullscreen mode
  • Line rasterization
  • Triangle rasterization (solid and textured)
  • Rotated sprites
  • More optimizations, especially for graphics
  • More platforms
  • More flexibility for input:
    • Support for binding different keys to the same button.
    • Support for general keyboard controls (in addition to buttons)
    • Support for mouse controls
    • Support for 360 controllers

Usage

Mintaro is a single-file library. To use it, just #include "mintaro.h" like you would any otherheader file and then in one source file do the following:

#define MINTARO_IMPLEMENTATION#include "mintaro.h"

Make sure you don't define the implementation in more than one translation unit.

Mintaro includes a built-in loader for TGA images, but you can enable loading of additionalformats via stb_image by simply including it before the implementation of Mintaro, like this:

#define STB_IMAGE_IMPLEMENTATION#include "stb_image.h"#define MINTARO_IMPLEMENTATION#include "mintaro.h"

A copy of stb_image.h is included in the "extras" directory.

Mintaro includes a built-in loader for WAV sounds, but you can enable loading of Vorbis and FLACsounds by #including stb_vorbis.c and/or dr_flac.h before the implementation of Mintaro, in thesame was as mentioned above for stb_image.h.

Examples

Mintaro is focused on simplicity. Here's a quick example.

voidon_step(mo_context*pContext,doubledt){// Input.if (mo_was_button_pressed(MO_BUTTON_A)) {if (CanShoot()) {mo_play_sound_source(pContext,pGunshotSoundSource);        }    }// Simulation.UpdateCharacter(dt);// Drawing.mo_clear(pContext,clearColorIndex);mo_draw_image(pContext,characterPosX,characterPosY,pCharacterSpriteSheet,0,0,64,64);mo_draw_textf(pContext,0,0,textColorIndex,"Health: %d",characterHealth);}intmain(){mo_context*pContext;if (mo_init(NULL,"My Game's Name",on_step,pUserData,&pContext) {return-1;    }// Load some resources.mo_sound_source*pMusicSource;mo_sound_source_load(pContext,"data/my_music.wav",&pMusic);mo_image*pCharacterSpriteSheet;mo_image_load(pContext,"data/character.tga",&pCharacterSpriteSheet);// Play some music in a loop.mo_sound*pMusic;mo_sound_create(pContext,pMusicSource,NULL,&pMusic);mo_sound_play(pMusic,MO_TRUE);intresult=mo_run(pContext);mo_uninit(pContext);returnresult;}

You can also find a "Hello, World!" example in the "examples" folder.

About

A small framework for making simple games.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages


[8]ページ先頭

©2009-2025 Movatter.jp