[Allegro] funkcje + pliki
Ostatnio zmodyfikowano 2009-08-03 21:14
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: #include <allegro.h> int Helmet( int id ); int main() { BITMAP * bufor = NULL; BITMAP * helmet = NULL; int identyfikator = 1; while( 1 ) { ... Helmet( identyfikator ); ... } }
plik B: #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 :) |
|
DejaVu |
» 2009-08-03 21:11:13 Plik A musi includować plik B. |
|
DejaVu |
» 2009-08-03 21:18:33 Nie chciało mi się tego pisać :) w kursie jest to opisane. |
|
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? |
|
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. |
|
manfred |
» 2009-08-03 21:14:03 . |
|
« 1 » |