Initial commit

This commit is contained in:
2023-05-06 18:33:58 +02:00
commit c9500a5548
18 changed files with 790 additions and 0 deletions
+72
View File
@@ -0,0 +1,72 @@
#pragma once
#include "raylibCpp.h"
#include <vector>
#include <list>
#include <string>
#include "Vec2.h"
#include "Settings.h"
class Snake {
public:
enum Direction {
Up,
Down,
Left,
Right,
None
};
private:
class Body {
public:
Body(Vec2<int> pos);
void draw(Color color = WHITE) const;
void move(Vec2<int> pos) { this->pos = pos; };
Vec2<int> getPos() const { return this->pos; }
static void setSize(Vec2<int> size) { Body::size = size; }
private:
Vec2<int> pos;
static Vec2<int> size;
Snake::Direction nextPart;
};
class Food {
public:
Food();
void draw() const;
void newPosition();
Vec2<int> getPosition() { return this->pos; }
private:
Vec2<int> pos;
Vec2<int> size;
};
public:
Snake();
void update();
void draw() const;
void setDirection(Direction dir);
private:
void move();
void eat();
Direction dir = Direction::None;
Food food;
bool hasEaten = false;
bool hasBitten = false;
int score = 0;
double lastMoveTime = 0;
double moveDelay = 0.15;
std::list<Snake::Body> bodyList;
};