2013-10-20 2 views
1

그래서 Xcode에서 SDL 2를 사용하여 몇 가지 기본 기능을 시험해 보았습니다. 이미지 파일 경로를 올바르게 가져 오는 방법을 알 수 없습니다. 나는 어떤 파일을 복사 할지를 빌드 단계에 알리기위한 조언을 이끌어 낸 주제에 대해 조사를 해왔다. 그게 날 도와주지 않았어.xcode5의 SDL 이미지 페이지

// 
// Image.h 
// SDLTest 
// 
// Created by Aaron McLeod on 2013-10-17. 
// Copyright (c) 2013 Aaron McLeod. All rights reserved. 
// 

#ifndef SDLTest_Image_h 
#define SDLTest_Image_h 

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

class Image { 
public: 
    static SDL_Texture* load_image(const char * filename, SDL_Renderer* renderer) { 
     SDL_Surface* loaded_image = nullptr; 
     SDL_Texture* texture = nullptr; 

     loaded_image = SDL_LoadBMP(filename); 
     if(loaded_image != nullptr) { 
      texture = SDL_CreateTextureFromSurface(renderer, loaded_image); 
      SDL_FreeSurface(loaded_image); 
      std::cout << "loaded image" << std::endl; 
     } 
     else { 
      std::cout << SDL_GetError() << std::endl; 
     } 

     return texture; 
    } 
}; 

#endif 

다른 조건을 당한다 그러나

enter image description here

enter image description here

, 내가 그렇게 같은 파일을 잡아하려고 : 여기에 파일 구조의 측면 & 설정에서 현재 내가 무엇을의 , 그리고 내가 파일을 찾을 수 없다는 오류가 나타납니다. 내가 통과 한 문자열은 "resources/paddle.png"

답변

1

입니다. SDL_LoadBMP()에서 PNG 파일을로드하려고합니다. SDL_LoadBMP()는 BMP 파일 만로드 할 수 있으므로 작동하지 않습니다.

SDL2를 사용하는 응용 프로그램에서 PNG 파일을로드하려면 SDL2_image 프레임 워크를 사용하십시오. Mac 버전의 SDL2_image는 앱 번들의 Resources 폴더에있는 이미지 파일을 찾도록 설정됩니다. Copy Bundle Resources 빌드 단계에 이미지 파일을 넣으면 SDL2_image가 파일을로드 할 수 있어야합니다. 스크린 샷에 표시된 파일 복사 빌드 단계가 필요하지 않습니다.

+0

비트 맵 일이 의미가 있으며, SDL2_image를 움켜 쥐었습니다. 그래서 나는 스크린 샷의 폴더 이름을 '리소스'로 변경하여 안전하게 만들었습니다. 번들 리소스를 복사하기위한 빌드 단계를 추가했습니다. 그러나 경로는 여전히 해결되지 않습니다. 나는''resources/paddle.png ''와''paddle.png "'를 모두 시도했다. 어떤 아이디어? 다시 한번 감사드립니다 :) – agmcleod

+0

프로젝트 탐색기 스크린 샷을 보면 앱 번들을 생성하지 않는 명령 줄 프로젝트를 만든 것처럼 보입니다. .h, .m 및 .xib 파일을 제거하고 SDL 프레임 워크, 소스 코드 파일 및 이미지 파일을 프로젝트에 추가하는 방법으로 Cocoa 응용 프로그램 프로젝트를 만드는 것이 좋습니다. Cocoa 프로젝트는 앱 번들을 생성합니다. 복사 번들 리소스 빌드 단계에서 적절한 응용 프로그램 번들과 paddle.png 파일을 사용하여 파일을 paddle.png로로드 할 수 있어야합니다. –