私はもともとglfwを使って自分のゲームを書いていました。しかし、それはアンドロイドの移植性の欠如のために私はSDLと私のglfwコードのすべてを置き換える必要があるので、SDLは移植性が高いです。埋め込みwhile_loopを使用せずにSDLでイベントを確認できますか?
glfwフレームの作業を使用していた私のオリジナルのゲームループは非常に辛かったです。ここには:
// game loop
while (!glfwWindowShouldClose(window)) {
//if-else statements that create
//the games state machine
//player input is received here
//rendering done here
}
おそらく、このゲームループを書く良い方法がありますが、そのポイントはゲームプロトタイプのために働いたコードです。
しかし、今私はSDLに切り替えていますが、問題が発生しました。常にイベントをチェックするために、SDL_Eventをwhileループに配置する必要があるようです。そしてこのwhile_loopは別のwhile_loopの中にあります。だから、私のコードは次のようになります:
while(!Quit) {
SDL_Event event;
while(SDL_PollEvent(&event)) {
//if-else statements that create
//the games state machine
//player input is received here
//rendering done here
}
}
while_loop内のこのwhile_loopは、ゲームのレンダリングを完全に台無しにしました!私は今、ちらつきになっています!先ほどのglfwのように、このコードをただ一つのwhile_loopで表現する方法はありますか?または、埋め込みwhile_loopを使用せずにイベントをチェックする方法はありません
は 'SDL_PollEvent()'ループはただのイベントに対処するべきではないでしょうか。あなたのレンダリングコードとそのようなものは、外側のループ内にあるべきです...イベントを処理するときにレンダリングするなど... – Dmitri