2015-02-08 2 views
0

Я пытаюсь запустить этот код, но он продолжает давать мне ошибку. Я скопировал SDL2_image.lib в папку отладки, но напрасно. Я нахожусь в начале программирования, поэтому, пожалуйста, будьте терпеливы.Ошибка C++ SDL Ошибка Microsoft Visual Studio 2013

Ошибки: Ошибка 1 Ошибка C3861: «IMG_LoadTexture»: идентификатор не найден
Ошибка 2 IntelliSense: идентификатор «IMG_LoadTexture» неопределен

#include<SDL/SDL.h> 
#include<iostream> 
using namespace std; 


int main(int argc, char** argv) 
{ 
bool quit = false; 

//*Initializing Window; 
SDL_Init(SDL_INIT_VIDEO); 
SDL_Window* window = NULL; 
window = SDL_CreateWindow("Game Test", 100, 100, 640, 480, SDL_WINDOW_SHOWN | SDL_WINDOW_RESIZABLE); 

//*If game Crushes; 
if (window == NULL) 
{ 
    cout << "The game window is not working"; 
} 

//*Creating Update Function 
SDL_Renderer* render = NULL; 
render = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED); 
SDL_Event* mainEvent = new SDL_Event(); 
//*End Update Function 

//*Adding Textures; 
SDL_Texture* grass_image = NULL; 
grass_image = IMG_LoadTexture(render, "grass.bmp"); 

//*Creating a Sprite; 
SDL_Rect grass_rect; 
grass_rect.x = 10; 
grass_rect.y = 50; 
grass_rect.w = 250; 
grass_rect.h = 250; 



//*Content Of the Window; 
while (!quit && mainEvent->type!=SDL_QUIT) 
{ 
    SDL_PollEvent(mainEvent); 
    SDL_RenderClear(render); 
    SDL_RenderCopy(render, grass_image, NULL, &grass_rect); 
    SDL_RenderPresent(render); 
} 
//*End Window Content 

//*Memory Cleaning 
SDL_DestroyWindow(window); 
SDL_DestroyRenderer(render); 
delete mainEvent; 
//*End Memory Cleaning 

return 0; 

} 
+0

Вы должны включить 'заголовок SDL_image' слишком – emlai

ответ

0

У вас не хватает, чтобы включить заголовок, который содержит декларацию IMG_LoadTexture():

#include <SDL/SDL_image.h> 

Это отдельная библиотека расширения для SDL, и, кроме того, включая этот заголовок, вы также должны связать эту библиотеку с вашим проектом.

+1

В дополнение к этому они должны инициализировать библиотеку с' IMG_Init (IMG_INIT_JPG | IMG_INIT_PNG | IMG_INIT_TIF) ' Заметьте, что вам не требуется SDL_image для растровых изображений (я дону Не думаю, что SDL_image даже поддерживает растровые изображения) – Zammalad

+1

@ Zammalad THX для получения дополнительной информации. Я не эксперт в SDL, просто обманывал это вместе, опираясь на некоторые довольно простые исследования Google. Не стесняйтесь редактировать ответ и добавлять эту информацию. (дал мой ответ на wiki сообщества сейчас) –

Смежные вопросы