The use of OpenGL as the graphics API has allowed me to introduce alpha blending, rotation and scaling on a hardware level that basic SDL can only offer in software emulation.
Some things I have come to enjoy so far:
- SGL_Sprite is a basic 2d image or part of an image that can be drawn, stretched, blended, and/or rotated anywhere on the screen. SGL_Sprite's need outside information to tell them where and how to be drawn.
- SGL_Entity is more of a physical entity in your game world. It contains a pointer to an SGL_Sprite to act as it's visual representation. An SGL_Entity object contains all of the information it needs to represent itself on the screen as well as check if it has collided with another entity.
- SGL_SurfaceManager is available to help manage loading and unloading SGL_Surface objects and makes sure you do not load the same surface twice.
- SGL_SpriteManager is available to help manage and act as a container of SGL_Sprite objects.
- SGL_EntityManager is available to help manage and act as a container of SGL_Entity objects.
Soon to come: Demo or something