From 11c5d147b845d4323f2e94c1ac47b6001420d8e6 Mon Sep 17 00:00:00 2001 From: tom Date: Thu, 19 Jan 2017 13:33:46 -0600 Subject: -added entity growing -added bite functionality for creature/resource -added gender (next largest feature is reproduction) -refractored creature setTarget function to make more sense -added constants for starting size of entity and max size of entity -refractored list to make make much more sense -added constants for types --- inc/constants.hpp | 35 ++++++++++++++++++++++------------- inc/creature.hpp | 33 +++++++++++++++++++-------------- inc/entity.hpp | 2 +- inc/list.hpp | 1 + inc/resource.hpp | 5 ++++- 5 files changed, 47 insertions(+), 29 deletions(-) (limited to 'inc') diff --git a/inc/constants.hpp b/inc/constants.hpp index 08f548e..45ff0e7 100644 --- a/inc/constants.hpp +++ b/inc/constants.hpp @@ -1,20 +1,29 @@ #ifndef constants_h #define constants_h -const int CREATURES = 10; -const int RESOURCES = 100; -const int MINIMUM_RESOURCES = 90; -const int WINDOW_X = 1080; -const int WINDOW_Y = 640; +const int CREATURES = 10; +const int RESOURCES = 100; +const int MINIMUM_RESOURCES = 90; +const int WINDOW_X = 1080; +const int WINDOW_Y = 640; -const int CREATURE_START_HEALTH = 500; -const int CREATURE_MAX_HEALTH = 1000; -const int CREATURE_BEST_SENSE = 100; -const int CREATURE_SPEED = 1; -const int CREATURE_REACH = 5; -const int CREATURE_SIZE = 10; +const int CREATURE_TYPE = 1; +const int RESOURCE_TYPE = 2; -const int RESOURCE_SIZE = 5; -const int RESOURCE_AMOUNT = 100; +const int CREATURE_START_HEALTH = 500; +const int CREATURE_MAX_HEALTH = 1000; +const int CREATURE_BEST_SENSE = 100; +const int CREATURE_SPEED = 1; +const int CREATURE_REACH = 5; +const int CREATURE_SIZE_MAX = 20; +const int CREATURE_SIZE_START = 10; +const int CREATURE_BITE = 10; +const int CREATURE_AMOUNT_TO_GROW = 50; + +const int RESOURCE_SIZE_START = 5; +const int RESOURCE_SIZE_MAX = 10; +const int RESOURCE_AMOUNT_START = 100; +const int RESOURCE_AMOUNT_MAX = 200; +const int RESOURCE_GROW = 1; #endif diff --git a/inc/creature.hpp b/inc/creature.hpp index f51d083..edc253f 100644 --- a/inc/creature.hpp +++ b/inc/creature.hpp @@ -17,24 +17,29 @@ class Creature: public Entity void setTarget(); void Move(SDL_Rect R); - void giveN(list n){N = n;}; - double Distance(SDL_Rect A, SDL_Rect B){return sqrt(pow(A.x-B.x,2)+pow(A.y-B.y,2));}; - int getHealth(){return health;}; - bool doesItHaveTarget(){return hasTarget;}; - int getBestSense(){return bestSense;}; + void giveN(list n){N = n;}; + double Distance(SDL_Rect A, SDL_Rect B){return sqrt(pow(A.x-B.x,2)+pow(A.y-B.y,2));}; + int getHealth(){return health;}; + bool doesItHaveTarget(){return hasTarget;}; + int getBestSense(){return bestSense;}; private: - bool hasTarget; - bool wander; + bool hasTarget; + bool wander; SDL_Rect wTarget; - int health; - int reach; - int maxHealth; - bool hungry; - int speed; - bool able; - int bestSense; + int health; + int reach; + int maxHealth; + int speed; + int bestSense; + int bite; + int amountAte; + int amountToGrow; + + bool hungry; + bool gender; + bool able; list N; Entity *target; diff --git a/inc/entity.hpp b/inc/entity.hpp index 5941a9c..6587f11 100644 --- a/inc/entity.hpp +++ b/inc/entity.hpp @@ -11,7 +11,7 @@ class Entity int getType(){return type;}; SDL_Rect getRect(){return rect;}; - virtual void eat(void){}; + virtual void eat(int bite){}; virtual int getAmount(void){}; protected: diff --git a/inc/list.hpp b/inc/list.hpp index 6800b34..64ca522 100644 --- a/inc/list.hpp +++ b/inc/list.hpp @@ -15,6 +15,7 @@ class List List(Window m); void Behavior(); void Place(); + void Remove(); double Distance(SDL_Rect A, SDL_Rect B){return sqrt(pow(A.x-B.x,2)+pow(A.y-B.y,2));}; list getNear(Creature C); diff --git a/inc/resource.hpp b/inc/resource.hpp index ed9f098..5c740fa 100644 --- a/inc/resource.hpp +++ b/inc/resource.hpp @@ -7,12 +7,15 @@ class Resource: public Entity { public: Resource(Window m, SDL_Rect Rect); - void eat(); + void eat(int bite); int getAmount(){return amount;}; + void grow(); + int map(int x, int inMin, int inMax, int outMin, int outMax); private: int amount; + int growAmount; }; #endif -- cgit v1.2.3