SFML wird das Fenster nach dem Schließen wieder eröffnet [geschlossen]

Post a reply

Smilies
:) :( :oops: :chelo: :roll: :wink: :muza: :sorry: :angel: :read: *x) :clever:
View more smilies

BBCode is ON
[img] is ON
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: SFML wird das Fenster nach dem Schließen wieder eröffnet [geschlossen]

by Anonymous » 18 Aug 2025, 18:31

Ich arbeite an einem Spiel in C ++ mit SFML, aber aus irgendeinem Grund, wenn ich das Fenster mit Escape (es ein Vollbildprogramm) schließe, wird es einfach wieder geöffnet und ich weiß nicht, warum es das tut. Ich muss Skripte, die Player_logic.cpp und main.cpp < /p>
sind

Code: Select all

int main() {

sf::RenderWindow window(
sf::VideoMode(windowWidth, windowHeight),
"Zombie Game",
sf::Style::None
);
window.setFramerateLimit(60);

while (window.isOpen()) {
sf::Event event;
while (window.pollEvent(event)) {

if (event.type == sf::Event::Closed) {
window.close();
}

if (event.type == sf::Event::KeyPressed && event.key.code == sf::Keyboard::Escape) {
window.close();
}
}

window.clear(sf::Color::Black);

createPlayer(window, windowWidth, windowHeight);

window.display();
}

return 0;
}
< /code>
Dies ist Player_logic, in dem ich das Evryhing simuliere, das ich über den Characther -ähnlichen Bewegung und Paramatern brauche. < /p>
#include 
#include 

void createPlayer(sf::RenderWindow& window, int windowWidth, int windowHeight) {
static float playerPosX = windowWidth / 2.f;
static float playerPosY = windowHeight / 2.f;
static float stamina = 100.f;
float playerRadius = 30.f;

float speed = 3.f;

// Sprinting
if (sf::Keyboard::isKeyPressed(sf::Keyboard::LShift) ||  sf::Keyboard::isKeyPressed(sf::Keyboard::RShift)) {
if (stamina > 0.f) {
speed = 5.f;
stamina -= 0.333f;
} else {
speed = 3.f;
}
}

// Movement
if (sf::Keyboard::isKeyPressed(sf::Keyboard::A)) playerPosX -= speed;
if (sf::Keyboard::isKeyPressed(sf::Keyboard::D)) playerPosX += speed;
if (sf::Keyboard::isKeyPressed(sf::Keyboard::W)) playerPosY -= speed;
if (sf::Keyboard::isKeyPressed(sf::Keyboard::S)) playerPosY += speed;

// Optional: regenerate stamina slowly
if (!sf::Keyboard::isKeyPressed(sf::Keyboard::LShift) &&       !sf::Keyboard::isKeyPressed(sf::Keyboard::RShift)) {
stamina += 0.2f;
if (stamina > 100.f) stamina = 100.f;
}

sf::CircleShape player(playerRadius);
player.setFillColor(sf::Color::Green);
player.setOrigin(playerRadius, playerRadius);
player.setPosition(playerPosX, playerPosY);

window.draw(player);

std::cout

Top