summaryrefslogtreecommitdiffhomepage
path: root/src/resources.cpp
diff options
context:
space:
mode:
authorrealtradam <[email protected]>2022-11-04 16:32:10 -0400
committerrealtradam <[email protected]>2022-11-04 16:32:10 -0400
commit6936cd871bd99f702e6180b169785b814cfa00f3 (patch)
tree09025d45372d1c3c73a6ba39b49bf969f8929681 /src/resources.cpp
parent53ef8694998392856c44e7397860e04e2dddac49 (diff)
downloadorbital_game-6936cd871bd99f702e6180b169785b814cfa00f3.tar.gz
orbital_game-6936cd871bd99f702e6180b169785b814cfa00f3.zip
implemented sprites
Diffstat (limited to 'src/resources.cpp')
-rw-r--r--src/resources.cpp65
1 files changed, 46 insertions, 19 deletions
diff --git a/src/resources.cpp b/src/resources.cpp
index 141e4ca..8a820b5 100644
--- a/src/resources.cpp
+++ b/src/resources.cpp
@@ -5,23 +5,50 @@
#include "resources.h"
namespace Resources {
- static std::unordered_map<std::string, std::string> textureFiles = {
- {"ship", "./assets/textures/spaceShooter2_spritesheet_2X.png"}
- };
- static std::unordered_map<std::string, Texture> textures;
- Texture useTexture(std::string id) {
- Texture texture;
- auto texSearch = textures.find(id);
- if (texSearch != textures.end()) {
- return texSearch->second;
- }
- auto texPathSearch = textureFiles.find(id);
- if (texPathSearch != textureFiles.end()) {
- texture = LoadTexture(texPathSearch->second.c_str());
- textures.insert({id, texture});
- } else {
- throw std::invalid_argument("Texture id '" + id + "' has no assigned path.");
- }
- return texture;
- }
+ static std::unordered_map<std::string, std::string> textureFiles = {
+ {"ship", "./assets/textures/spaceShooter2_spritesheet_2X.png"}
+ };
+ static std::unordered_map<std::string, Texture> textures;
+ Texture useTexture(std::string id) {
+ Texture texture;
+ auto texSearch = textures.find(id);
+ if (texSearch != textures.end()) {
+ return texSearch->second;
+ }
+ auto texPathSearch = textureFiles.find(id);
+ if (texPathSearch != textureFiles.end()) {
+ texture = LoadTexture(texPathSearch->second.c_str());
+ textures.insert({id, texture});
+ } else {
+ throw std::invalid_argument("Texture id '" + id + "' has no assigned path.");
+ }
+ return texture;
+ }
+
+ Sprite::Sprite(std::string texture_name,
+ Rectangle source_rectangle,
+ Vector2 origin
+ ):texture_name(texture_name),
+ source_rectangle(source_rectangle),
+ origin(origin){
+
+ }
+
+ void Sprite::drawPro(Rectangle dest_rectangle, float rotation, Color color) {
+ DrawTexturePro(useTexture(texture_name),
+ source_rectangle,
+ dest_rectangle,
+ origin,
+ rotation,
+ color);
+ }
+
+ void Sprite::draw(float x, float y, float scale, float rotation, Color color) {
+ DrawTexturePro(useTexture(texture_name),
+ source_rectangle,
+ (Rectangle){x,y,source_rectangle.width * scale,source_rectangle.height * scale},
+ origin,
+ rotation,
+ color);
+ }
}