SFML -Debug -Asertion fehlC++

Programme in C++. Entwicklerforum
Anonymous
 SFML -Debug -Asertion fehl

Post by Anonymous »

Ich bin ein Neuling von SFML und ich folge einem Tutorial, um ein Kacheln für ein 2D -Spiel zu erstellen. Wenn ich jedoch versuche, die Karte zu zeichnen

Code: Select all

#include "GameMap.h"

void GameMap::setUpInitialState()
{
//Set up player initial state
exitPos = sf::Vector2i(1, 0);

//Playwe start at the bottom
playerPos = sf::Vector2i(gridLength - 1, gridLength - 1);

}

void GameMap::setUpEnemyPosition()
{
enemyPosition.clear(); //Clear current enemy position
enemyPosition.push_back(sf::Vector2i(0, 2)); //Enenmy 1
enemyPosition.push_back(sf::Vector2i(6, 0)); //Enenmy 2
enemyPosition.push_back(sf::Vector2i(2, 7)); //Enenmy 3

}

void GameMap::setUpTiles() //Setting up the map
{
tiles.clear();
std::vector firstRow;
firstRow.push_back(new GameTile("Pixel Crawler - Free Pack/Environment/Tilesets/Floors_Tiles.png", 0, 0, true, false));
firstRow.push_back(new GameTile("Pixel Crawler - Free Pack/Environment/Tilesets/Floors_Tiles.png", 50, 0, true, false));
firstRow.push_back(new GameTile("Pixel Crawler - Free Pack/Environment/Tilesets/Floors_Tiles.png", 100, 0, true, false));
firstRow.push_back(new GameTile("Pixel Crawler - Free Pack/Environment/Tilesets/Floors_Tiles.png", 150, 0, true, false));
firstRow.push_back(new GameTile("Pixel Crawler - Free Pack/Environment/Tilesets/Floors_Tiles.png", 200, 0, true, false));
firstRow.push_back(new GameTile("Pixel Crawler - Free Pack/Environment/Tilesets/Floors_Tiles.png", 250, 0, true, false));
firstRow.push_back(new GameTile("Pixel Crawler - Free Pack/Environment/Tilesets/Floors_Tiles.png", 300, 0, true, false));
firstRow.push_back(new GameTile("Pixel Crawler - Free Pack/Environment/Tilesets/Floors_Tiles.png", 350, 0, true, false));
tiles.push_back(firstRow);

GameMap::GameMap()
{
gridLength = 8;
setUpInitialState();

}

GameMap::~GameMap()
{

}
< /code>
Dieser ist die Fliesenklasse: < /p>
#include "GameTiles.h"

GameTile::GameTile(std::string, float x, float y, bool goThrough, bool exit) : sprite(texture)
{
position = sf::Vector2f(x, y);
sprite.setPosition(position);
CanMoveThrough = goThrough;
isExit = exit;
}

GameTile::~GameTile()
{

}

bool GameTile::setUpSprite(std::string textureName)
{
if (!texture.loadFromFile(textureName))
{
return false;
}

texture.setSmooth(true);
sprite.setTexture(texture);
sprite.setTextureRect(sf::IntRect({ 0, 0 }, { 50, 50 }));
return true;
}

und der Fehler tritt nur auf

Code: Select all

#include "GameTiles.cpp"

int main()
{
sf::RenderWindow* window = new sf::RenderWindow(sf::VideoMode({ 400, 400 }), "SFML works!");

GameMap WorldMap = GameMap(); //Constructor set up grid length

while (window->isOpen())
{
while (const std::optional event = window->pollEvent())
{
if (event->is())
window->close();
}

window->clear();

//Displaying the world
for (int i = WorldMap.gridLength; i >= 0; i--)
{
for (int j = WorldMap.gridLength; j >= WorldMap.gridLength; j--)
{
window->draw(WorldMap.tiles[j][i]->sprite);
}
}

window->display();
}
}
Vielen Dank im Voraus für jeden Rat !!
Ich habe versucht, die Werte des Gitters, der Fliesen usw. zu ändern, aber es funktioniert immer noch nicht.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post