こんにちは、私は Homebrew 開発を切り替えるのが初めてです。Switch Homebrew 用の SDL2 から始めています。devout pro をダウンロードしてインストールしました。そして、graphics sdl2-simple example c++ プログラムを開いてコンパイルしました。正常にコンパイルされ、.nro ファイルが生成されます。それから私はそれを Yuzu エミュレーターにドロップし、ジョイコン入力とともに期待どおりに正常に動作しました。しかし、エミュレーターで起動したときに SDL ウィンドウの背景色が変わるように、そのプログラムをもっと単純にする必要があります。私のコードには不要なため、不要なメソッド (特定のパターンで長方形を描画するユーザー定義のメソッド) を削除して、サンプル コードを変更しました。次に、それをコンパイルすると、正常にコンパイルされ、.nro ファイルが生成されます。また、MakeFile の作成方法がわからないため、元の sdl2-simple の例と同じ Make ファイルを使用しました。しかし、ゆずエミュレーターでドラッグアンドドロップすると、プログレスバーの起動でスタックします。起動時にウィンドウの色が変わるようにコードを変更する方法。起動時のコードは単純で、ウィンドウの色を白に設定する必要があります。これが私のコードです。成功を完全にコンパイルし、.nroファイルを生成します。しかし、ゆずにドロップすると、プログレスバー画面の起動でスタックします。どこが間違っているのかわからない
#include <stdlib.h>
#include <stdio.h>
#include<iostream>
#include <SDL.h>
#include<SDL2/SDL.h>
int main(int argc, char *argv[])
{
SDL_Init(SDL_INIT_EVERYTHING);
SDL_Window* Window = NULL;
Window = SDL_CreateWindow("demo",SDL_WINDOWPOS_CENTERED,SDL_WINDOWPOS_CENTERED,800,450,SDL_WINDOW_SHOWN | SDL_WINDOW_OPENGL);
if(Window == NULL)
{
std::cout<<"Error in window initialization\n"<<SDL_GetError()<<"\n";
return -1;
}
for (int i = 0; i < 2; i++) {
if (SDL_JoystickOpen(i) == NULL) {
SDL_Log("SDL_JoystickOpen: %s\n", SDL_GetError());
SDL_Quit();
return -1;
}
}
SDL_Surface* Screen = SDL_GetWindowSurface(Window);
bool running = true;
SDL_Event event;
Uint32 white = SDL_MapRGB(Screen->format,255,255,255);
SDL_FillRect(Screen,NULL,white);
SDL_UpdateWindowSurface(Window);
while (running)
{
while (SDL_PollEvent(&event))
{
if(event.type == SDL_QUIT)
{
running = false;
break;
}
}
}
SDL_DestroyWindow(Window);
SDL_Quit();
return 0;
}