Ir ao conteúdo

Posts recomendados

Postado

Estou tendo esse erro na progamação, sou novato e ficaria grato se alguém me ajudasse.

 

#include <iostream>
#include <SDL.h>
int main(int argc, char*** argv[])
{
    SDL_Window *window = NULL;
    SDL_Surface *surface = NULL;
    SDL_Event Event;
    if(SDL_Init(SDL_INIT_VIDEO) < 0)
        std::cout << "Erro ao iniciar o video! Codigo do erro: " << SDL_GetError() << std::endl;
    else
    {
        window = SDL_CreateWindow("titulo da janela", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, 800, 600, SDL_WINDOW_SHOWN,SDL_WINDOW_RESIZABLE);
        if(window = NULL)
            std::cout << "Erro de criar janela! Codigo de erro: " << SDL_GetError() << std::endl;
        else
            {
                surface = SDL_GetWindowSurface(window);
        }
    }
    bool close = false;
    while(!close){
        while(SDL_PollEvent(&Event) != 0){
            if(Event.type == SDL_QUIT)
                close = true;
            //Função principal do jogo
    surface = SDL_GetWindowSurface(window);
            //Fim da função principal do jogo
        }
    }

    SDL_DestroyWindow(window);
    SDL_Quit();
    return 0;
}
 

Erro:

too many arguments to function 'SDL_Window* SDL_CreateWindow(const char*, int, int, int, int, Uint32)'|

 

  • Curtir 1
Postado

Quando uma função requer um argumento Uint32, significa que pode ser NULL, ou vários argumentos, separador por |, no seu caso você separou os argumentos com virgula dando a entender que eram outros argumentos usados pela chamada, só que o erro informou ser muitos argumentos... traduzindo fica fácil perceber...

 

Exemplo:

SDL_CreateWindow(titulo,x,y,w,h, a|a2|a3|a4);

 

Correção:

SDL_CreateWindow("titulo da janela", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, 800, 600, SDL_WINDOW_SHOWN|SDL_WINDOW_RESIZABLE);

Postado

Tem um erro ali na sua função main e você criou a superfície 2x uma fora do loop e outra dentro do loop principal.

 

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

int main(int argc, char *argv[])
{
    SDL_Window *window = NULL;
    SDL_Surface *surface = NULL;

    if(SDL_Init(SDL_INIT_VIDEO) < 0){
        std::cout << "Erro ao iniciar o video! Codigo do erro: " << SDL_GetError() << std::endl;
        return -1;
    }

    window = SDL_CreateWindow("titulo da janela", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, 800, 600, SDL_WINDOW_SHOWN | SDL_WINDOW_RESIZABLE);

    if(window == NULL){
        std::cout << "Erro de criar janela! Codigo de erro: " << SDL_GetError() << std::endl;
        return -1;
    }

    bool close = false;
    SDL_Event Event;

    while(!close){
        while(SDL_PollEvent(&Event) != 0){
            if(Event.type == SDL_QUIT)
                close = true;
            //Função principal do jogo
            //Fim da função principal do jogo

        }
        surface = SDL_GetWindowSurface(window);
        SDL_FillRect(surface, NULL, SDL_MapRGB( surface->format, 0xFF, 0xFF, 0xFF));
        SDL_UpdateWindowSurface(window);
    }

    SDL_DestroyWindow(window);
    SDL_Quit();

    return 0;
}

 

Recomendo você dar uma olhada nos tutoriais do site LazyFoo.

http://lazyfoo.net/tutorials/SDL/

 

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!