Я застрял в большой ошибке с моим кодом, который я не могу открыть в первом окне своей игры после запуска! он просто открывает пробел на несколько секунд, а затем автоматически закрывается. Я не знаю, что случилось с моим кодом, потому что я следую серии обучающих программ, и мой код выглядит как код в учебниках. вот мой код:Не удается открыть окно с SDL/C++
#include "stdafx.h"
#include "FirstClass.h"
FirstClass::FirstClass(void){
bool quit = false;
window = NULL;
window = SDL_CreateWindow("Snaykie v1.0",350, 150, 800, 500, SDL_WINDOW_SHOWN);
if (window == NULL){
std::cout << "Can not open the game!" << std::endl;
}
renderer = NULL;
renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED);
evt = new SDL_Event();
//background image
txt = NULL;
txt = IMG_LoadTexture(renderer, "mainview.bmp");
rct.x = 0 ;
rct.y = 0;
rct.h = 500;
rct.w = 800;
//button start
sbutt = NULL;
sbutt = IMG_LoadTexture(renderer, "startbutton.bmp");
startrct.x = 0 ;
startrct.y = 0;
startrct.h = 100;
startrct.w = 100;
}
FirstClass::~FirstClass(void)
{
SDL_DestroyTexture(txt);
SDL_DestroyTexture(sbutt);
SDL_DestroyWindow(window);
SDL_DestroyRenderer(renderer);
delete evt;
}
//the code below is the loops that let the window stucks forever to keep opened
void FirstClass :: GameStart(void){
while (!quit && evt->type != SDL_QUIT){
SDL_PollEvent(evt);
SDL_RenderClear(renderer);
SDL_RenderCopy(renderer, txt, NULL, &rct);
SDL_RenderCopy(renderer, sbutt, NULL, &startrct);
SDL_RenderPresent(renderer);
}
}
Пожалуйста, помогите мне и спасибо, что у меня действительно большая проблема.
Большое спасибо, что это работает отлично, но есть что-то отсутствующее, которое «пока (SDL_PollEvent (& evt)! = SDL_QUIT)« Я уже исправил это. – The1Dev
@ The1Dev 'SDL_PollEvent (& evt)! = SDL_QUIT' какой это вздор? Возможно, вам следует прочитать [documentation] (https://wiki.libsdl.org/SDL_PollEvent), особенно раздел «Возвращаемое значение» и пример использования. Ваш «фиксированный» звук больше похож на «сломан». – keltar