mirror of
https://github.com/Nimac0/SDL_Minigame
synced 2026-01-12 13:43:41 +00:00
Compare commits
2 Commits
a49753e39a
...
29743d11b0
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
29743d11b0 | ||
|
|
7e088594ae |
@ -27,8 +27,14 @@ public:
|
||||
void createProjectile(Vector2D pos, Vector2D velocity, int scale, int range, int speed, const char* texturePath, Entity* owner);
|
||||
void createPowerup(Vector2D pos, std::function<void (Entity*)> pickupFunc, std::string texturePath);
|
||||
|
||||
Vector2D calculateSpawnPosition(int width, int height);
|
||||
template <typename T> T calculateType(int amount);
|
||||
/*!
|
||||
* \brief Calculates a random spawn position for an object within a given area
|
||||
* \param size The size (collision box) of the object
|
||||
* \param spawnArea The area within which a spawn position will be calculated
|
||||
* \returns Spawn Coordinates for the object
|
||||
*/
|
||||
Vector2D calculateSpawnPosition(Vector2D size, Vector2D spawnArea);
|
||||
template <typename T> [[deprecated]] T calculateRandomType(int amount);
|
||||
|
||||
//texture management
|
||||
void addTexture(std::string id, const char* path);
|
||||
|
||||
@ -74,17 +74,19 @@ void AssetManager::createPowerup(Vector2D pos, std::function<void (Entity*)> pic
|
||||
powerups.addGroup((size_t)Entity::GroupLabel::POWERUPS);
|
||||
}
|
||||
|
||||
Vector2D AssetManager::calculateSpawnPosition(int width, int height)
|
||||
|
||||
Vector2D AssetManager::calculateSpawnPosition(Vector2D size, Vector2D spawnArea)
|
||||
{
|
||||
Vector2D spawnPos = Vector2D(-1, -1);
|
||||
|
||||
for(int i = 0; i <= SPAWN_ATTEMPTS; i++)
|
||||
{
|
||||
|
||||
SDL_Rect spawnRect = {
|
||||
rand() % (SCREEN_SIZE_WIDTH - width),
|
||||
rand() % (SCREEN_SIZE_HEIGHT - height),
|
||||
width,
|
||||
height
|
||||
rand() % (int)(spawnArea.x - size.x),
|
||||
rand() % (int)(spawnArea.y - size.y),
|
||||
size.x,
|
||||
size.y
|
||||
};
|
||||
|
||||
std::vector<ColliderComponent*> colliders = this->man->getGame()->collisionHandler->getColliders({Entity::GroupLabel::MAPTILES});
|
||||
@ -103,7 +105,7 @@ Vector2D AssetManager::calculateSpawnPosition(int width, int height)
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
T AssetManager::calculateType(int amount)
|
||||
T AssetManager::calculateRandomType(int amount)
|
||||
{
|
||||
T type = T(rand() % amount);
|
||||
return type;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user