kategoria: AMOS
[#361] Re: Tworzenie gier

@tukinem, post #360

Ktos ludkowi polamal nogi, biedak jak skacze to ma stopy obrocone o 180 stopni... auććć


"NIESTETY, musiałem samego bohatera zmniejszyć do rozmiarów 16 pikseli, gdyż większych sprajtów OCS/ECS nie pokaże"

Tu nie do konca masz racje Miszczuniu, bo w OCS obowiazuje zasada laczenia sprajtow.
Czyli dwa polaczone sprajty 4-kolorowe daja jeden sprajt 16-kolorowy. A jak polaczysz dwie pary sprajtow 4-kolorowych (czyli dwa sprajty 16 pikseli razy 2 obok siebie) to otrzymasz sprajta 16-kolorowego o szerokosci 32 piksele.
Jak polaczysz trzy pary spajtow, to otrzymasz sprajta 16-kolorowego o szerokosci 48 pikseli a jak 4 pary (czyli wszystkie dostepne) to teoretycznie wyjdzie 64 piksele szerokosci ... taddaaa ok, racja

Trzeba pamietac o tym, ze AMOS laczy sprajty bez twojej wiedzy, wiec jak wytniesz obrazek 16 kolorowy o szerokosci 32 pikseli jako sprajt, to zeby go prawidlowo wyswietlic na ekranie musisz nadac mu numer 2 lub 4, bo Amos zuzyje 4 kolejne sprajty na jego wyswietlenie

Sprite 2,X,Y,obrazek32piksele (sprajt 2+ sprajt 3+ sprajt 4+ sprajt 5)

lub

Sprite 4,X,Y,obrazek32piksele (sprajt 4+ sprajt 5+ sprajt 6+ sprajt 7)

mozna uzyc Sprite 0 ale wtedy musisz wylaczyc kursor Myszki bo uzywa on wlasnie sprite 0

Sprite 0,X,Y,obrazek32piksele (sprajt 0+ sprajt 1+ sprajt 2+ sprajt 3)
[#362] Re: Tworzenie gier

@selur, post #361

Gdy połączę 2 sprajty w parę i następne 2 sprajty w drugą parę dla przeciwnika to co mi zostanie? Niekiedy na mapie naraz jest kilku przeciwników. Mam połączone 2 sprajty podczas wyciągania miecza bo osobno bohater i osobno miecz. Mając obok przeciwnika potrzeba kolejne 2 sprajty na jego postać i broń.
[#363] Re: Tworzenie gier

@tukinem, post #362

Mozna uzyc dodatkow sprajtow software'owych, na ktorych sie nie znam ale ogolnie do postaci uzylbym Bob'ow a sprajtow tylko jako pociski ok, racja
[#364] Re: Tworzenie gier

@selur, post #363

Nie mogłem użyć bobów. Na planszy są elementy zasłaniające czasem bohatera (te które są na wierzchu). Musiałem przez to użyć Dual Playfield a razem z tym paleta jest 8-kolorowa. Gdybym miał jeszcze okroić przeciwników i bohatera na 8 kolorów to jakby to wyglądało? Poza tym zlewaliby się z otoczeniem bo często kolory by się pokrywały. Dlatego użyłem sprajtów z osobną paletą. Bohater ma 8 kolorów a drugie 8 kolorów z palety sprajtów zostawiłem dla przeciwników.
[#365] Re: Tworzenie gier

@tukinem, post #364

Paleta ośmiokolorowa? Spokojnie można używać 32 kolorów (a nawet 64 w trybie EHB) w AMOSie przy double buffering. Paletę trzeba sobie zaplanować, wydzielić kolory, które muszą być stałe, które mogą się zmieniać, którymi mrugamy, pulsujemy. A to czy dany bob zasłania inny to po prostu sam sobie o tym decydujesz w zależności od potrzeby rysując w odpowiedniej kolejności. Tak jak to się robi na wszystkich platformach, we wszystkich językach. Można też tę decyzję zrzucić na AMOSa i wtedy na wierzchu będą te boby które są niżej (mają większą wartość współrzędnej Y). Ale takie rozwiązanie jest dobre tylko w bardzo specyficznych przypadkach i ja bym go unikał.

Robiłem to 26 lat temu ale AMOS chyba bardzo się od tamtej pory nie zmienił. Chociaż na pewno powstała masa różnych pomysłów, rozwiązań.

Ostatnia aktualizacja: 15.11.2021 13:29:53 przez MDW
[#366] Re: Tworzenie gier

@MDW, post #365

Przy 32 kolorach nie można użyć Dual Playfieldu, a ten jest potrzebny, bo część scenerii ma zasłaniać sprajty/boby. Ja sugerowałem koledze Tukinemowi, żeby na głównego bohatera użył zestawu sprajtów w pierwszej części Prince z NESa. Te sprajty mają 4 kolory, więc mógłby wyświetlić 8 sprajtów na ekranie a to wystarczyłoby na pełnorozmiarowe postacie. Z drugiej strony taki 4 kolorowy (w sumie 3 kolorowy+przezroczystość) bohater też biednie wygląda. Tak źle, i tak niedobrze :)
[#367] Re: Tworzenie gier

@MDW, post #365

No właśnie ja tu nawet nie użyłem DOUBLE BUFFER. Nie potrzebowałem tego. Ale paleta jest 8-kolorowa bo użyłem DUAL PLAYFIELD. Myślałem nad tym żeby użyć elementów planszy, które zakrywają bohatera, jako boby i wtedy mógłbym użyć nawet 32 kolorów ale ciężko byłoby z płynnością. Tam gdzie więcej bobów zasłaniających bohatera, tam byłoby znacznie wolniej. Boby będą tam gdzie mają być spadające podłogi, ruchome elementy poziomów. A postacie będą na sprajtach. Myślę że najgorzej będzie zrobić system walki oraz te wszystkie ruchome posadzki, wspinanie i spadanie. W pierwszym poziomie nie ma tego tak skomplikowanego ale w późniejszych już jest tego sporo.
[#368] Re: Tworzenie gier

@tukinem, post #367

No tak, dual playfield to tak… Myślałem, że to pomyłka i chodzi o double buffer, bo nie sądziłem, że ktoś chciałby na Amidze (nawet OCS/ECS) robić grę w 8 kolorach.
[#369] Re: Tworzenie gier

@MDW, post #368

W dual playfield masz do dyspozycji 2 razy po 8 kolorów i dodatkowo osobne kolory sprajtów. dodatkowo można je zmieniać copperem w trakcie wyświetlania ekranu. Jak się dobrze zaprojektuje grafikę to można uzyskać przyzwoite efekty.
[#370] Re: Tworzenie gier

@MDW, post #368

Z tego co pamiętam to Sokobana zrobiłem w 8 kolorach jak nawet nie w 4 :D ale tam grafika była kopiowana z PC CGA.
[#371] Re: Tworzenie gier

@tukinem, post #360

Ooo, Prince of Persia 2! Trochę szkoda że grafika skrojona, ale zakładam że masz ku temu powody. Będziesz robił całą grę?

Co do łączenia w pary, to pamiętaj że na Amidze masz 8 sprajtów, więc możesz np. poświęcić 2+2 na sprajta 16-kolorowego szerokiego na 32px i zostaje Ci drugie tyle, ale tak, na przeciwników z tego co pamiętam to będzie mało. Albo możesz cisnąć bobami dodatkowych przeciwników - PoP2 chyba i tak nie działało w 50fps.

Ostatnia aktualizacja: 16.11.2021 13:18:21 przez teh_KaiN
[#372] Re: Tworzenie gier

@teh_KaiN, post #371

Powody są takie jak opisane jest wcześniej że są elementy kiedy bohater jest zakrywany przez różne elementy planszy które są na pierwszym planie. Przez to musiałem użyć Dual Playfield. A skoro użyty jest Dual Playfield to paleta jest 8-kolorowa. Bohater składa się z jednego sprajta, wyciągając miecz pojawia się drugi sprajt. Zrobiłem póki co pierwszy poziom. Bez przeciwników i bez walki. Samo skakanie i wspinanie jest tu póki co. Myślę zrobić wersję dyskietkową gdzie każdy świat to będzie osobna dyskietka tak żeby zbytnio nie żonglować. Najgorszy będzie chyba system walki oraz te wszystkie punkty wspinania, spadania, kładki itd.
[#373] Re: Tworzenie gier

@tukinem, post #372

Ilu maksymalnie przeciwników pojawia się w tej grze jednocześnie na planszy?

Ostatnia aktualizacja: 16.11.2021 23:22:55 przez mastaszek
[#374] Re: Tworzenie gier

@mastaszek, post #373

pewnie ze 30 rozbojnikow i sam AliBob'a. W Amosie bedzie przycinalo na bank
[#375] Re: Tworzenie gier

@selur, post #374

Nie ma 30 na szczęście. Pamiętam że w drugim poziomie jest moment gdy księcia gonią chyba 3 albo 4 szkietety. To jest chyba poziom przed tym na którym książę odlatuje na dywanie. Wiem że jeszcze są glizdy w następnym zamku które są długie i na pewno będą z podwójnych sprajtów zrobione. Koń również będzie z dwóch sprajtów. Co ciekawe w pionie sprajty mogą mieć więcej niż 16 pikseli bez używania komendy Set Sprite Buffer :)
[#376] Re: Tworzenie gier

@tukinem, post #375

Pomóżcie...

tu jest link do ADFa:
https://szybkiplik.pl/7NdG5h3J59
Przy autostarcie odpala się skompilowana gra. W ADFie jest kod źródłowy w pliku gra2.amos. Kto chce pomóc, niech odpali tą grę w ustawieniach OCS i procku 68000 7MHz. Gdy odpalicie tą grę, przejdźcie księciem w lewo i spójrzcie na skałę, która się schowa.

Problem polega na tym, że książę to jest SPRITE 0. Skała ze względu na swoją szerokość w pikselach została podzielona na 3 sprajty. SPRITE 2, 4 i 6. Niestety problem jest z wyświetlaniem sprajta 6. Gdy ustawię księcia na SPRITE 6 również są błędy. O co tu chodzi? Przecież można używać 4 sprajtów prawda? Komenda SET SPRITE BUFFER do zwiększenia pamięci dla wysokości sprajtów również nie pomaga :/

Są tu dwa ekrany 8 kolorowe w DUAL PLAYFIELD oraz na dole ekran z ilością żyć - również 8 kolorowy z osobną paletą kolorów. Paleta sprajtów jest 16-kolorowa. Sprajt księcia używa pierwszych 8 kolorów palety sprajtów, natomiast ruchoma skała używa koloru "0" oraz 7 ostatnich kolorów z palety sprajtów.
[#377] Re: Tworzenie gier

@tukinem, post #370

ale tam grafika była kopiowana z PC CGA.

Trudno o gorsze źródło grafiki. To już lepiej z C64. :)
[#378] Re: Tworzenie gier

@MDW, post #377

CGA w composite mode jest lepsza niż C64.
[#379] Re: Tworzenie gier

@michal_zukowski, post #378

Zgadza się. Ciekawe, że w epoce nikt tej karty w ten sposób nie używał i każdy myślał, że CGA to ta absurdalnie koszmarna paletą: biały, czarny, magenta i cyan. Dopiero jakieś 5-6 lat temu dowiedziałem się, że CGA tak naprawdę generowała inny obraz niż wszyscy myśleliśmy (i widzieliśmy). 😃
1
[#380] Re: Tworzenie gier

@tukinem, post #376

OK. Trochę pogrzebałem.
Wracając do mojej prośby. Posiadam Amosa w systemie, który bez problemu odtwarza te sprajty. Jednak do kompilacji używam innego Amosa, którego mam w ADFie oraz kompilatora, którego również mam w ADFie. Problem polega na tym, że te z dyskietki źle wczytują SPRITE nr 6. Wersja Amosa zarówno na hdd jak na ADF jest ta sama (2.00). Czy ktoś sprawdził u siebie jak działa? Na ADFie: https://szybkiplik.pl/7NdG5h3J59 jest plik gra2.amos, więc każdy może u siebie odpalić grę w swoim Amosie, jednak trzeba mieć rozszerzenie AMCAF.
1
[#381] Re: Tworzenie gier

@selur, post #361

https://szybkiplik.pl/FULhPLRdXq

Tu w linku dałem test do Twojej wypowiedzi.
Są 4 sprajty identyczne podpisane pod spodem numerami, jakich użyłem. Ostatni (sprajt 6) wyświetla złe kolory używając AGA lub ECS. Używając OCS wyświetla paski. Dlaczego? To są przecież 4 sprajty 16 kolorowe mające do 16 pikseli szerokości.

W ADFie jest kod źródłowy programu.



Tam zamiast ósemki miała być szóstka napisana - to tak na marginesie...

Ostatnia aktualizacja: 21.11.2021 10:25:33 przez tukinem
[#382] Re: Tworzenie gier

@tukinem, post #381

Jak masz scroll poziomy i za dużo kolorów włączonych to Denise zabiera cykle ostatniego sprajta i pożytkuje je na pobieranie grafiki tła. Sprawdź czy na ekranie 3 lub 4bpp też będziesz miał taki efekt, stawiam że nie.
[#383] Re: Tworzenie gier

@teh_KaiN, post #382

W poprzednim poście dałem prosty przykład który jest na zdjęciu. Jeden ekran nr 0. 16 kolorów bez tła. 4 sprajty na ekranie. Nr sprajtów 0 2 4 i 6. I to wszystko. W ECS i AGA sprajt nr 6 wyświetlony jest w innych kolorach. W OCS składa się z pasków tak jak tu na zdjęciu. Nie ma tu scrolla. Zdefiniowałem tylko paletę kolorów nr od 48 do chyba 63 dla sprajtów.
[#384] Re: Tworzenie gier

@teh_KaiN, post #382

Serio tak może się dziać? Zupełnie nie znam się na programowaniu „pod sprzęt” ale zawsze myślałem, że te sprzętowe sprajty są zupełnie niezależne, są ponad wszystko. Jakieś boby, programowe sprajty mogą się zachowywać różnie. Ale te sprzętowe „duszki” są nietykalne. szeroki uśmiech
[#385] Re: Tworzenie gier

@MDW, post #384

No a tu właśnie nawet jeśli dam jednego sprajta i dam mu nr 6 to się wysypuje :/
[#386] Re: Tworzenie gier

@tukinem, post #385

Spróbuj kontrolnie wyłączyć Dual Playfield i sprawdź czy wtedy ten ostatni sprajt się dobrze wyświetla.
Acha, i upewnij się, że żaden sprite (przy Get Sprite) nie ma szerokości większej niż 16 pikseli.
[#387] Re: Tworzenie gier

@mastaszek, post #386

Tu gdzie dałem screen z 4 sprajtami jest zwykły ekran 16 kolorowy. Bez Dual Playfield, bez tła. Same 4 sprajty są. Mają 16 pikseli szerokości. Nawet jak dam jednego sprajta z numerem 6, to wyświetla głupoty.
[#388] Re: Tworzenie gier

@tukinem, post #387

Niemożliwe. A spróbuj taki kod wstukać i zobacz czy działa.

Hide
Screen Open 0,320,200,16,Lowres
Curs Off : Cls 0 : Paper 0

For I=0 To 10
Pen I+1
Print "aabbccdd"
Next

Get Sprite 1,0,0 To 16,90
Get Sprite 2,0+16,0 To 16+16,90
Get Sprite 3,0+32,0 To 16+32,90
Get Sprite 4,0+48,0 To 16+48,90

Sprite 0,X Hard(150),Y Hard(50),1
Sprite 2,X Hard(150)+16,Y Hard(50),2
Sprite 4,X Hard(150)+32,Y Hard(50),3
Sprite 6,X Hard(150)+48,Y Hard(50),4

Wait Key
[#389] Re: Tworzenie gier

@mastaszek, post #388

Wpisywałem podobnie tylko zrobiłem sprajty z obrazka księcia. I dla każdego sprajta użyłem tego samego numeru obrazka. Zawsze nr 6 sprajta pokazuje głupoty. Przynajmniej na tym Amosie z adfów od Ciebie.
[#390] Re: Tworzenie gier

@tukinem, post #389

A ten kod, który wkleiłem powyżej, też wyświetla 6. sprajta niepoprawnie?
Na stronie www.PPA.pl, podobnie jak na wielu innych stronach internetowych, wykorzystywane są tzw. cookies (ciasteczka). Służą ona m.in. do tego, aby zalogować się na swoje konto, czy brać udział w ankietach. Ze względu na nowe regulacje prawne jesteśmy zobowiązani do poinformowania Cię o tym w wyraźniejszy niż dotychczas sposób. Dalsze korzystanie z naszej strony bez zmiany ustawień przeglądarki internetowej będzie oznaczać, że zgadzasz się na ich wykorzystywanie.
OK, rozumiem