Окно в приложении SFML закрывается с кодом 0. ⇐ C++
-
Anonymous
Окно в приложении SFML закрывается с кодом 0.
Я пытаюсь сделать пошаговую игру. Теперь я пытаюсь сделать сетку. Я вывожу текст с информацией о сетке на экран. Но окно продолжает закрываться через некоторое время. Мэйби, я делаю что-то не так? Мой код ниже.
tile.h //часть сетки
#pragma один раз #include "SFML/Graphics.hpp" #include "AssetManager.h" класс Плитка { публика: Плитка(); Tile(float size, sf::Texturetexture); void setPosition (положение sf::Vector2f); sf::Vector2f getPosition() const; void setTexture(std::string& имя файла); поплавок getTileSize(); недействительный setShape(); // устанавливаем параметры формы прямоугольника sf::RectangleShape& getShape(); частный: плавающий размер плитки = 0; sf::Vector2f tilePosition; sf::Текстура tileTexture; sf::RectangleShape tileShape; }; tile.cpp
#include "Tile.h" Плитка::Плитка() { установитьФормула(); } Tile::Tile(размер с плавающей запятой, sf::Texture текстура): tileSize(размер), tileTexture(текстура) { tileShape.setTexture(&tileTexture); tileShape.setOutlineThickness(1.f); tileShape.setOutlineColor(sf::Color::Black); } void Tile::setShape() { если (tileSize == 0) tileSize = 64.f; tileShape.setSize(sf::Vector2f(tileSize,tileSize)); tileShape.setFillColor(sf::Color::White); tileShape.setOutlineThickness(1.f); tileShape.setOutlineColor(sf::Color::Black); } void Tile::setPosition(позиция sf::Vector2f) { tilePosition = позиция; tileShape.setPosition(tilePosition.x, tilePosition.y); } sf::Vector2f Tile::getPosition() const { вернуть позицию плитки; } void Tile::setTexture(std::string& имя файла) { tileShape.setTexture(&AssetManager::GetTexture(имя файла)); } плавающая плитка::getTileSize() { вернуть размер плитки; } sf::RectangleShape& Tile::getShape() { вернуть плитку; } MapManager.h //класс генератора сетки
#pragma один раз #include "SFML/Graphics.hpp" #include "Tile.h" #include #include #include класс AssetManager; класс MapManager { публика: Менеджер карт(); Плитка getTile(); недействительный генерироватьGrid(); void InitializeInformationText();//Инициализировать sf::TextgridInformationText std::stringgridInformation(sf::RenderWindow& окно); // Создание информационного экрана sf::Text& getInformationText(); void drawGrid(sf::RenderWindow& window); std::vector& getGrid(); частный: size_t строк = 10; size_t Колломс = 10; плавающий размер сеткиF = 0; // размер одной ячейки сетки беззнаковый размер сеткиU = 0; Кафельная плитка; sf::TextgridInformationText; sf::Шрифт textFont; sf::Vector2i mousePosScreen; // положение мыши на экране sf::Vector2i mousePosWindow; // положение мыши в окне sf::Vector2f mousePosView; // положение мыши при просмотре sf::Vector2u mousePosGrid; // перемещаем позицию по сетке std::vector сетка; }; MapManager.cpp
#include "MapManager.h" #include MapManager::MapManager() { std::cout = 0.f) mousePosGrid.x = mousePosView.x/gridSizeU; если (mousePosView.y >= 0.f) mousePosGrid.y = mousePosView.y/gridSizeU; window.setView(window.getDefaultView()); станд::stringstream сс; ss
Я пытаюсь сделать пошаговую игру. Теперь я пытаюсь сделать сетку. Я вывожу текст с информацией о сетке на экран. Но окно продолжает закрываться через некоторое время. Мэйби, я делаю что-то не так? Мой код ниже.
tile.h //часть сетки
#pragma один раз #include "SFML/Graphics.hpp" #include "AssetManager.h" класс Плитка { публика: Плитка(); Tile(float size, sf::Texturetexture); void setPosition (положение sf::Vector2f); sf::Vector2f getPosition() const; void setTexture(std::string& имя файла); поплавок getTileSize(); недействительный setShape(); // устанавливаем параметры формы прямоугольника sf::RectangleShape& getShape(); частный: плавающий размер плитки = 0; sf::Vector2f tilePosition; sf::Текстура tileTexture; sf::RectangleShape tileShape; }; tile.cpp
#include "Tile.h" Плитка::Плитка() { установитьФормула(); } Tile::Tile(размер с плавающей запятой, sf::Texture текстура): tileSize(размер), tileTexture(текстура) { tileShape.setTexture(&tileTexture); tileShape.setOutlineThickness(1.f); tileShape.setOutlineColor(sf::Color::Black); } void Tile::setShape() { если (tileSize == 0) tileSize = 64.f; tileShape.setSize(sf::Vector2f(tileSize,tileSize)); tileShape.setFillColor(sf::Color::White); tileShape.setOutlineThickness(1.f); tileShape.setOutlineColor(sf::Color::Black); } void Tile::setPosition(позиция sf::Vector2f) { tilePosition = позиция; tileShape.setPosition(tilePosition.x, tilePosition.y); } sf::Vector2f Tile::getPosition() const { вернуть позицию плитки; } void Tile::setTexture(std::string& имя файла) { tileShape.setTexture(&AssetManager::GetTexture(имя файла)); } плавающая плитка::getTileSize() { вернуть размер плитки; } sf::RectangleShape& Tile::getShape() { вернуть плитку; } MapManager.h //класс генератора сетки
#pragma один раз #include "SFML/Graphics.hpp" #include "Tile.h" #include #include #include класс AssetManager; класс MapManager { публика: Менеджер карт(); Плитка getTile(); недействительный генерироватьGrid(); void InitializeInformationText();//Инициализировать sf::TextgridInformationText std::stringgridInformation(sf::RenderWindow& окно); // Создание информационного экрана sf::Text& getInformationText(); void drawGrid(sf::RenderWindow& window); std::vector& getGrid(); частный: size_t строк = 10; size_t Колломс = 10; плавающий размер сеткиF = 0; // размер одной ячейки сетки беззнаковый размер сеткиU = 0; Кафельная плитка; sf::TextgridInformationText; sf::Шрифт textFont; sf::Vector2i mousePosScreen; // положение мыши на экране sf::Vector2i mousePosWindow; // положение мыши в окне sf::Vector2f mousePosView; // положение мыши при просмотре sf::Vector2u mousePosGrid; // перемещаем позицию по сетке std::vector сетка; }; MapManager.cpp
#include "MapManager.h" #include MapManager::MapManager() { std::cout = 0.f) mousePosGrid.x = mousePosView.x/gridSizeU; если (mousePosView.y >= 0.f) mousePosGrid.y = mousePosView.y/gridSizeU; window.setView(window.getDefaultView()); станд::stringstream сс; ss
Мобильная версия