Player/Missile Graphics
From Atariki
Wersja z dnia 14:07, 7 wrz 2005 KMK (Dyskusja | wkład) ← Previous diff |
Wersja z dnia 08:58, 19 wrz 2005 Daniel Koźmiński (Dyskusja | wkład) Next diff → |
||
Linia 1: | Linia 1: | ||
+ | == Charakterystyka == | ||
+ | |||
Player and Missile Graphics - "grafika graczy i pocisków". Rodzaj sprzętowego trybu pracy układów wizyjnych ATARI, polegający na możliwości nałożenia na ekran obiektów niezależnych od zawartości pamięci graficznej. Generowane w ten sposób ruchome obiekty znane są na innych platformach sprzętowych pod nazwą "duszków" (ang. sprites). | Player and Missile Graphics - "grafika graczy i pocisków". Rodzaj sprzętowego trybu pracy układów wizyjnych ATARI, polegający na możliwości nałożenia na ekran obiektów niezależnych od zawartości pamięci graficznej. Generowane w ten sposób ruchome obiekty znane są na innych platformach sprzętowych pod nazwą "duszków" (ang. sprites). | ||
- | {{stub}} | + | W 8-bitowych komputerach Atari możliwe jest uzyskanie czterech niezależnych duszków i czterech pocisków (lub pięciu duszków - piątego uzyskujemy przez połączenie czterech pocisków). Jeden duszek może mieć dowolny, wybrany z palety, kolor - pocisk ma zawsze ten sam kolor co odpowiadający mu duszek (np. jeśli duszek nr 3 ma kolor $0A pocisk ma również kolor $0A). Matryca duszków ma 8 punktów szerokości (wysokość nieograniczona), pocisków 2 punkty (wysokość dowolna). |
+ | |||
+ | == Pozycjonowanie == | ||
+ | |||
+ | Pozycję pionową duszków kontroluje się wpisując jego położenie do rejestrów HPOSP0-HPOSP3 ($d000-$d003), możliwe są wartości od $00 do $E3, ale duszek będzie widoczny na ekranie w zakresie wartości $30-$d0. Podobnie zmienia się pozycję poziomą pocisków - należy wpisywać pożądane wartości do rejestrów HPOSM0-HPOSM3 ($d004-$d007). W przypadkach kontrolowania pozycji są to rejestry tylko do odczytu. | ||
+ | |||
+ | Niestety nie ma rejestrów określających pozycję pionową - kontroluje się ją zmieniając położenie duszków (pocisków) w obszarze [[PMBASE]]. | ||
+ | |||
+ | == Wykrywanie kolizji == | ||
+ | |||
+ | Komputery z serii 400/800/XL/XE posiadają również sprzętową możliwość kontrolowania kolizji duszków (pocisków) z tłem, jak i z innymi duszkami (pociskami). Służą do tego te same rejestry co powyżej - tym razem w trybie do odczytu: | ||
+ | |||
+ | M0PF-M3PF ($d000-$d003) Kolizja pocisku z tłem. Wartości odczytujemy z poniższego schematu: | ||
+ | |||
+ | <pre> | ||
+ | Bit 7 6 5 4 3 2 1 0 | ||
+ | Rejestr koloru ...nieużywane.... 3 2 1 0 | ||
+ | </pre> | ||
+ | |||
+ | P0PF-P1PF ($d004-$d007) Kolizja duszka z tłem: | ||
+ | |||
+ | <pre> | ||
+ | Bit 7 6 5 4 3 2 1 0 | ||
+ | Rejestr koloru ....nieużywane... 3 2 1 0 | ||
+ | </pre> | ||
+ | |||
+ | M0PL-M3PL ($d008-$d00b) Kolizja pocisku z duszkiem (nie ma rejestrów służących do wykrywania kolizji pocisku z pociskiem): | ||
+ | |||
+ | <pre> | ||
+ | Bit 7 6 5 4 3 2 1 0 | ||
+ | Duszek ...nieużywane.... 3 2 1 0 | ||
+ | </pre> | ||
+ | |||
+ | P0PL-P3PL ($d00c-$d00f) Kolizja duszka z duszkiem: | ||
+ | |||
+ | <pre> | ||
+ | Bit 7 6 5 4 3 2 1 0 | ||
+ | Duszek ...nieużywane.... 3 2 1 0 | ||
+ | </pre> | ||
+ | |||
+ | == Rozmiar == | ||
+ | |||
+ | Duszki oraz pociski mogą być sprzętowo rozszerzane w pionie za pomocą przeznaczonych do tego celu rejestrów. Możliwe są: szerokość pojedyńcza, podwójna i poczwórna. Uzyskuje się je ustawiając odpowiednie kombinacje bitów: | ||
+ | |||
+ | |||
+ | <pre> | ||
+ | Bit 7 6 5 4 3 2 1 0 | ||
+ | Szerokość: ...nieużywane... 0 0 pojedyńcza (8 cykli koloru) | ||
+ | 0 1 podwójna (16 cykli koloru) | ||
+ | 1 0 pojedyńcza | ||
+ | 1 1 poczwórna (32 cykle koloru) | ||
+ | </pre> | ||
+ | |||
+ | Dla ustalenie szerokości dla wszystkich pocisków używa się rejestru SIZEM ($d00c): | ||
+ | |||
+ | <pre> | ||
+ | Bity Szerokość: | ||
+ | pojedyńcza podwójna poczwórna | ||
+ | 7 i 6: pocisk 3 0,128 64 192 | ||
+ | 5 i 4: pocisk 2 0, 32 16 48 | ||
+ | 3 i 2: pocisk l 0, 8 4 12 | ||
+ | 1 i 0: pocisk 0 0, 2 1 3 | ||
+ | </pre> | ||
+ | |||
[[Kategoria:Glosariusz]] | [[Kategoria:Glosariusz]] |
Wersja z dnia 08:58, 19 wrz 2005
Spis treści |
Charakterystyka
Player and Missile Graphics - "grafika graczy i pocisków". Rodzaj sprzętowego trybu pracy układów wizyjnych ATARI, polegający na możliwości nałożenia na ekran obiektów niezależnych od zawartości pamięci graficznej. Generowane w ten sposób ruchome obiekty znane są na innych platformach sprzętowych pod nazwą "duszków" (ang. sprites).
W 8-bitowych komputerach Atari możliwe jest uzyskanie czterech niezależnych duszków i czterech pocisków (lub pięciu duszków - piątego uzyskujemy przez połączenie czterech pocisków). Jeden duszek może mieć dowolny, wybrany z palety, kolor - pocisk ma zawsze ten sam kolor co odpowiadający mu duszek (np. jeśli duszek nr 3 ma kolor $0A pocisk ma również kolor $0A). Matryca duszków ma 8 punktów szerokości (wysokość nieograniczona), pocisków 2 punkty (wysokość dowolna).
Pozycjonowanie
Pozycję pionową duszków kontroluje się wpisując jego położenie do rejestrów HPOSP0-HPOSP3 ($d000-$d003), możliwe są wartości od $00 do $E3, ale duszek będzie widoczny na ekranie w zakresie wartości $30-$d0. Podobnie zmienia się pozycję poziomą pocisków - należy wpisywać pożądane wartości do rejestrów HPOSM0-HPOSM3 ($d004-$d007). W przypadkach kontrolowania pozycji są to rejestry tylko do odczytu.
Niestety nie ma rejestrów określających pozycję pionową - kontroluje się ją zmieniając położenie duszków (pocisków) w obszarze PMBASE.
Wykrywanie kolizji
Komputery z serii 400/800/XL/XE posiadają również sprzętową możliwość kontrolowania kolizji duszków (pocisków) z tłem, jak i z innymi duszkami (pociskami). Służą do tego te same rejestry co powyżej - tym razem w trybie do odczytu:
M0PF-M3PF ($d000-$d003) Kolizja pocisku z tłem. Wartości odczytujemy z poniższego schematu:
Bit 7 6 5 4 3 2 1 0 Rejestr koloru ...nieużywane.... 3 2 1 0
P0PF-P1PF ($d004-$d007) Kolizja duszka z tłem:
Bit 7 6 5 4 3 2 1 0 Rejestr koloru ....nieużywane... 3 2 1 0
M0PL-M3PL ($d008-$d00b) Kolizja pocisku z duszkiem (nie ma rejestrów służących do wykrywania kolizji pocisku z pociskiem):
Bit 7 6 5 4 3 2 1 0 Duszek ...nieużywane.... 3 2 1 0
P0PL-P3PL ($d00c-$d00f) Kolizja duszka z duszkiem:
Bit 7 6 5 4 3 2 1 0 Duszek ...nieużywane.... 3 2 1 0
Rozmiar
Duszki oraz pociski mogą być sprzętowo rozszerzane w pionie za pomocą przeznaczonych do tego celu rejestrów. Możliwe są: szerokość pojedyńcza, podwójna i poczwórna. Uzyskuje się je ustawiając odpowiednie kombinacje bitów:
Bit 7 6 5 4 3 2 1 0 Szerokość: ...nieużywane... 0 0 pojedyńcza (8 cykli koloru) 0 1 podwójna (16 cykli koloru) 1 0 pojedyńcza 1 1 poczwórna (32 cykle koloru)
Dla ustalenie szerokości dla wszystkich pocisków używa się rejestru SIZEM ($d00c):
Bity Szerokość: pojedyńcza podwójna poczwórna 7 i 6: pocisk 3 0,128 64 192 5 i 4: pocisk 2 0, 32 16 48 3 i 2: pocisk l 0, 8 4 12 1 i 0: pocisk 0 0, 2 1 3