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

[Allegro] funkcje + pliki

Ostatnio zmodyfikowano 2009-08-03 21:14
Autor Wiadomość
Diego
Temat założony przez niniejszego użytkownika
[Allegro] funkcje + pliki
» 2009-08-03 20:45:56
Mam pytanie odnosnie funkcji ktore znajduja sie w innych plikach i definiowania wskaznikow na bitmapy.
A mianowicie deklaracja bufora i bitmapy 'helmet' znajduje sie w pliku 'A', natomiast wyswietlanie w pliku 'B'. Teraz nasowa sie pytanie w jaki sposob przeslac dane o bitmapach do funkcji by nie wyskakiwal error. (jak na moj gust BITMAP * helmet = NULL; musi znajdowac sie w pliku 'A' (czyli glownym ) poniewaz w momencie zwalniania pamieci rowniez wyskoczyl by blad, pozatym wywolanie funkcji znajduje sie w petli)

Plik A:
C/C++
#include <allegro.h>
int Helmet( int id );
int main()
{
    BITMAP * bufor = NULL;
    BITMAP * helmet = NULL;
    int identyfikator = 1;
   
    while( 1 )
    {
        ...//jakis tam kod
       
        Helmet( identyfikator );
       
        ...//jakis tam kod
    }
   
}
plik B:
C/C++
#include <allegro.h>

extern int identyfikator;

int Helmet( int id )
{
   
    switch( identyfikator )
    {
    case 1:
        {
            masked_blit( helmet, bufor, 0, 0, 79, 297, 34, 34 );
            break;
        }
    }
}
Powyzszy program ma za zadanie rozpoznawanie identyfikatora itemu w grze i wyswietlanie go w odpowiednim miejscu w ekwipunku, program tez liczy ile mamy obrony gdy zalozymy helm ale tego juz nie dopisywalem :)
P-8985
DejaVu
» 2009-08-03 21:11:13
Plik A musi includować plik B.
P-8986
DejaVu
» 2009-08-03 21:18:33
Nie chciało mi się tego pisać :) w kursie jest to opisane.
P-8987
Diego
Temat założony przez niniejszego użytkownika
» 2009-08-03 21:30:52
"A wystarczy wydzielić deklaracje do pliku .h i tego waca #include'ować, i wszystko działa tak, jak powinno."

Jakos jasniej mozna? :D

Nie da sie tego zrobic tak ze przesylam te dane przez argumenty funkcji?
P-8988
DejaVu
» 2009-08-03 22:05:37
Myślę, iż należy tutaj zacząć od tego, że chcesz podzielić kod programu na kilka plików. Aby to zrobić musisz zapoznać się z odpowiednimi informacjami zawartymi w kursie. Lekcja: http://kursy.ddt.pl/?LessonId=117. To jak kod sobie później poskładasz to już inna bajka i od Ciebie będzie zależało co będziesz przekazywał jako argumenty funkcji, a co nie.

/edit:
a z Fanaelem dyskusja rzadko kiedy jest konstruktywna - zamiast uzupełniać informacje to czepia się wszystkiego co się da i trzeba go dusić przez n' postów żeby wydukał pełną informację na której zależy użytkownikami. Do niego nie dociera, że rzucenie samych terminów dla osoby, która się uczy to za mało i są potrzebne przykłady. Znajdziesz je w tej lekcji, którą Ci podałem. Myślę, że powinna Ci ona odpowiedzieć na Twoje pytanie.
P-8991
manfred
» 2009-08-03 21:14:03
.
P-19129
« 1 »
  Strona 1 z 1