config.h 5.22 KiB
#pragma once
#include <SFML/Graphics.hpp>
#define IS_LIGHT 0
namespace config {
	// Общее: 
	const unsigned int FRAME_RATE_LIMIT = 60;
	// Меню: 
	const sf::Vector2f BUTTON_SIZE = { 250, 100 };
	const size_t BUTTON_FONT_SIZE = static_cast<size_t>(BUTTON_SIZE.y / 1.5f);
	const float BUTTON_FRAME_THICKNESS = 2.0f;
	const char FONT_FILE[] = "Calibri-Light.ttf";
	const char SELECT_LEVEL_TITLE[] = "Select Level";
	const sf::VideoMode SELECT_LEVEL_VIDEO_MODE{ 400, 600 };
	const char BUTTON_TEXT_EASY[] = "Easy";
	const char BUTTON_TEXT_MEDIUM[] = "Medium";
	const char BUTTON_TEXT_HARD[] = "Hard";
	const char BUTTON_TEXT_EXIT[] = "Exit";
	// Игра: 
	const sf::VideoMode GAME_VIDEO_MODE{ 1080, 720 };
	const char EASY_GAME_TITLE[] = "Level: Easy";
	const char MEDIUM_GAME_TITLE[] = "Level: Medium";
	const char HARD_GAME_TITLE[] = "Level: Hard";
	// Вероятности
	const float EASY_GAME_ENEMY_RATIO = 0.0f;
	const float MEDIUM_GAME_ENEMY_RATIO = 0.04f;
	const float HARD_GAME_ENEMY_RATIO = 0.07f;
	const float EASY_IP_SPAWN_PROBAB = 0;
	const float MEDIUM_IP_SPAWN_PROBAB = 0.005;
	const float HARD_IP_SPAWN_PROBAB = 0.02;
	// Размеры объектов
	const float ROOM_SIZE = 50;
	const float GAME_ENEMY_SIZE = ROOM_SIZE * 0.7;
	const float GAME_FOOD_SIZE = ROOM_SIZE * 0.2;
	const float GAME_PACMAN_SIZE = ROOM_SIZE * 0.8;
	const float GAME_INVIS_POTION_SIZE = ROOM_SIZE * 0.35;
	// Кнопки
	const sf::Keyboard::Key KEY_LEFT = sf::Keyboard::A;
	const sf::Keyboard::Key KEY_RIGHT = sf::Keyboard::D;
	const sf::Keyboard::Key KEY_UP = sf::Keyboard::W;
	const sf::Keyboard::Key KEY_DOWN = sf::Keyboard::S;
	const sf::Keyboard::Key KEY_INVENTORY = sf::Keyboard::E;
	const sf::Keyboard::Key KEY_POTION = sf::Keyboard::V;
	const sf::Keyboard::Key KEY_CONVERT = sf::Keyboard::C;
	const sf::Keyboard::Key KEY_KILL_ENEMY = sf::Keyboard::Q;
	const sf::Keyboard::Key KEY_GAME_PAUSE = sf::Keyboard::P;
	// Размеры в инвентаре
	const float CELL_SIZE = GAME_PACMAN_SIZE * 1.5;
	const float CELL_FRAME_THICKNESS = 1;
	const float INVENTORY_WIDTH = CELL_SIZE * 4;
	const float INVENTORY_HEIGHT = CELL_SIZE * 1.33;
	const float INVETORY_FRAME_THICKNESS = 1;
	const size_t INVENTORY_FONT_SIZE = static_cast<size_t>(INVENTORY_HEIGHT / 4.5f);
	// Размеры меню паузы
	const float PAUSE_POP_UP_WIDTH = config::GAME_VIDEO_MODE.width * 0.25 * 1.5;
	const float PAUSE_POP_UP_HEIGHT = config::GAME_VIDEO_MODE.height * 0.25;
	const size_t PAUSE_POP_UP_FONT_SIZE = static_cast<size_t>(PAUSE_POP_UP_HEIGHT * 0.25);
	const float PAUSE_POP_UP_FRAME_THICKNESS = 1;
7172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
// Предметы в инвентаре: const size_t INVIS_POTION_DURATION = 300; //в тиках const size_t START_BLINKING_TIME = 160; const size_t BLINKING_GAP_DURATION = 20; const size_t ENEMY_KILL_COUNT_FOOD = 50; const size_t ANIMATION_FRAMES_GAP = 3; // Цвета: #if IS_LIGHT == 1: // Базовые const sf::Color BUTTON_COLOR_TEXT { 0, 0, 0 }; const sf::Color BUTTON_COLOR_FILL{ 180, 180, 180 }; const sf::Color BUTTON_COLOR_SELECTION{ 255, 180, 180 }; const sf::Color BUTTON_COLOR_FRAME{ 0, 0, 0 }; const sf::Color SELECT_LEVEL_BACKGROUND_COLOR{ 230,230,230 }; const sf::Color GAME_COLOR_BACKGROUND_INGAME{ 230,230,230 }; const sf::Color GAME_COLOR_BACKGROUND_WIN{ 0, 255, 0 }; const sf::Color GAME_COLOR_BACKGROUND_LOST{ 255, 0, 0 }; const sf::Color GAME_COLOR_PACMAN{ 250, 150, 0 }; const sf::Color GAME_COLOR_PACMAN_INVISIBLE{ 250, 150, 0, 128 }; const sf::Color GAME_COLOR_ROOM{ 255, 255, 255 }; const sf::Color GAME_COLOR_WALL{ 0, 0, 0 }; const sf::Color GAME_FOOD_COLOR{ 0, 200, 100 }; // Инвентарь const sf::Color CELL_COLOR = sf::Color{ 255,255,255, 255 }; const sf::Color CELL_OUTLINE_COLOR = sf::Color{ 0,0,0 }; const sf::Color INVENTORY_COLOR = sf::Color{ 230,230,230, 225 }; const sf::Color INVENTORY_OUTLINE_COLOR = sf::Color{ 20,20,20 }; const sf::Color INVENTORY_COLOR_TEXT{ 0, 0, 0 }; // Меню паузы const sf::Color PAUSE_POP_UP_COLOR = sf::Color{ 255,255,255 }; const sf::Color PAUSE_POP_UP_OUTLINE_COLOR = sf::Color{ 0,0,0 }; #else: // Базовые const sf::Color BUTTON_COLOR_TEXT{ 255, 255, 255 }; const sf::Color BUTTON_COLOR_FILL{ 0, 0, 0 }; const sf::Color BUTTON_COLOR_SELECTION{ 50, 50, 100 }; const sf::Color BUTTON_COLOR_FRAME{ 0, 0, 255 }; const sf::Color SELECT_LEVEL_BACKGROUND_COLOR{ 25,25,25 }; const sf::Color GAME_COLOR_BACKGROUND_INGAME{ 50,50,50 }; const sf::Color GAME_COLOR_BACKGROUND_WIN{ 0, 100, 0 }; const sf::Color GAME_COLOR_BACKGROUND_LOST{ 100, 0, 0 }; const sf::Color GAME_COLOR_PACMAN{ 250, 250, 0 }; const sf::Color GAME_COLOR_PACMAN_INVISIBLE { 250, 250, 0, 128 }; const sf::Color GAME_COLOR_ROOM{ 0, 0, 0 }; const sf::Color GAME_COLOR_WALL{ 0, 0, 255 }; const sf::Color GAME_FOOD_COLOR{ 0, 200, 100 }; // Инвентарь const sf::Color CELL_COLOR = sf::Color{ 0,0,0, 255 }; const sf::Color CELL_OUTLINE_COLOR = sf::Color{ 0,0, 255 }; const sf::Color INVENTORY_COLOR = sf::Color{ 0,0,0, 150 }; const sf::Color INVENTORY_OUTLINE_COLOR = sf::Color{ 0,0,255 }; const sf::Color INVENTORY_COLOR_TEXT{ 255, 255, 255 }; // Меню паузы const sf::Color PAUSE_POP_UP_COLOR = sf::Color{ 0,0,0, 255 }; const sf::Color PAUSE_POP_UP_OUTLINE_COLOR = sf::Color{ 0,0,255 }; #endif }