kategoria: AMOS
[#331] Re: Tworzenie gier

@tukinem, post #330

Masz świetny warsztat i sposób pracy. Do każdej gry podchodzisz z należytą starannością. W Sokobanie załączyłeś o ile pamiętam kilkadziesiąt pełnych poziomów.

Poprawiasz, usprawniasz swoje gry. I to wszystko nauczywszy się AMOSa od podstaw. Mogę Ci tylko złożyć serdeczne gratulacje.
1
[#332] Re: Tworzenie gier

@tukinem, post #329

Spacją chowasz dolne menu


Cool, tak zrobiłem.

Podczas gry znikł mi kawałek podłogi i spadłem


[#333] Re: Tworzenie gier

@tukinem, post #329

Pomaranczowy pasek to widoczna czesc ekranu dolnego z punktacja, czyli pewnie zamiast 16 pikseli wysokosci ekranu masz gdzies 24.

Natomiast gre mozna zawiesic stajac przypadkiem jakos na platformie tak, ze przy wejsciu na drabine ludzik wisi w polowie na drabinie/w powietrzu wtedy nie mozna nim ruszyc w ogole.
Ogolnie sterowanie jest dla hardkorowcow, ja nawet 2 levelu nie ukonczylem
[#334] Re: Tworzenie gier

@karolb, post #332

i o to chodzi :D tak jak w oryginale :) nie wiem jak było w wersji na C64, która jest pokazana na youtube, ale w wersji PC właśnie tak się dzieje i tak to zrobiłem. Najwięcej takich zmian jest w 10 levelu.
https://www.youtube.com/watch?v=8i3JznA2wDY&t=161s

Ostatnia aktualizacja: 03.10.2021 14:14:15 przez tukinem
[#335] Re: Tworzenie gier

@selur, post #333

Tak racja. Gra zawiesza się gdy wskoczysz źle na drabinkę. Czasem uda się odskoczyć w bok a czasem się zawiesza. Poprawiłem już, gdy wskakuje się z boku na drabinkę. Trzeba tylko mieć joystick w pozycji 0. Zatrzymuje się wtedy idealnie na środku na drabince i można się wspinać lub schodzić. Pewnie jeszcze coś popoprawiam, żeby to działało lepiej. Dużo pomógł mi Mastaszek z samą obsugą pamięci i zczytywaniem kolorów z planszy. Bez pomocy tu użytkowników z forum to żadna z tych gier, które robię nie powstałaby nigdy. Zaraz wezmę się do sprawdzenia tego pomarańczowego paska.
Już się domyślam skąd ten pasek. Mam ustawiony full screen fit-window. A w dodatku jadę na Winuae beta.

Ostatnia aktualizacja: 03.10.2021 14:25:09 przez tukinem

Ostatnia aktualizacja: 03.10.2021 14:25:27 przez tukinem
[#336] Re: Tworzenie gier

@selur, post #333

https://szybkiplik.pl/DmBm35bs3G
tu już poprawiłem.
czyli pewnie zamiast 16 pikseli wysokosci ekranu masz gdzies 24

nie mogę dać 16 pikseli, ponieważ przestawia mi się cały tekst na tym ekranie i nie wyświetla wszystkiego. Wystarczy, że przestawię na 23 piksele i już jest dziadostwo. Teraz jest dobrze. Przy ustawieniu fit-window w Winuae nie wyświetlało mi całego dołu ekranu i dlatego nie wiedziałem, że takie artefakty się wyświetlają.
@Hexmage dziękuję za dobre słowa :)
[#337] Re: Tworzenie gier

@tukinem, post #336

do formatowania tekstu sluzy komenda
Print At (x,y);"dowolny tekst"; gdzie x,y to konkretne wspolrzedne tekstowe a srednik na koncu nie powoduje przejscia do nastepnej linii

Widocznosc i pozycje dowolnego ekranu o numerze nr , okreslasz komenda Screen Display nr,sx,sy ,szer,wys gdzie sx i sy to wspolrzedne sprzetowe.
[#338] Re: Tworzenie gier

@selur, post #337

Miałem tak:
SCREEN OPEN 1,320,24,16,LOWRES
SCREEN DISPLAY 1,130,287,320,24.
Co do PRINT AT, to właśnie tego używałem przy tworzeniu Screena z punktacją.

Poprawiłem to, ale teraz przy ustawieniu fit-window ucina mi dół lekko. Nie ma już paska pomarańczowego.

Poprawiłem też zczytywanie drabinki i różowej liny do zjeżdżania. Ogólnie nie jest idealnie ale jest lepiej. Za tydzień wrzucę wersję z poprawkami.

Ostatnia aktualizacja: 03.10.2021 18:52:12 przez tukinem
[#339] Re: Tworzenie gier

@tukinem, post #338

Podepnę się pod temat. Tworzę sobie wraz z moim synkiem taką prostą grę w której ważka ma za zadanie zjeść komara .



Mam pytanie, w jakiś sposób aktualizować wynik ważki z liczbą pożartych moskitów? Zadeklarowałem zmienną globalną

GLOBAL STAN 
STAN=0

w pętli Do Loop odbywa się cała gra i sprawdzam też tam kolizję ważki z komarem
Do 
   ...

   if Bob Col(1) = -1 Then STAN = STAN + 1 : Print At(0,2);"WYNIK: ";STAN

   Wait Vbl

Loop

Oczywiście gra "przycina się" przy każdej kolizji dwóch bobów. Przypuszczam, że jakoś inaczej powinienem aktualizować aktualny wynik ważki. Będę wdzięczny za pomoc
[#340] Re: Tworzenie gier

@MarX, post #339

Pierwsze co przychodzi do głowy - po co za każdym razem pisac "WYNIK: " jak można tylko raz i potem aktualizować tylko liczbę? ;)

Generalnie tak to wypada robić że aktualizujesz tylko to co trzeba i kiedy trzeba. A że AMOS się ścina na takim krótkim tekście? Trochę dla mnie dziwne, ale to nie mój język. ;)
1
[#341] Re: Tworzenie gier

@MarX, post #339

Po pierwsze. Nie używaj

STAN = STAN + 1

Tylko

Stan add (sprawdź w readme amosa czyja to dobrze napisałem) Ten sposób jest szybszy.

Po drugie

Print At(0,2);"WYNIK: ";STAN

To jest baaaaardzo wolne. Za każdym razem gdy będziesz to odświeżać to gra będzie freezować.

Lepiej pomyśleć na jakąś graficzną ikoną (patrz amos tuorial), Która będzie wklejana w to miejsce i prezentowała wynik.


Amos do takich prostych produkcji jest niezastąpiony i bardzo praktyczny. Jeśli wiesz jak to taką grę można napisać w jeden wieczór.
1
[#342] Re: Tworzenie gier

@Wankowicz, post #341

Nie "add" tylko "inc". Ale to nie pomoże bo będzie ścinać. Na chłopski rozum przy kolizji bobów zmienna STAN zaczyna się powiększać i przez to się ścina. Ja bym zrobił to tak:
IF BOB COL=-1 THEN STAN=STAN+1: BOB OFF (numer boba komara)
Potem zmieniamy współrzędne komara i włączamy jego boba. Chodzi o to żeby kolizja bobów trwała tylko przez jedną klatkę. Inaczej będzie naliczać punkty cały czas przy kolizji. Dodaj też w pętli głównej
WAIT VBL dla płynności.
A co do PRINT AT można tego użyć ale tylko właśnie w momencie kolizji czyli
IF BOB COL=-1 THEN PRINT AT ... : STAN=STAN+1 : BOB OFF (numer boba komara)

Jeśli bez kolizji co klatkę będziemy aktualizować PRINT AT to gra będzie ostro ścinać na niskich procesorach.

Ostatnia aktualizacja: 06.10.2021 18:07:43 przez tukinem
[#343] Re: Tworzenie gier

@tukinem, post #342

Nie "add" tylko "inc". Ale to nie pomoże bo będzie ścinać. Na chłopski rozum przy kolizji bobów zmienna STAN zaczyna się powiększać i przez to się ścina. Ja bym zrobił to tak:
IF BOB COL=-1 THEN STAN=STAN+1: BOB OFF (numer boba komara)

Dzięki, wyłączenie boba z komarem rzeczywiście trochę przyśpiesza OK. Będę kombinował, może podmienię/zatrzymam na chwilę boba z ważką, żeby ten lag nie był odczuwalny.
[#344] Re: Tworzenie gier

@MarX, post #339

Sorki nie przyjrzałem się dokładnie. Wszystko masz dobrze. WAIT VBL i PRINT AT masz odpowiednio. Dopisz przy kolizji tylko BOB OFF nr boba komara. Poniżej napisz tak:
IF STAN=TRUE THEN X=0+RND(200) : Y=0+RND(200) : STAN=FALSE

Tylko zamiast X i Y podajesz zmienne współrzędnych komara. Przy następnej klatce pętli głównej komar się pojawi z nowymi współrzędnymi.

Ostatnia aktualizacja: 06.10.2021 18:17:29 przez tukinem
1
[#345] Re: Tworzenie gier

@MarX, post #339

Komar Ci wyszedł idealny OK
[#346] Re: Tworzenie gier

@QUAD, post #345

Komar Ci wyszedł idealny

Dzięki. To akurat robota mojego ośmiolatka w PPaint

Ostatnia aktualizacja: 06.10.2021 20:43:35 przez MarX
[#347] Re: Tworzenie gier

@MarX, post #346

no i znowu nie sluchali selura co mowil...

A selur mowil to, ze PANELE z punktacja, zyciami, przedmiotami, pociskami itp.. itd..robi sie w Amosie na osobnym ekranie fizycznym!! RTFM!


screen open 1,320,16,8,lowres
flash off: curs off: cls 0
screen to front 1
print at(0,0);"PUNKTACJA :";


a glownej w petli gry
Do
...
IF BOB COL=-1 THEN Punkty=punkty+1: gousb E_wyswietl: STAN=STAN+1 : BOB OFF (numer boba komara)
....
loop

E_Wyswietl:
Screen 1
printa at(10,0);Punkty;
screen 0
return
2
[#348] Re: Tworzenie gier

@selur, post #347

Wkradła Ci się literówka, w głównej pętli gosub, to tak dla chłopaków na wszelki wypadek, a ja mam przy okazji pytanie czemu gosub a nie procedurka?
Amosa nie tykalem dawno bo podoba mi się ACE od KaiNa, ale ciekawi mnie to.
[#349] Re: Tworzenie gier

@selur, post #347

Dzięki Selur, to rzeczywiście dobry pomysł. Dodam ten ekran w finalnej wersji (jeszcze przed wysłaniem ADF'a z grą do CD Projektu )

Ostatnia aktualizacja: 07.10.2021 10:35:55 przez MarX
1
[#350] Re: Tworzenie gier

@Lucus, post #348

Jak ktos zaczyna przygode z AMOS'em to nie powinien uzywac Procedur na dzien dobry, tylko korzystac z etykiet i komendy Gosub i Goto.
Wywolanie podprogramu komenda Gosub w zasadzie robi to samo co wywolanie procedury ale roznica jest taka, ze jak nie ma procedur w programie, to wszystkie zmienna sa dostepne w kazdym miejscu amosowego programu. W przypadku uzywania procedur musimy dokladnie pamietac co jest zmienna lokalna a co globalna.
1
[#351] Re: Tworzenie gier

@selur, post #350

Z tego co pamiętam, a nie zaglądałem do Amos'a ponad 20 lat, to deklarowało się na wstępie które zmienne są global i działały poza procedurami.
[#352] Re: Tworzenie gier

@ryshard, post #351

Właśnie to miał na myśli, że trzeba deklarować które są jakie i pamiętać potem.

Ja z kolei pamiętam że jest polecenie "Global On" i "Global Off". Wychodzi na to że można mieć wszystkie zmienne z automatu globalne szeroki uśmiech

edit----

@selur: Stosowanie procedur jest o tyle eleganckie, że można je "pozwijać" w edytorze, i program robi się bardziej przejrzysty.

edit2----
dupa, coś mi to "Global On" nie działa, ehhhhhh


Ostatnia aktualizacja: 07.10.2021 14:36:35 przez karolb

Ostatnia aktualizacja: 07.10.2021 14:39:29 przez karolb
[#353] Re: Tworzenie gier

@karolb, post #352

MarX w swoim kodzie na początku ma wpisane:
GLOBAL STAN
także chyba myślał o zastosowaniu procedury.
[#354] Re: Tworzenie gier

@selur, post #350

Selur /jak zwykle/ ma rację. I procedur trzeba w amosie unikać nie tylko na początku przygody, tylko zawsze.

> LINK: Dlaczego nie procedury
1
[#355] Re: Tworzenie gier

@mastaszek, post #354

"I procedur trzeba w amosie unikać .."

no ale zebym nie zostal ZLE zrozumiany...

Unikac procedur ALE w malych programach lub tam gdzie trzeba miec maksimum predkosci.
Jak ktos pisze wielka gre, to procedur nie uniknie! Bo nie da sie napisac 10 000 linijek kodu nie zwijajac ich w procedury. Pozniej poprawianie takiego kodu zajeloby 10 lat z czego 9 lat skrolowanie ekranu edytora z gory na dol ok, racja

Piszcie jak tam chcecie, byle by to pozniej w miare jakos chodzilo a nie ze do Sokobana w Amosie wymagania: procesor 68040 i 4 MB Ramu i 100 MB wolnego miejsca na HDD
1
[#356] Re: Tworzenie gier

@mastaszek, post #354

Procedury najlepsze są do obsługi okien. Wtedy git jest bo nic się nie plącze. A goto/gosub do Screen Open w obębie ekranu i programu głównego.
Jak już okno trzeba otworzyć to >procedure i Window Open. Nawet dobre bo można zabezpieczyć odtwarzanie tła spod okna a wraz z obsługą na procedurach pełny komplet wygód jest dla programisty.

Ostatnia aktualizacja: 07.10.2021 21:26:56 przez mrcha_67
[#357] Re: Tworzenie gier

@mrcha_67, post #356

Przypominam o ptrzebie DoubleBuffering dla EKRANu i zastosowaniu komend serii "Autoback" 0,1,2
przy otwieraniu okien Window Open z nadrzędnym "Procedure". 'Bednarski na kłopoty' >>> wszystkie poroblemy z obługą okien znikną!. Mozliwe jest tworzenie własnego MENU i paneli menu z dialogami interfac'u bez użycia MUI na poziomie optycznego design'u Windows 98/XP. W AMOSie to jest możliwe!, a nawet proste... Menu programów za poziomie lepszym niż amigowe MUI! Dla zapominalskich: MUI sprzęga do Amiga E.


Ostatnia aktualizacja: 08.10.2021 14:15:46 przez mrcha_67
[#358] Re: Tworzenie gier

@selur, post #337

Witam.
https://szybkiplik.pl/j3pCWubcJ5
nowa wersja Jumpman

co nowego:
- usunięty kawałek pomarańczowego paska na dole
- dodany ekran przegranej (gameover)
- poprawione wskakiwanie na drabinkę oraz zjeżdżanie na różowej lianie
- dodany level 11 i prawie 12

brakuje jeszcze:
- dokończenia levelu 12
- ekranu ukończenia gry
(- menu głównego)

Standardowo procesor 68000 minimum 14MHz, ale im więcej tym lepiej.
Przypominam:
przy uruchamianiu w ekranie tytułowym należy przytrzymać FIRE
dla niecierpliwych: [`] (tylda) to przejście do następnego poziomu
dla bardziej niecierpliwych: [ESC] to wyjście z gry :D

Ostatnia aktualizacja: 09.10.2021 20:11:41 przez tukinem
1
[#359] Re: Tworzenie gier

@tukinem, post #358

https://szybkiplik.pl/nHk7NjCsLy
Dzisiejsza wersja zawiera:
- animacja ukończenia gry
- ekrany startowe poziomów

Nie będę dodawać menu głównego gry. Jedynie jeszcze dołożę zmiany levelu 12 tak jak jest w oryginale, bo póki co nic się w nim nie dzieje. Ale mniej więcej już ta gra będzie tak wyglądać i działać ostatecznie. Dzisiaj lub za tydzień będzie wersja ostateczna.
1
[#360] Re: Tworzenie gier

@mailman, post #1

https://szybkiplik.pl/dbb85eZMmH

Witam po długiej przerwie. Nic nie pisałem tu w temacie, żeby nikogo nie drażnić :) Z pomocą Mastaszka stworzyłem "demko", które dzisiaj stwierdziłem, żeby ujrzało światło dzienne. Niestety musiałem ogromnie okroić grafikę, gdyż użyty jest Dual Playfield, więc paleta kolorów jest 8-kolorowa. Animację również ukróciłem do minimum. Chciałem po prostu sprawdzić, jak sobie poradzę z tworzeniem platformówki komnatowej z elementami, kiedy bohater jest niekiedy zasłaniany przez niektóre elementy planszy. Dodatkowo, NIESTETY, musiałem samego bohatera zmniejszyć do rozmiarów 16 pikseli, gdyż większych sprajtów OCS/ECS nie pokaże (a przynajmniej nie w Amosie). To też bardzo popsuło grafikę. Oceńcie sami.
ESC - wyjście
LEFT/RIGHT - bieganie
UP - skakanie (skakanie na bok oczywiście jest) / machanie bronią
DOWN - kucanie / chowanie broni
FIRE - wyciąganie broni

Jest to dopiero "prototyp" gry. Dźwięku oczywiście nie ma póki co. Wiem, że to brzydko wygląda i nie jeden z Was powie, że to strata czasu, ale myślę że każdy trening programowania jest dobry, nawet gdyby chociaż jednej osobie się to spodobało. Powiem szczerze, że to efekt pracy wielu weekendów. Zobaczcie sami.



Ostatnia aktualizacja: 14.11.2021 18:57:19 przez tukinem

Ostatnia aktualizacja: 14.11.2021 18:57:56 przez tukinem
2
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