为什会闪退
c4droid吧
全部回复
仅看楼主
level 7
匿名虚伪 楼主
#include<SDL2/SDL.h>
#include<SDL2/SDL_image.h>
SDL_Window *Window =NULL;
SDL_Surface *Surface = NULL;
SDL_Texture * Texture = NULL;
SDL_Renderer *Renderer = NULL;
//初始化SDL_Init 窗口 渲染器
int Init()
{
SDL_Init ( SDL_INIT_VIDEO);
Window = SDL_CreateWindow( "SDL_Window",SDL_WINDOWPOS_CENTERED,SDL_WINDOWPOS_CENTERED, 240,400,SDL_WINDOW_SHOWN);
if ( NULL == Window )
return -1;
//为窗口创建渲染器
Renderer = SDL_CreateRenderer ( Window,-1,SDL_RENDERER_ACCELERATED);
if (NULL == Renderer)
return -2;
return 0;
}
int Load_Surface()//加载表面
{
//IMG_Init (IMG_INIT_PNG);IMG初始
//化,可有可无
Surface = IMG_Load ("enemy.png");
if ( NULL==Surface);
return -1;
Uint32 color_key = SDL_MapRGB ( Surface->format,4,4,4);
SDL_SetColorKey( Surface,SDL_TRUE,color_key);
return 0;
}
void Destroy()
{
SDL_FreeSurface( Surface);
SDL_DestroyWindow(Window);
SDL_DestroyRenderer(Renderer);
SDL_DestroyTexture(Texture);
SDL_Quit();
}
int main ( int args, char *argv[])
{
if ( Init() !=0 )
return -1;
if ( Load_Surface() != 0)
return -2;
SDL_Point center;
center.x=0;
center.y=0;
int angle = 30;
SDL_Rect Cut,Box;
Cut.x=0;
Cut.y=0;
Cut.w=28;
Cut.h=28;
Box.x=50;
Box.y=50;
Box.w=100;
Box.h=100;
Texture=SDL_CreateTextureFromSurface(Renderer, Surface);
SDL_RenderClear(Renderer);
SDL_RenderCopyEx(Renderer, Texture, &Cut,&Box,angle,¢er,SDL_FLIP_NONE);
//SDL_FLIP_HORIZONTAL水平翻转
//SDL_FLIP_VERTICAL垂直翻转
//filp轻弹轻击快速翻转
SDL_RenderPresent(Renderer);
SDL_Delay(5000);
Destroy();
return 0;
}
2016年06月05日 04点06分 1
level 11
25行:if ( NULL==Surface);
//多出了一个分号,去掉分号
2016年06月07日 07点06分 3
level 11
不管IMG_Load是否成功都会直接return
2016年06月07日 07点06分 4
1