Zgoda, Selur.
Praca idzie całkiem sprawnie. Jest już obsługa joysticka oraz nowa wersja formatu planszy, która zawiera "chunk" z nagłówkiem. Dzięki IFF mogę bez żadnych problemów wczytać starszą i bieżącą wersję za pomocą jednej procedury.
Wiem też, jak wprowadzę kilka dodatkowych elementów. W prosty sposób. Będzie można polom na planszy nadawać dodatkowo "cyferki" - będą to identyfikatory łączące ze sobą elementy na planszy (np. po umieszczeniu skrzyni na podłodze oznaczonej nr 1 będą obniżać się ściany oznaczone tym samym numerem).
Aktualnie zabieram się za audio.device i odgrywanie dźwięków.
--
Przy okazji prac wyszło kilka fajnych rzeczy związanych z programowaniem na Amigę. Może komuś się przyda:
- Otóż najlepiej jest jak Blitterowi wyślemy jedną dużą operację. Wszystko działa zdecydowanie sprawniej niż gdybyśmy wysłali mu szereg malutkich operacji, bo wtedy procesor jest bardzo zajęty. Dlatego też warto najpierw przygotować większy obraz i dopiero go rysować.
- Można powiązać pojedyncze i podwójne buforowanie. Obecnie wykorzystuję aż 3 metody odmierzania czasu!
1. Copper - wywołuję przerwanie Coppera na linii 0, żeby móc rysować w ramkę w ten sposób, by nie było widać procesu rysowania w pojedynczym buforowaniu,
2. Podwójne buforowanie za pomocą DBufInfo mówi mi kiedy mogę rysować w drugi bufor oraz kiedy bufor został wyświetlony co najmniej raz,
3. Timer.device - używam licznika czasu bazującego na UNIT_VBLANK, czyli bez dużego narzutu, by ten sygnalizował mi upłynięcie pewnego odcinka czasu - to główna synchronizacja silnika.
Najpilniejsze zadania, w tym animację, wykonuję metodą 1, mniej pilne animacje metodą nr 2, zaś rzeczy, które nie wymagają częstego wykonywania - metodą nr 3.