Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[DevCpp] [Allegro] Problem z aplikacją.

Ostatnio zmodyfikowano 2009-07-02 20:44
Autor Wiadomość
Exequter
Temat założony przez niniejszego użytkownika
[DevCpp] [Allegro] Problem z aplikacją.
» 2009-07-02 19:09:34
Witam, może mi ktoś powiedzieć dlaczego ta aplikacja crashuje zaraz po uruchomieniu (wystąpił problem z aplikacja, bla bla bla)? Wiem, że wywołuje to masked_blit, ale powinien przecież działać (próbowałem też ze zwykłym blit).

Link do kodu programu - http://wklej.org/id/115331/

klient.h zawiera:
#include <allegro.h>
#include <alpng.h>

BITMAP *b1;
BITMAP *b2;
BITMAP *b3;
BITMAP *b4;
BITMAP *b5;

Jezeli wszystko napisze w jednej funkcji program dziala normalnie :o
P-8147
malan
» 2009-07-02 19:20:03
Rozumiem, że plik klient.h w całości wygląda tak:
C/C++
#ifndef klient_hpp //klient_h
#define klient_hpp

#include <allegro.h>
#include <alpng.h>

BITMAP * b1;
BITMAP * b2;
BITMAP * b3;
BITMAP * b4;
BITMAP * b5;

#endif
?
P-8149
Exequter
Temat założony przez niniejszego użytkownika
» 2009-07-02 19:25:17
Nie mialem tych definicji, ale po podmienieniu nadal nie działa :/
Wystarczy, że załaduje bitmapę w mainie i wszystko śmiga, ale to bedzie bardzo nieczytelne kiedy będe miał dużo tych bitmap, nawet bede to przenosil do innego pliku .cpp dlatego zalezy mi na rozwiazaniu tego problemu.

edit: probowalem tez tak ->  http://wklej.org/id/115366/
I nadal crashuje.
P-8150
DejaVu
» 2009-07-02 20:40:27
Z tego co napisałeś nic nie wynika.

/edit:
bitmapy ładujesz do zmiennych lokalnych funkcji, które giną zaraz po wyjściu z niej, tak więc program Ci się krzaczy bo wskaźniki w zmiennych globalnych nie istnieją.
P-8156
Exequter
Temat założony przez niniejszego użytkownika
» 2009-07-02 20:42:24
Jak to nic nie wynika?:E

Ok, poradziłem sobie. Jezeli ktos by mial podobny problem, to wrzucam kod (uzylem pliku .dat do przechowywania obrazkow):

http://wklej.org/id/115375/
P-8157
Tombol
» 2009-07-02 20:44:12
Miałem kiedyś problem z masked blit nie pamiętam czemu ale chyba dlatego że był on w funkcji ; d
Może zobacz czy jak zrobisz ją inline to by działało ; d
Zresztą jakoś dziwnie to robisz

masked_blit((BITMAP*) giera[numer].dat, screen, 0, 0, 0, 0, ((BITMAP*) giera[numer].dat)->w, ((BITMAP*) giera[numer].dat)->h); 


Zresztą tak jak pisze w documentation trzeba mieć wskaźnik do BITMAP'y a u Ciebie jest to (chyba) w innym pliku co też nie wiem czy jest dobrym pomysłem ; d
P-8158
« 1 »
  Strona 1 z 1