2015-04-23 41 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 –