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

Programme in C++. Entwicklerforum
Anonymous
 SFML wird das Fenster nach dem Schließen wieder eröffnet [geschlossen]

Post by Anonymous »

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

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post