首頁  >  問答  >  主體

关于在iOS下使用SDL的问题,求教

黄舟黄舟2719 天前295

全部回覆(2)我來回復

  • PHPz

    PHPz2017-04-17 15:53:27

    自己折騰了好久,下面是正確的姿勢,然後還在研究畫線,有用過SDL的大神求指點求鞭撻,不要憐惜我是一朵嬌花

    static SDL_Texture *texture = 0;
    ///更新界面
    void render(SDL_Renderer *renderer) {
        /* fill background in with black */
        SDL_RenderClear(renderer);
        SDL_RenderCopy(renderer, texture, NULL, NULL);
        /* update screen */
        SDL_RenderPresent(renderer);
    }
    ///初始化纹理
    void initializeTexture(SDL_Renderer *renderer) {
        SDL_Surface *bmp_surface;
        /* load the bmp */
        bmp_surface = SDL_LoadBMP("space.bmp");
        if (bmp_surface == NULL) {
            fatalError("could not load bmp");
        }
        texture = SDL_CreateTextureFromSurface(renderer, bmp_surface);
        if (texture == 0) {
            fatalError("could not create texture");
        }
        SDL_SetColorKey(bmp_surface, 1,
                        SDL_MapRGB(bmp_surface->format, 0, 0, 255));
        SDL_SetTextureBlendMode(texture, SDL_BLENDMODE_BLEND);
        /* free up allocated memory */
        SDL_FreeSurface(bmp_surface);
    }
    
    void loadBMP(void) {
        SDL_Window *window;
        SDL_Renderer *renderer;
        
        /* 初始化 SDL */
        if (SDL_Init(SDL_INIT_VIDEO) < 0) {
            fatalError("Could not initialize SDL");
        }
        /* 创建window */
        window = SDL_CreateWindow("加载背景图", 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT,
                                  SDL_WINDOW_OPENGL |
                                  SDL_WINDOW_BORDERLESS);
    
        /* 设置渲染器 */
        renderer = SDL_CreateRenderer(window, -1, 0);
        
        initializeTexture(renderer);
        
        int done = 0;
        while (!done) {
            SDL_Event event;
            while (SDL_PollEvent(&event)) {
                if (event.type == SDL_QUIT) {
                    done = 1;
                }
            }
            render(renderer);
            SDL_Delay(1000);
        }
        /* cleanup */
        SDL_DestroyTexture(texture);
        /* shutdown SDL */
        SDL_Quit();
    }

    回覆
    0
  • 怪我咯

    怪我咯2017-04-17 15:53:27

    請問你是用什麼打包SDL靜態庫的,安照官方文檔的做法,打包會提示gcc不能用

    回覆
    0
  • 取消回覆