snakeplusplus/src/SnakeFood.cpp

48 lines
1.3 KiB
C++

// SnakeFood.cpp
#include <iostream>
#include <SFML\Graphics.hpp>
#include "SnakeFood.h"
const int kGridSize = 25;
SnakeFood::SnakeFood()
{
snakeFoodObject.setSize(sf::Vector2f(kGridSize,kGridSize));
snakeFoodObject.setFillColor(sf::Color::Red);
}
SnakeFood::SnakeFood(sf::Vector2f snakeFoodSize)
{
snakeFoodObject.setSize(snakeFoodSize);
snakeFoodObject.setFillColor(sf::Color::Red);
}
// Returns a new food object for the snakeFood
void SnakeFood::GenerateNewFood(sf::Vector2f windowSize)
{
sf::Vector2f newPosition;
newPosition.x = GenerateRandomNumber(windowSize.x);
newPosition.y = GenerateRandomNumber(windowSize.y);
snakeFoodObject.setPosition(newPosition);
// if (GlobalCollision(snakeFoodObject.getPosition(), newPosition))
// {
// std::cout << "Location error: " << newPosition.x << " " << newPosition.y << '\n';
// throw std::runtime_error("Error! New generation on same location");
// }
}
sf::RectangleShape SnakeFood::GetFoodObject(void)
{
return snakeFoodObject;
}
// Returns a newly generated number
int SnakeFood::GenerateRandomNumber(int generationLimit)
{
int generatedNumber;
std::uniform_int_distribution<> distribution(0, generationLimit);
generatedNumber = distribution(generator);
generatedNumber -= (generatedNumber % kGridSize);
return generatedNumber;
}