r-type  0.0.0
R-Type main
Loading...
Searching...
No Matches
SpriteRect.hpp
Go to the documentation of this file.
1///
2/// @file SpriteRect.hpp
3/// @brief Helper functions for pixel-perfect sprite rectangles
4/// @namespace cli
5///
6
7#pragma once
8
9namespace cli
10{
11 namespace SpriteRect
12 {
13 // SpriteSheet configuration for pixel-perfect rendering
14 namespace SpriteSheet
15 {
16 // Asteroid spritesheet (r-typesheet3.gif)
17 struct Asteroid
18 {
19 static constexpr int frameW = 16;
20 static constexpr int frameH = 16;
21 static constexpr int marginX = 1;
22 static constexpr int marginY = 1;
23 static constexpr int spacingX = 1;
24 static constexpr int spacingY = 0;
25 static constexpr int totalFrames = 12;
26 };
27
28 // Enemy spritesheet (r-typesheet5.gif)
29 struct Enemy
30 {
31 static constexpr int frameW = 16;
32 static constexpr int frameH = 16;
33 static constexpr int marginX = 1;
34 static constexpr int marginY = 1;
35 static constexpr int spacingX = 1;
36 static constexpr int spacingY = 0;
37 static constexpr int totalFrames = 8;
38 };
39 } // namespace SpriteSheet
40
41 // Simple rectangle structure
42 struct Rect
43 {
44 int x, y, w, h;
45 };
46
47 // Calculate exact rectangle for asteroid frame
56
57 // Calculate exact rectangle for enemy frame
66 } // namespace SpriteRect
67} // namespace cli
Rect asteroidRect(int col, int row=0)
Rect enemyRect(int col, int row=0)