kategoria: AMOS
[#601] Re: Tworzenie dem

@tukinem, post #600

Alez obrzydliwy ten polski workbench...
[#602] Re: Tworzenie dem

@selur, post #601

Alez obrzydliwy ten polski workbench...


Tak lepiej?:




Dla porównania w OS 3.2 pod większym prockiem te same błędy wyskakują w SnoopDos:


Ostatnia aktualizacja: 19.02.2022 15:32:07 przez tukinem
[#603] Re: Tworzenie dem

@tukinem, post #597

To jest pare opcji. Wirus, niekompatybilnosc AMOS-a z kick 3.2, jakis dziwny patch zainstalowales i najbardziej prawdopodobne, ze wgrales/zainstalowales sobie jakis dodatek AMOS-owy, ktory nie dziala zbyt dobrze po 68000. Najlepiej zainstaluj AMOS-a w innym miejscu i po kolei sprawdzaj, kiedy bedziesz mial takie guru, czyli instaluj po kolei wszystkie dodatki i po kazdym sprawdzaj. Najpierw sam podstawowy AMOS zainstaluj.
[#604] Re: Tworzenie dem

@Don_Adan, post #603

Plikopartycja zamiast katalogu i bez JIT'a w ustawieniach. Czysty system i AMOS. Jak nie będzie problemów to wtedy dopiero dodawaj cokolwiek do systemu (i co jakiś czas VirusZ_III odpalaj).

Powodzenia OK
[#605] Re: Tworzenie dem

@tukinem, post #600

Musi być Double Buffer, żeby nie migało. Po otwarciu ekranu ustaw:
Double Buffer
Autoback 0

A w pętli głównej jak już narysujesz wszystko (na ekranie logicznym), to wtedy:

Screen Swap

No i musisz jeszcze czekać na powrót plamki w pionie, czyli:

Wait Vbl



PS Robienie skrolowanej platformówki w amosie, i to w dodatku z użyciem Screen Copy, to nie jest najlepszy pomysł. Będzie baaaardzo wolno.

Ostatnia aktualizacja: 19.02.2022 16:00:52 przez mastaszek
[#606] Re: Tworzenie dem

@mastaszek, post #605

To jakiś lepszy pomysł masz? Tam jest po 121 ikon (32x32 piksele) w pionie i 65 ikon w poziomie. Jest jakiś inny sposób na scroll? (4 kierunki)

Zrobiłem, jak mówiłeś. Dałem Double Buffer, Autoback 0 i Screen Swap w odpowiednich miejscach. link dalej wychodzą te cuda przy scrollu, ale jest lepiej już.

Ostatnia aktualizacja: 19.02.2022 16:49:38 przez tukinem
[#607] Re: Tworzenie dem

@karolb, post #604

Znalazłem powód błędu z wychodzenia z Amosa. W sumie to trochę dzięki radzie z VirusZ-III
Uruchomiłem z ADF, który jest bootowalny. Włączył się Workbench bez dodatków. Odpaliłem z ciekawości Amosa i wyszedłem i zadziałało. Postanowiłem w S-S usunąć niedawno dodany VisualPrefs. I to było to. Niby VP mam załatany i działa na procku 68000, ale Amos miał z tym problem podczas wychodzenia do systemu. A myślałem, że będę już normalnie używać VisualPrefs pod 68000 :-/
[#608] Re: Tworzenie dem

@tukinem, post #606

Brakuje w kodzie Double Buffer.

Używasz ekranu 16 kolorowego i Screen Copy na bardzo dużym obszarze. To nie ma prawa szybko działać.

Jeśli już musisz tak robić, to narysuj sobie planszę (za pomocą tego Paste Icon) na osobnym ekranie (bez double buffer) i w pętli głównej kopiuj obszar z tego ekranu z planszą do ekranu głównego. Musisz kopiować do ekranu logicznego, czyli np. Screen Copy ekran_z_planszą,x1,y1,x2,y2 to Logic(ekran_główny),0,0. Po skopiowaniu obszaru dopiero podmieniasz ekran logiczny z fizycznym używając Screen Swap. I po tym Wait Vbl. To będzie bardzo wolne, między innymi dlatego, że masz ekrany 16 kolorowe i kopiowane są 4 bitplane'y. Amos nie wyrobi.

Sugeruję, żebyś odpuścił ten projekt. Żeby to zrobione w ten sposób działało płynnie, to pewnie będzie wymagało Vampire, albo WinUae z ustawieniami Fastest Possible.
[#609] Re: Tworzenie dem

@mastaszek, post #608

A na C64 działało ładnie... czyli każda scrollowana gra planszowa będzie ciężko działać. To czemu według tego tutoriala co podałem link było tak ładnie?

Nie dam rady narysować na osobnym ekranie całej planszy. Tam jest 65x121 ikon. Każda po 32x32 pix. Dlatego wprowadziłem zmienne tekstowe z numerami ikon i z tych zmiennych były wczytywane linie.

Ostatnia aktualizacja: 19.02.2022 18:06:32 przez tukinem
[#610] Re: Tworzenie dem

@tukinem, post #609

Da się zrobić skrolowaną grę w amosie, ale na pewno nie metodą Screen Copy na dużym obszarze i w 16 kolorach - to jest zbyt wolne. Trzeba używać jakiś trików i niestandardowych rozwiązań. To moje skromne zdanie. Mogę się mylić. Może się wypowiedzą bardziej doświadczeni koledzy.
[#611] Re: Tworzenie dem

@mastaszek, post #610

Wlasnie, byly robione polskie platformowki w AMOS-ie i calkiem niezle dzialaly. Czego uzywali wtedy AMO-owi programisci to nie wiem.
[#612] Re: Tworzenie dem

@Don_Adan, post #611

"...polskie platformowki w AMOS-ie i calkiem niezle dzialaly"

to pierwsze slysze
[#613] Re: Tworzenie dem

@mastaszek, post #610

Wzorując się na tym poście link przerobiłem (trochę z błędami jeszcze) Screen Copy na Screen Offset. Jest lepiej, usunąłem Double Buffer, ale co 32 piksele zwalnia, żeby odświeżyć planszę o nowe kafle. Ogólnie to niezbyt to działa:
link
Ale sam scroll jest lepszy o niebo. Zawsze już coś.
[#614] Re: Tworzenie dem

@mastaszek, post #610

https://szybkiplik.pl/h93h4Kugf5
Póki co, trochę ukróciłem i poprawiłem błędy rysowania planszy. Ma ktoś jakiś pomysł na szybsze dorysowywanie ikon? Jeszcze mnóstwo danych poziomu muszę dopisać, bo to tylko namiastka całego poziomu. Sam scroll działa fajnie, tylko co 32 piksele musi się ekran wyczyścić i na nowo muszą się ikony wgrać. Pomimo tego scroll działa dobrze nawet na 7MHz. Kod z grą jest na ADF.
[#615] Re: Tworzenie dem

@tukinem, post #614

Screen Offset jest szybkie, bo to jest skrol sprzętowy i amiga nie musi nic kopiować. To o wiele lepsze rozwiązanie niż Screen Copy, ale ma swoje wady.

Co do szybkości rysowania ikon, to są rozszerzenia Amos Turbo Extension i PowerBobs Extension. Nigdy ich nie używałem, więc nie wiem jak to działa, ale mam to gdzieś na dysku i jeśli chcesz, to mogę poszukać i podesłać. W instrukcjach dołączanych do tych rozszerzeń chyba było, że rysowanie ikon jest dużo szybsze nić standardowe komendy amosa.

Ile kolorów MUSI mieć Twoje tło i jaki ma być maksymalny rozmiar planszy?
[#616] Re: Tworzenie dem

@mastaszek, post #615

No wlasnie Offset powoduje jedynie wyswietlenie obrazu ekranu od danego punktu, nic nie rysuje w przeciwienstwie to Screen Copy gdzie kopiowany jest duzy obszar obrazu co zajmuje sporo czasu.

A co do Power Bobs, kiedys czytalem do tego instrukcje i na dobra sprawe to rozszerzenie jest mocno ograniczone. Rozmiar boba nie moze byc szerszy niz 32 piksele co jest smiesznie mala szerokoscia. W niektorych grach ten rozmiar jest przekroczony do 48 lub 64 pikseli. No chyba ze sie posklada dwa boby obok siebie ale wtedy moze zabraknac nam bobow na ekran. Tak zle i tak nie dobrze.
[#617] Re: Tworzenie dem

@tukinem, post #614

bo to się robiło tak że przesuwając co 1px 32x już rysujesz sobie drugi ekran, a jego rysowanie właśnie dzielisz na 32 części
[#618] Re: Tworzenie dem

@tukinem, post #614

Pole na którym rysujesz musi być większe niż ekran, który wyświetlasz i musisz rysować kafle z wyprzedzeniem w czasie w którym tylko przesuwasz ekran sprzętowo (viewport?), np. po dwa kafle na klatkę.

Tutaj co prawda dotyczy film programowania w C, ale koncepcja i mechanizm jest ten sam.


Możesz też, jeśli plansza nie jest zbyt wielka, wyrysować wszystko do CHIP, a potem tylko przesuwać ekran (Giana Siters).

Ostatnia aktualizacja: 20.02.2022 14:44:21 przez san_u
[#619] Re: Tworzenie dem

@tukinem, post #614

Jeżeli wystarczy Ci taki rozmiar i liczba kolorów, to na szybko ustukałem dla Ciebie taki kod. Może się przyda.




'otwiera ekran tla, mozna tu wczytac wielki obrazek IFF (w 4 kolorach)
'rozmiar 960x1000 piseli

Screen Open 1,960,1000,4,Lowres
Screen Display 1,128,50,320,200
For I=0 To 130
Print "tlo tlo tlo tlo tlo tlo tlo tlo tlo tlo tlo tlo tlo tlo tlo tlo tlo tlo tlo tlo tlo tlo tlo tlo";
Next

'otwiera ekran glowny, tu rysujesz obiekty w maksymalnie 8 kolorar (0=przezroczysty)
Screen Open 2,320,200,8,Lowres
Screen Display 2,128,50,320,200
Flash Off : Curs Off : Cls 0
Print "pierwszy plan"
Double Buffer
Autoback 0

Wait 10

'ustawiamy dual playfield
Dual Playfield 2,1


'poczatkowe wartosci dla skrola
SKROL_X=320
SKROL_Y=200

'uzyj klawiszy W,S,A,D zeby skrolowac, ESC zeby wyjsc

Repeat

If Key State(32)
If SKROL_X>320
SKROL_X=SKROL_X-1
End If
End If

If Key State(34)
If SKROL_X<640
SKROL_X=SKROL_X+1
End If
End If

If Key State(17)
If SKROL_Y>200
SKROL_Y=SKROL_Y-1
End If
End If

If Key State(33)
If SKROL_Y<800
SKROL_Y=SKROL_Y+1
End If
End If

Screen Offset 1,SKROL_X,SKROL_Y
Screen Swap
Wait Vbl

Until Key State(69)

Screen Close 1
Screen Close 2
[#620] Re: Tworzenie dem

@san_u, post #618

Ja mam otwarte 2 ekrany. Jeden do wczytywania, który jest oddalony komendą Screen Display gdzieś tam hen daleko. Drugi mam widoczny, który jest wyświetlany non stop. Oba mają 384x264 (320+2*32x200+2*32), ale ten wyświetlony komendą Display jest okrojony na 320x200, żeby nie było szumów przy przesuwaniu, chociaż się pojawiają przy przesuwaniu w górę i w lewo, ale to już nic nie poradzę.

Przy przesuwaniu do 32 pikseli jest użyta komenda Screen Offset oraz są liczone klatki przesuwu. Jeśli klatki osiągają 32 lub -32, wtedy są zerowane, a druga zmienna jest zmieniana o 1 w górę lub w dół oraz jest Gosub do wczytywania kafli. Drugi ekran jest wtedy czyszczony, wgrywany na nowo z przesunięciem oraz kopiowany do naszego głównego. Wczytywanie i Screen Copy z drugiego do pierwszego ekranu trochę trwa i to jest denerwujące.

Co do rozmiarów poziomu, to pisałem już, ale teraz napiszę dokładnie:
rozmiar tej planszy to 69x121 kafli (każdy po 32x32pix).

Tu jest ADF z bieżącym kodem:
link

PS. Gdybym miał się wzorować Gianą Sisters, nie pisałbym tu nic, bo Giana akurat ma scroll jedynie w prawo, co nie sprawia problemów. Problemem jest cofanie, czyli scroll w lewo i w górę. Wtedy wychodzą przesunięte "cuda", bo komendą Screen Display nie ograniczę lewego i górnego obszaru ekranu, tylko prawy i dolny. W Giana Sisters bez problemu komendą Screen Display można ograniczyć z prawej strony wyświetlanie ekranu i wklejać sobie kafle. Ekran tam się również nie cofa, więc to prosta sprawa.

Gdyby ktoś nie wiedział, na jaką grę się uparłem, to daję link:
https://www.youtube.com/watch?v=fVBWoQjpAs4&t=646s

Ostatnia aktualizacja: 20.02.2022 17:22:23 przez tukinem
[#621] Re: Tworzenie dem

@mastaszek, post #619

Wkleiłem sobie do Amosa i uruchomiłem.
Zastanawiam się czy to wina UAE, że przesuw na boki jest skokowy co 16 pikseli? W osi X jest płynny co piksel.
[#622] Re: Tworzenie dem

@mastaszek, post #610

Da się zrobić skrolowaną grę w amosie, ale na pewno nie metodą Screen Copy na dużym obszarze i w 16 kolorach - to jest zbyt wolne. Trzeba używać jakiś trików i niestandardowych rozwiązań.

Na dysku AMOSPro_Productivity2, można podejrzeć kod źródłowy do gry z multiscrollem. Działa to całkiem nieźle na standardowej A500.
[#623] Re: Tworzenie dem

@karolb, post #621

W Amosie jest błąd i w Dual Playfieldzie Screen Offset na drugim ekranie działa skokowo, co 16 pikseli.

Podsyłam link do spatchowanego Amosa (adf). Ma też dodatkowo wgrane rozszerzenie AMCAF.

Działający Amos




Ostatnia aktualizacja: 20.02.2022 20:25:36 przez mastaszek
[#624] Re: Tworzenie dem

@forge, post #622

Właśnie przejrzałem kod tej gry. Tam skrol jest robiony za pomocą Screen Offset, a nie Screen Copy. Tak się oczywiście da, ale kolega Tukinem chce zrobić planszę gry zbyt dużą na Screen Offset.
[#625] Re: Tworzenie dem

@mastaszek, post #623

O, dzięki, teraz bangla :)
[#626] Re: Tworzenie dem

@mastaszek, post #623

Ale ja mam Amosa z Amcafem i Twój kod działa u mnie skokowo w poziomie.

W mojej wersji co 32 piksele zatrzymuje się żeby wczytać następne ikony. Mógłbym to jeszcze trochę przyspieszyć ale do tego muszę się zastanowić nad nowym sposobem zapisu ikon w całym poziomie. Póki co nie mam pomysłu ale coś wymyślę na pewno. Narazie mam zapisane kolumnami np. Y1$ to zmienna z kolejnymi numerami ikon pierwszej kolumny. Najprościej byłoby użyć tablicy ale ze względu na wielkość poziomu nie da rady wstawić tak wielkiej tablicy.
[#627] Re: Tworzenie dem

@tukinem, post #626

Tu nie chodzi o AMCAFa. Amos ma buga, który nie pozwala na płynny przesuw drugiego ekranu w trybie Dual Playfield (jest skok co 16 pikseli). W linku, który podałem wyżej, jest spatchowana wersja Amosa, w której mój kod działa poprawnie. Ściągnij go sobie i spróbuj.

A co do ikon. Jeśli nie możesz zrobić takiej dużej tablicy, to możesz zapisywać dane w banku i z niego odczytywać jak z tablicy (peek i poke).
[#628] Re: Tworzenie dem

@mastaszek, post #627

Myślałem właśnie ostatnio o banku. Coś jak w Jumpmanie wtedy. Nawet fajnie by było. Mógłbym użyć większej numeracji ikon, bo w 9 się nie zmieszczę. Później są inne ikonki. Łatwiej byłoby wczytywać dane z pamięci, może nawet szybciej by się rysowało na ekranie, bo wstawiałbym konkretnie te ikony których potrzebuję w danym momencie. Tylko pytanie czy lepiej utworzyć plik z danymi czy lepiej w Amosie wprowadzać je z kodu? Myślę że lepiej wczytywać z pliku.

Co do Amosa to mam Twoją wersję ale rzadko używam ze względu na to że jest w ADFach a często przełączam się pomiędzy Amosem a PPaintem

Zastanawiam się tak wogóle czy jest sens ciągnąć tą grę. Selur powie że kolejny gniot z C64 ściągnięty na Amigę, którą stać na wiele więcej. Znowu kolejny port zamiast coś swojego oryginalnego i unikatowego. To wszystko przez brak pomysłów. Brak przewidzenia czego oczekują amigowi gracze w 2022 roku.
[#629] Re: Tworzenie dem

@tukinem, post #628

Brak przewidzenia czego oczekują amigowi gracze w 2022 roku.


Tak jak napisałeś, czegoś oryginalnego :)
[#630] Re: Tworzenie dem

@tukinem, post #628

Ja bym tego projektu nie ciągnął, bo Amos nie jest do tego optymalny. Poza tym jak ktoś chce w to zagrać, to odpali oryginał na emulatorze C64.

Idealnie by było, gdybyś wymyślił jakiś oryginalny pomysł na grę :) No, chyba że to ma być dalszy trening programowania w Amosie, to wtedy to może ma sens.

Amos się nada do gier logicznych, albo przygodowych. Czyli takich, które nie wymagają dużej dynamiki i miliona poruszających się naraz obiektów.

Albo gra typu celowniczek na statycznym tle, coś jak
Take'em Out Youtube Longplay



Ostatnia aktualizacja: 20.02.2022 23:24:06 przez mastaszek
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