gpt4 book ai didi

c++ - 奇怪的基本 SDL

转载 作者:行者123 更新时间:2023-11-28 03:50:28 25 4
gpt4 key购买 nike

我刚开始学习 SDL,我发现如果我初始化一个 SDL_Rect 变量,SDL_Delay 不起作用。然后,如果我在 SDL_Rect 中设置其中一个值,图像甚至不会显示(或暂停)。我不明白。我从 lazyfoo 的教程中获得了这段代码,目前我只是在弄乱它

#include <SDL/SDL.h>
#include <iostream>

using namespace std;
int main( int argc, char* args[] ){

int width = 512;
int height = 512;

//The images
SDL_Surface* source = NULL;
SDL_Surface* screen = NULL;
//Start SDL
//SDL_Init( SDL_INIT_EVERYTHING );
if( SDL_Init( SDL_INIT_EVERYTHING ) == -1 ) {
return 1;
}
//Set up screen
screen = SDL_SetVideoMode( width, height, 24, SDL_SWSURFACE );

//Load imagec
source = SDL_LoadBMP( "image.bmp");
//Apply image to screen

SDL_Rect * hello; //here is where it messes up the program
//for(int a = 0; a < width; a++){ // i was trying to make the image move around the screen/window
//hello -> x = 0;
//now -> w = 200;
//now -> h = 200;
//for(int b = 0; b < height; b++){
//now -> y = 0;
//SDL_WM_SetCaption( "ajsncnsc", NULL );
SDL_BlitSurface( source, NULL, screen, NULL );
//Update Screen
SDL_Flip( screen );
SDL_Delay( 2000 );
// }
//}

//Free the loaded image
SDL_FreeSurface( source );
//Quit SDL
SDL_Quit();
return 0;
}

最佳答案

SDL_Rect * hello; 创建一个指向 SDL_Rect指针。它指向随机内存,因为您没有为它分配任何东西。修改其成员可能会导致任何事情发生。

改用 SDL_Rect hello; - 这会创建一个实际的 SDL_Rect,您现在可以安全地进行操作,例如hello.x = 200; 无需修改您不拥有的内存。

关于c++ - 奇怪的基本 SDL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5696166/

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