SDL でキーの押下を検出できるプログラムを作成しようとしています。
私の現在のコードは、他の誰かの修正版です (自分のバージョンを作成する前に動作させようとしています)。
#include "SDL/SDL.h"
#include <iostream>
using namespace std;
int main(int argc, char* argv[]) {
//Start SDL
if(0 != SDL_Init(SDL_INIT_EVERYTHING)) {
std::cout << "Well I'm screwed\n";
return EXIT_FAILURE;
}
SDL_Surface* display;
display = SDL_SetVideoMode(640, 480, 32, SDL_HWSURFACE | SDL_DOUBLEBUF);
SDL_Event event;
bool running = true;
std::cout << "Cake"; //Testing output (doesn't work)
while(running) {
std::cout << "Pie"; //Again, testing output and again doesn't work
if(SDL_PollEvent(&event)) { //I have tried this is a while statement
switch(event.type) {
case SDL_KEYDOWN:
std::cout << "Down\n"; // Have tried "<< std::endl" instead of "\n"
break;
case SDL_KEYUP:
std::cout << "Up\n";
break;
case SDL_QUIT:
running = false;
break;
default:
break;
}
}
}
//Quit SDL
SDL_Quit();
return 0;
}
このコードは、キーダウン/キーアップを検出して出力するはずですが、何も出力しません。
私の最終的な目標は、コナミ コードを検出して何かを実行することです。
上記のコードを常に更新して、使用しているものと同じにします(人々が提案したコメントを追加した場合を除く)。
また、それが役立つ場合:g++ -o myprogram.exe mysource.cpp -lmingw32 -lSDLmain -lSDL
コンパイルに使用しているコマンドです。(コマンドでわからない場合は、windows (7) を実行しています。) コンパイル時にエラーは発生しません。
私は今、出力を取得しています。これにより、私の問題はキーチェックとは何の関係もないと信じるようになります。ただし、正しくない可能性があります。