gpt4 book ai didi

C++ 和 SDL : How does SDL_Rect work exactly?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:57:41 25 4
gpt4 key购买 nike

我正在研究一些 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++ 和 SDL : How does SDL_Rect work exactly?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3929920/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com