首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Eclipse中SDL和SDL_image程序什么都不做

在Eclipse中SDL和SDL_image程序什么都不做
EN

Stack Overflow用户
提问于 2018-04-25 10:41:28
回答 1查看 77关注 0票数 0

我一直试图使一个PNG图像出现在屏幕上的SDL窗口.我正在使用Eclipse。SDL.h和SDL_image.h似乎都有正确的链接,因为函数在编译器上弹出颜色。然而,当我运行我的代码时,实际上什么都没有发生。编译器中没有错误,没有注释,没有。窗户没有出现。如果有人能在这件事上帮我,我会非常感激的。

此外,SDL以前曾在我的计算机上工作过(不使用SDL_image) --在其中,我运行了一个非常好的粒子模拟。

我的代码:

代码语言:javascript
复制
#include <iostream>
#include "SDL.h"
#include "SDL_image.h"

using namespace std;

SDL_Window *m_window; //Window upon which the game will be displayed.
SDL_Renderer *m_renderer; //Renderer used to draw the objects on the window.
SDL_Texture *playerTex;

int SCREEN_WIDTH = 600;
int SCREEN_HEIGHT = 600;

int main(int argc, char* args[]) {
    if (SDL_Init(SDL_INIT_VIDEO) < 0) {
        cout << "Video init failed" << endl;
        return 1;
    }

    //Creates the actual SDL-window and stores it in the m_window variable.
    m_window = SDL_CreateWindow("Marko Beocanin SDD Project",
    SDL_WINDOWPOS_UNDEFINED,
    SDL_WINDOWPOS_UNDEFINED, SCREEN_WIDTH, SCREEN_HEIGHT,
            SDL_WINDOW_FULLSCREEN);

    //Error-checking method that determines if SDL could not create a window - returns false if unsuccessful.
    if (m_window == NULL) {
        cout << "Window Creation failed" << endl;

        SDL_Quit();
        IMG_Quit();
        return 2;
    }

    //Creates an SDL-Renderer: a tool used to actually draw objects on the Window
    m_renderer = SDL_CreateRenderer(m_window, -1, 0);

    //Error-checking method that determines if SDL could not create a renderer - returns false if unsuccessful.
    if (m_renderer == NULL) {
        cout << "Renderer creation failed." << endl;
        SDL_DestroyWindow(m_window);
        SDL_Quit();
        IMG_Quit();
        return 3;
    }

    SDL_Surface *tmpSurface = IMG_Load("img.png");
    playerTex = SDL_CreateTextureFromSurface(m_renderer, tmpSurface);
    SDL_FreeSurface(tmpSurface);

    SDL_RenderClear(m_renderer);
    SDL_RenderCopy(m_renderer, playerTex, NULL, NULL);
    SDL_RenderPresent(m_renderer);

    SDL_Delay(2000);
    SDL_DestroyWindow(m_window);
    SDL_Quit();
    IMG_Quit();


    return 0;
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-28 12:33:36

我遇到的问题是我使用了错误的SDL_image库--我使用的是x64而不是x86,这意味着它本身没有抛出错误,只是不能正常工作!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50020199

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档