48 lines
1.3 KiB
C++
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;
|
|
}
|