2015-04-23 43 views
1

当我运行这个它只是显示黑屏,如果我放在最后SDL_GetError()它打印一个空行.....图片没有出现在SDL

关于如何解决任何想法这个?

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

class character { 

public: SDL_Rect src, cur; 
public: SDL_Texture *image; 

void setSrc(int x, int y, int w, int h) { 

    src.x = x; 
    src.y = y; 
    src.w = w; 
    src.h = h; 

} 

void setCur(int x, int y, int w, int h) { 

    src.x = x; 
    src.y = y; 
    src.w = w; 
    src.h = h; 

} 

}; 

int main(int argc, char* argv[]) { 

bool in = true; 
character p1, p2, ball; 
SDL_Window *window = 0; 
SDL_Renderer *renderer = 0; 
SDL_Surface *screen, *imageLoader; 

SDL_Init(SDL_INIT_VIDEO); 

window = SDL_CreateWindow("Pong",SDL_WINDOWPOS_CENTERED,SDL_WINDOWPOS_CENTERED, 800, 600, SDL_WINDOW_SHOWN); 

renderer = SDL_CreateRenderer(window, -1, 0); 

p1.setSrc(0, 0, 100, 500); 
p1.setCur(0, 0, 100, 500); 

imageLoader = IMG_Load("/home/donaldo/Documents/Games/Images/player.bmp"); 

p1.image = SDL_CreateTextureFromSurface(renderer, imageLoader); 

SDL_RenderCopy(renderer, p1.image, &p1.src, &p1.cur); 

SDL_RenderPresent(renderer); 

SDL_Delay(3000); 

return 0; 

}

回答

1

您的setCur()功能的错字。我假设你想要再次设置cur矩形,而不是src

另外,没有关系,但最好的做法是在完成分配时释放分配的表面和纹理。

+0

它的工作,谢谢你:D –