如何解决我无法在 C++ 中创建线程我搜索过,但没有发现任何错误当我尝试创建线程时,它返回 -1073740791
我真的必须制作这个线程,否则cpu会被占用太多。让我问这个问题的是,一切看起来都很好,但它返回错误 (-1073740791)。
#include <SFML/System.hpp>
#include <SFML/Window.hpp>
#include <SFML/Graphics.hpp>
#include <SFML/Audio.hpp>
#include <SFML/Network.hpp>
#include <bitset>
#include <thread>
#include <chrono>
#include <iostream>
using namespace sf;
void playerHitFunction();
std::bitset<8> gbs0;//rightButtonAplied,leftButonAplied,isItAlrreadyHitting
CircleShape player(25.f,10),enemy(25.f,ball(6.f,32);
float playerScale = 1.f,enemyScale = 1.f,playerVeLocity = 0.f,enemyVeLocity = 0.f,ballVeLocity = 0.f; Event event;
Color playerColor(0,128,192),enemyColor(192,128),ballColor(128,192,0),windowColor(64,64,64);
int main() {
RenderWindow window(sf::VideoMode(800,600),"sfml works");
goto construction0;
gameloop0:
while (window.isopen()) {
while (window.pollEvent(event)) {
if (event.type == sf::Event::Closed) {
window.close();
}
else if (Keyboard::isKeypressed(Keyboard::Down) && !gbs0[2]) {
std::thread playerHitingThread(&playerHitFunction);gbs0[2] = true;
}
else if (Keyboard::isKeypressed(Keyboard::Right) && !gbs0[0]) {
playerVeLocity += +0.18f;
gbs0[0] = true;
}
else if (!(Keyboard::isKeypressed(Keyboard::Right)) && gbs0[0]) {
playerVeLocity += -0.18f; gbs0[0] = false;
}
else if (Keyboard::isKeypressed(Keyboard::Left) && !gbs0[1]){
playerVeLocity += -0.18f; gbs0[1] = true;
}
else if (!(Keyboard::isKeypressed(Keyboard::Left)) && gbs0[1]) {
playerVeLocity += +0.18f; gbs0[1] = false;
}
}
goto objectEvents0;
afterObjectEvents0:
goto windowDraws0;
afterWindowDraws0:
continue;
}
return 0;
construction0:
player.setFillColor(playerColor); player.setorigin(25.f,25.f); player.setPosition(400.f,0.f); player.rotate(90.f);
enemy.setFillColor(enemyColor); enemy.setorigin(25.f,25.f); enemy.setPosition(400.f,600.f); enemy.rotate(90.f);
ball.setFillColor(ballColor); ball.setorigin(6.f,6.f); ball.setPosition(400.f,300.f);
goto gameloop0;
objectEvents0:
player.setScale(playerScale,playerScale); player.setFillColor(playerColor); player.move(playerVeLocity,0.f);
enemy.setScale(enemyScale,enemyScale); enemy.setFillColor(enemyColor); enemy.move(enemyVeLocity,0.f);
goto afterObjectEvents0;
windowDraws0:
window.clear(windowColor); window.draw(player); window.draw(enemy); window.draw(ball); window.display();
goto afterWindowDraws0;
//endOfLabels0:
}
void playerHitFunction() {
std::cout << "thread have opened";
while (playerScale < 1.46f) {
playerScale += 0.05f;
std::this_thread::sleep_for(std::chrono::microseconds(25000));
}while (playerScale > 1.04f) {
playerScale -= 0.05f;
std::this_thread::sleep_for(std::chrono::microseconds(25000));
}
}
按下后的满热:
D:\yazılım\kNowledge\tests\SFML_STATIC_LINKING1\x64\Release\SFML_STATIC_LINKING1.exe(进程 12260)退出,代码为 -1073740791。 按任意键关闭此窗口。 . .
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。