[解決済み] C++とSDL:SDL_Rectは具体的にどのように機能するのですか?
2022-02-11 01:27:11
質問
SDLに取り組んでいるのですが、読み込んだBMPの場所を設定しようとしたときに問題が発生しました。
以下はそのコードです。
while(event.type != SDL_QUIT) //The game loop that does everything
{
SDL_Rect *location;
location = SDL_Rect(600,400,0,0);
SDL_PollEvent(&event); //This "polls" the event
//Drawing stuff goes here
SDL_BlitSurface(zombie, NULL, buffer, &location);
SDL_Flip(buffer); //Draw
}
コンパイルされません。何が間違っているのでしょうか?
解決方法は?
SDLはC言語で書かれているので
SDL_Rect
は単なる構造体です。
これを動的に割り当てるには
new
という通常の関数の呼び出しとして解釈されます。
SDL_Rect
を返します。
SDL_Rect*
.
この場合、動的割り当てを使用する理由はありません。構造体の初期化構文を使用すればよいのです(構造体のメンバの宣言順序に注意してください)。
SDL_Rect location = {0,0,600,400}; // or
SDL_Rect location{0,0,600,400}; // for C++11 & up (h/t @HolyBlackCat)
または、構造体の各メンバーを明示的に初期化します(誰かが構造体のメンバーの順序を変更することを決めた場合に備えてより安全です)。
SDL_Rect location;
location.h = 600;
location.w = 400;
location.x = 0;
location.y = 0;
関連
-
[解決済み】C++の変数はイニシャライザーを持っているが、不完全な型?
-
[解決済み] 既に.objで定義されている-二重包含はない
-
[解決済み] C++とCの融合 - #ifdef __cplusplus はどのように機能するのか?
-
[解決済み] 1ビットのセット、クリア、トグルはどのように行うのですか?
-
[解決済み] C++11では、標準化されたメモリモデルが導入されました。その意味するところは?そして、C++プログラミングにどのような影響を与えるのでしょうか?
-
[解決済み] Linux上で動作するC++コードのプロファイリングを行うにはどうすればよいですか?
-
[解決済み] template "と "typename "キーワードはどこに、なぜ入れなければならないのですか?
-
[解決済み] nullptrとは一体何ですか?
-
[解決済み] コンパイル・リンクはどのように行われるのですか?
-
[解決済み】__attribute__((constructor))は具体的にどのように機能するのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】 unsigned int vs. size_t
-
[解決済み】コンストラクターでのエラー:識別子を期待されますか?
-
[解決済み】Visual Studio 2015で「非標準の構文; '&'を使用してメンバーへのポインターを作成します」エラー
-
[解決済み】C++ - 解放されるポインタが割り当てられていないエラー
-
[解決済み】関数名の前に期待されるイニシャライザー
-
[解決済み】Visual Studio 2013および2015でC++コンパイラーエラーC2280「削除された関数を参照しようとした」が発生する
-
[解決済み] gdbを使用してもデバッグシンボルが見つからない
-
[解決済み】 while(cin) と while(cin >> num) の違いは何ですか?)
-
[解決済み】システムが指定されたファイルを見つけられませんでした。
-
[解決済み】デバッグアサーションに失敗しました