1

こんにちは、私は 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;
}

コンパイル

エミュレーターで立ち往生

4

0 に答える 0