Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
Entre para seguir isso  
jefferson2008.1

problemas com o allegro no linux

Recommended Posts

boa tarde galera

estou aprendendo a utilizar a blibioteca allegro e estou com problema ao carrega imagem

ja usei todos tutoriais possiveis e sempre o mesmo erro

este daqui:

Shutting down Allegro due to signal #11

Falha de segmentação

deixou ai um exemplo de um codigo que usei de um tutorial

e peço para quem poder me da uma luz , uma ajuda a entender onde esta a falha


#include <allegro.h>

int main()
{
allegro_init();
install_keyboard();
set_color_depth(32);
set_gfx_mode(GFX_AUTODETECT_WINDOWED,640,480,0,0);
PALETTE pal;
BITMAP *img = load_bitmap("/desktop/cao_e_gato2.jpg",pal);
while(!key[KEY_ESC])
{ clear_bitmap(img);
textout(screen, font, "Exemplo", 30,20, makecol(255,0,0 ) );
draw_sprite(screen, img, 30,30 );
};
return 0;
}

-_-

Compartilhar este post


Link para o post
Compartilhar em outros sites

"BITMAP *img = load_bitmap("/desktop/cao_e_gato2.jpg",pal); "

tu tem certeza absoluta que existe esta imagem neste caminho?

olha que desktop que eu saiba so existe no home a não ser se você criou na raiz

se for no home então a linha seria esta:

BITMAP *img = load_bitmap("~/desktop/cao_e_gato2.jpg",pal);

tenta assim

tchau!

Compartilhar este post


Link para o post
Compartilhar em outros sites

continuo com o mesmo problema

estou aprendendo a mexer no linux

e na biblioteca allegro

infelizmente toda imagem que tento carregar com a biblioteca não da certo

ja testei muitos codigos que achei por ai e nenhum da certo aqui no linux

so no windws

me ajuda ai galera a ver onde esta o erro

a pagina abri e fechar logo depois indicando o seguinte erro

^[[3~Shutting down Allegro due to signal #11

Falha de segmentação

#include <allegro.h>

void init();

void Menu();

int main()

{

init();

Menu();

return 0;

}

END_OF_MAIN()

void init()

{

int depth, res;

allegro_init();

set_color_depth(32);

res = set_gfx_mode(GFX_AUTODETECT_WINDOWED, 640, 480, 0, 0);

if (res != 0) {

allegro_message(allegro_error);

exit(-1);

}

install_timer();

install_keyboard();

install_mouse();

}

void Menu()

{

// Carrega todos os BITMAPs

BITMAP *fundo = load_bitmap("~/desktop/fundo.png", NULL);

BITMAP *jogar = load_bitmap("~/desktop/jogar.png", NULL);

BITMAP *conf = load_bitmap("~/desktop/conf.jng", NULL);

BITMAP *sair = load_bitmap("~/desktop/sair.jng", NULL);

BITMAP *seta = load_bitmap("~/desktop/seta.png", NULL);

// Cria o BITMAP usado no DoubleBuffering

BITMAP *buffer = create_bitmap(640, 480);

// Variável que conterá a opcao ativa

int op;

while(!key[KEY_ESC])

{

clear(buffer);

blit(fundo, buffer, 0, 0, 0, 0, 640, 480);

draw_sprite(buffer, jogar, 250, 300);

draw_sprite(buffer, conf, 250, 350);

draw_sprite(buffer, sair, 250, 400);

if(op == 0)

{

draw_sprite(buffer, seta, 200, 400);

}

else if(op == 1)

{

draw_sprite(buffer, seta, 200, 400);

}

else if(op == 2)

{

draw_sprite(buffer, seta, 200, 400);

}

if(key[KEY_UP])

{

if(op > 0 && op < 3) op--;

}

if(key[KEY_DOWN])

{

if(op > 0 && op < 3) op++;

}

if(key[KEY_ENTER])

{

if(op == 1)

{

// Executa o codigo de jogar

}

else if(op == 2)

{

// Executa o codigo de congifuracoes

}

else if(op == 3)

{

// Executa o codigo de sair

}

}

blit(buffer, screen, 0, 0, 0, 0, 640, 480);

//se não for adicionada esta chamada o programa fica em um while true

//um estado de espera ocupada que consome muita cpu

readkey();

}

destroy_bitmap(fundo);

destroy_bitmap(jogar);

destroy_bitmap(conf);

destroy_bitmap(sair);

destroy_bitmap(seta);

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara, posta com código não como citação se não fica impossivel te ajudar...

Seguinte este código-fonte você pegou da apostila do adriano de c(foi essa né http://equipe.nce.ufrj.br/adriano/c/apostila/allegro/docs/programa.html, senão dá uma olhada aqui), e pelo que eu vi nesta apostila (já tinha estudado nela) este fonte era pra demonstrar como fazer um menu e ela está meio inacabada d+ então te recomendo tentar pegar outro fonte e rodar ou passar o gdb que você verá onde é que está com falha na segmentação.

se você não sabe usar o gdb aqui está: www.vivaolinux.com.br/artigo/Aprendendo-a-utilizar-o-GNU-Debugger-(parte-1)/

eu acho melhor mesmo é que você tente rastrear este erro com o gdb...

boa sorte

OBS: Um exemplo de como está inacabada este fonte na parte da variavel op ela não tem definição nenhuma enquanto ela é usada logo abaixo para uma comparação como se ela já tivesse sido zerada um vez, pode ser isso que esteja dando falha na segmentação

Editado por Fenix D'agua

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Entre para seguir isso  





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

×