kategoria: AMOS
[#121] Re: Gra w Amosie

@sordan, post #120

Zwiększaj wartość zmiennej przed każdym vblank i zeruj ją jeśli fire nie jest wciśnięty. W programie sprawdzaj wartość zmiennej i stawiaj bombę po osiągnięciu ustalonej wartości, po czyum zeruj zmienną i ustawiaj jakąś flagę co by licznik nie liczył póki nie zwolnisz fire.

Ostatnia aktualizacja: 27.05.2015 02:08:32 przez sanjyuubi
[#122] Re: Gra w Amosie

@sordan, post #120

Nie probowalem czegos takiego. W teorii to pewnie sie da ale czy w amosowej praktyce to bedzie prawidlowo dzialac, tego niestety nie wiem i nie mam zbytnio pomyslu.

Moze RAL cos wymysli w tej kwestii
[#123] Re: Gra w Amosie

@sanjyuubi, post #121

Nie znam się kompletnie na AMOSie, ale myślę, że powinieneś zrozumieć koncepcję. Możesz też to zrobić z użyciem timera.

CZAS_NA_AKTYWACJE_BOMBY = 25

if LICZNIK_AKTYWACJA_BOMBY = CZAS_NA_AKTYWACJE_BOMBY gosub POSTAW_BOMBE:
....

//licznik dobije maksymalnie do 26 i tak zostanie póki nie zwolni się FIRE, dzięki czemu bomba zostanie postawiona tylko raz podczas trzymania fire gdy zmienna LICZNIK_AKTYWACJA_BOMBY będzie miała wartość 25
if joy(1)=16
if LICZNIK_AKTYWACJA_BOMBY != CZAS_NA_AKTYWACJE_BOMBY then LICZNIK_AKTYWACJA_BOMBY = LICZNIK_AKTYWACJA_BOMBY + 1
else
LICZNIK_AKTYWACJA_BOMBY = 0

end if

wait vbl



Ostatnia aktualizacja: 27.05.2015 07:17:25 przez sanjyuubi
[#124] Re: Gra w Amosie

@sordan, post #120

Musisz zrobić kolejny myk z timerem jeśli fire wciśnięty zwiększaj licznik, jeśli nie ustawiaj na 0. Po przekroczeniu określonej wartości i puszczeniu przycisku stawiaj dodatkowo bombę.
[#125] Re: Gra w Amosie

@sordan, post #116

no coraz lepiej :) róbcie te levele bo chce zagrać, a potem jakieś DLC
[#126] Re: Gra w Amosie

@selur, post #122

Kurczę, miałem już zapomnieć całkiem AMOSa :)
Rozwiązałbym to na przy pomocy AMALa, jeden program do obsługi ruchu i strzelania, drugi do obsługi bomb. Dlaczego AMAL - bo nie wstrzymuje działania głównej pętli programu a tam można odmierzać czas, wykrywać kolizje itd. Dajcie mi panowie tylko trochę czasu to sobie składnie i instrukcje przypomnę ;)
[#127] Re: Gra w Amosie

@RAL, post #126

Rozwiązania które opisaliśmy powyżej też nic nie wstrzymują :P
[#128] Re: Gra w Amosie

@QUAD, post #125

A może by tak dostarczyć ludowi narzędzia do tworzenia leveli i niech ludzie zgłaszają swoje konstrukcje, na pewno na EAB lub amiga.org tez by się znalazło parę propozycji i tych leveli mogło by być więcej niż 10 i czas by się także skrócił.

To rozwiązanie nie wstrzymuje programu, tylko wykorzystuje do liczenia fakt, że program działa w pętli i każda pętla to zwiększenie licznika o 1 i mozna generalnie użyć liczby 8 bitowej o ile taka w amosie istnieje, bo timer pewnie jest 32-bitowy.

CZAS_NA_AKTYWACJE_BOMBY = 25
if LICZNIK_AKTYWACJA_BOMBY = CZAS_NA_AKTYWACJE_BOMBY gosub POSTAW_BOMBE:
....
//licznik dobije maksymalnie do 26 i tak zostanie póki nie zwolni się FIRE, dzięki czemu bomba zostanie postawiona tylko raz podczas trzymania fire gdy zmienna LICZNIK_AKTYWACJA_BOMBY będzie miała wartość 25
if joy(1)=16
if LICZNIK_AKTYWACJA_BOMBY != CZAS_NA_AKTYWACJE_BOMBY + 1 then LICZNIK_AKTYWACJA_BOMBY = LICZNIK_AKTYWACJA_BOMBY + 1
else
LICZNIK_AKTYWACJA_BOMBY = 0
end if
wait vbl


Ostatnia aktualizacja: 27.05.2015 14:23:40 przez sanjyuubi
[#129] Re: Gra w Amosie

@gohanks, post #127

Rozwiazania w teorii moze i by zadzialalo ale program #123 jest bledny i nijak nie zdziala.


#120
Napisalem wlasnie krotki program, ktory realizuje ta funkcje. Uzylem, jak wczesniej pisal RAL do tego Amala ale program ma dwie duze wady.
Po pierwsze, dziala prawidlowo tylko w trybie przerwan (zatem uzycie Synchro Off odpada) a po drugie, nie mozna okreslic dokladnie czasu w dziesiatych czesciach sekundy, tylko jest to mierzone metoda Pi*oko. Z tym, ze odmierzanie czasu realizuje Amal a nie Amos, dlatego czekam na rozwiazanie RALa, ktore odmierzy czas w glownej petli dla porownania obu rozwiazan.
[#130] Re: Gra w Amosie

@selur, post #129

Rozwiazania w teorii moze i by zadzialalo ale program #123 jest bledny i nijak nie zdziala.


A możesz nam przybliżyć dlaczego (prócz składni AMOSa)?

Ostatnia aktualizacja: 27.05.2015 14:41:07 przez sanjyuubi
[#131] Re: Gra w Amosie

@sanjyuubi, post #130

Wciskasz fajer czekasz az licznik osiagnie prawie maksymalna wartosc ale nie jest to rowne maksimum, puszczasz fajer , ponownie wciskasz fajer i procedura zostaje aktywowana po ulamku sekundy. Nie trzeba silic sie na skladnie AMOSA mozna uzyc skladni zwyklego BASICa, jak ktos potrafi czytac skladnie pseudokodu to odrazu wylapie bledy.
[#132] Re: Gra w Amosie

@selur, post #131

...
if joy(1)=16 and BOMB_TIMER<25 then :16 przepisałem przypuszczam że tu powinna być jakaś maska bitowa
  BOMB_TIMER=BOMB_TIMER+1
elseif joy(1)!=16 then
  if BOMB_TIMER=25 then gosub SET_BOMB
  BOMB_TIMER=0
end if    
...

Logicznie powinno być ok, nie wiem na ile z Amosem ten kod ma wspólnego, ale myślę że zamysł jest jasny.

BTW: Co jest grane z tymi indentacjami w bloku code? :P

Ostatnia aktualizacja: 27.05.2015 15:26:55 przez gohanks
[#133] Re: Gra w Amosie

@selur, post #131

ponownie wciskasz fajer i procedura zostaje aktywowana po ułamku sekundy


A to niby dlaczego?

Licznik osiąga maksymalną wartość 26, bomba zostaje postawiona tylko raz, gdy licznik będzie miał 25, więc póki trzymasz fire licznik będzie miał 26 i bomba nie zostanie nigdy postawiona ponownie, puszczasz fire i funkcja warunkowa resetuje licznik do 0, wciśnięcie fire powoduje ponowne liczenie i bomba zostanie postawiona ponownie gdy licznik osiągnie 25, w następnej petli licznik osiągnie znów 26 jeśli będzie trzymany fire i tak zostanie póki cos nie zresetuje go na 0.

W poście #123 jest błąd ponieważ powinno być tak jak w poście #128 ( if LICZNIK_AKTYWACJA_BOMBY != CZAS_NA_AKTYWACJE_BOMBY + 1 then LICZNIK_AKTYWACJA_BOMBY = LICZNIK_AKTYWACJA_BOMBY + 1 ) , ale przedstawiłem tylko ogólny zarys i koncepcje, bo w Amosie nigdy nic nie programowałem.





Ostatnia aktualizacja: 27.05.2015 16:00:01 przez sanjyuubi
[#134] Re: Gra w Amosie

@sanjyuubi, post #133

Zgaduję, że zagnieżdżony if był niejasny (ciężko zgadnąć do którego if-a był else), koncepcyjnie jest ok.
[#135] Re: Gra w Amosie

@gohanks, post #132

W twoim kodzie bomba zostaje postawiona po puszczeniu fire, u mnie od razu po przekroczeniu danego czasu. autor musi się zdecydować jak ma działać ten mechanizm, choć twój wydaje się być lepszy bo możesz chodzić z wciśniętym fire i stawiać bombę kiedy go zwolnisz.
[#136] Re: Gra w Amosie

@sanjyuubi, post #135

Tak też założyłem :)
[#137] Re: Gra w Amosie

@gohanks, post #134

Możliwe, jak w takim razie zagnieżdża się w amosie kolejne instrukcje warunkowe, ponieważ założyłem z góry, że jak jest użyte "then" to już nie ma "else", a przynajmniej kompilator domysli się do którego IF jest przyporządkowane ELSE.

A może powinno być tak?:

CZAS_NA_AKTYWACJE_BOMBY = 25
if LICZNIK_AKTYWACJA_BOMBY = CZAS_NA_AKTYWACJE_BOMBY gosub POSTAW_BOMBE:
....
//licznik dobije maksymalnie do 26 i tak zostanie póki nie zwolni się FIRE, dzięki czemu bomba zostanie postawiona tylko raz podczas trzymania fire gdy zmienna LICZNIK_AKTYWACJA_BOMBY będzie miała wartość 25
if joy(1)=16
if LICZNIK_AKTYWACJA_BOMBY != CZAS_NA_AKTYWACJE_BOMBY +1
LICZNIK_AKTYWACJA_BOMBY = LICZNIK_AKTYWACJA_BOMBY + 1
endif
else

LICZNIK_AKTYWACJA_BOMBY = 0
end if
wait vbl


Ostatnia aktualizacja: 27.05.2015 16:11:42 przez sanjyuubi
[#138] Re: Gra w Amosie

@sanjyuubi, post #137

Dzieki wielkie panowie za wszystkie rady i poswiecenie swojego czasu. Pozniej bede dzialal i na podstawie waszych wskazowek powinienem cos sensownego wymyslic.
[#139] Re: Gra w Amosie

@sanjyuubi, post #137

Też nie wiem póki co, w wolnych chwilach czytam sobie manuala.
[#140] Re: Gra w Amosie

@gohanks, post #132

BTW: Co jest grane z tymi indentacjami w bloku code? :P


grmrx pewnie na szybko sklecił ten blok zmieniając czcionkę i usuwając białe znaki, generalnie mało przydatny jest ten blok bez tabulatorów, zmniejsza czytelność kodu.

Nie ma jakiegoś plugina w PHP do kolorowania/formatowania składni?
[#141] Re: Gra w Amosie

@sanjyuubi, post #140

Racja w znacznikach [code] tresc staje sie malo czytelna i ciezko ogarnac taki kod (znikaja spacje wielokrotne).
Zatem do przedstawiania jakichkolwiek programow chyba lepiej stosowac zwykly tekst linia po linii.
[#142] Re: Gra w Amosie

@selur, post #141

Ja bym jednak zostawiał na razie w bloku, bo się okaże, że za niedługi czas ktoś go poprawi i będzie trzeba każdy post edytować, żeby to jakoś wyglądało.
[#143] Re: Gra w Amosie

@selur, post #30

No i stalo sie.

Grywalna wersja DEMO jest juz gotowa.

Zmienily sie troche plany co do wydania gry. Miala byc na Revision, ale postanowilem wybrac sie na Retrokomp i zeby z niczym nie jechac to postanowilem, ze przycisne troche z tempem i wystawimy gre w Game Compo wlasnie tam.

Co do samej gry to silnik jest juz caly gotowy. Grafika, muzyka, sample sa. 3 levele sa juz w calosci gotowe i mozna juz grac. Tutaj link jak to wszystko wyglada: Filmik

Gra jest obecnie w wersji DEMO, ze wzgledu na to, ze calej gry nie uda mi sie skonczyc do 16 pazdziernika. Pelna wersje gry bede konczyl po powrocie z Retrokomp i wtedy bede dodawal kolejne levele. Oczywiscie gra bedzie zupelnie za darmo z tym, ze nie moge jeszcze upublicznic wersji DEMO, bo chce (i takie zreszta sa zasady na Retrokomp) wystawic gre po raz pierwszy na Retrokomp w Gdansku, dopiero pozniej gra bedzie dostepna do pobrania.

Ja osobiscie jestem bardzo zadowolony z efektow koncowych. Z praktycznie zerowa wiedza udalo mi sie cos takiego sklepac. Szalu oczywiscie nie ma. Moj kod jest totalnie lamerski, jest wolny i raczej stworzylem `silnik`, a nie prawdziwy silnik gry, ale jest, mozna grac i to sie liczy :) Rzecz jasna sam gry nie zrobilem. Jestem odpowiedzialny tylko za kod. Cala grafike, wspaniala grafike zrobil nasz forumowy kolega aszu. To dzieki niemu gra wyglada tak, a nie inaczej. No i oczywiscie dzieki radom selura udalo mi sie rozwiazac najwieksze problemy, ktore napotkalem podczas programowania. Dzieki chlopaki.
[#144] Re: Gra w Amosie

@sordan, post #143

Fajnie wygląda.

Planujesz dodać ekrany podsumowujące po etapie? Na przykład liczba zabitych potworów, czas przejścia etapu. Z tego jakąś tablicę najlepszych można byłoby stworzyć.
[#145] Re: Gra w Amosie

@sordan, post #143

Gratulacje. Robi wrazenie, w szczegolnosci ze tak szybko udalo Ci sie ogarmac Amosa i zrobic gre na RK/LE. Bardzo ladnie to wyglada.
[#146] Re: Gra w Amosie

@sordan, post #143

Kłaniam się nisko. Podziwiam Twoją pracę, ja sam o ile programować potrafię dotąd nie mogłem niczego stworzyć z powodu mojej choroby, która dotyka funkcje psychiczne ale też i inne funkcje mózgu.

Sam prawdopodobnie jeszcze w tej edycji nic nie wystawię, ale jestem szczęśliwy, bo jestem już studentem drugiego roku informatyki na studiach dziennych na uczelni państwowej. We wrześniu zdałem jeden egzamin poprawkowy i mam już wszystkie przedmioty zaliczone łącznie z różnicą programową, która wynikła ze wznawiania studiów.

Zaliczyłem dodatkowo przedmiot "Zaawansowane programowanie obiektowe w C++" więc na drugim roku będę miał lżej.

Moje zdrowie poprawia się błyskawicznie przy lepszym lekarstwie (biorę kilka, które świetnie ze sobą współpracują). Mimo, że czasem zdarzy się gorsze samopoczucie, jestem w pełni przygotowany na studiowanie na drugim roku.

Zaprogramowanie gry nadal leży w moich marzeniach, na szczęście to marzenie jest coraz bliższe realizacji.

Pozdrawiam i życzę powodzenia w konkursie.

Jeśli czyta to ktoś z organizatorów Retro Komp - to czy mógłby przybliżyć mi termin przesyłania prac, bo dochodzą do mnie sprzeczne informacje - 30 września, albo 16 października. Przy odrobinie szczęścia Sokobana uda mi się wystawić.

Ostatnia aktualizacja: 25.09.2015 09:54:54 przez Hexmage960
[#147] Re: Gra w Amosie

@Hexmage960, post #146

30 września coś działającego, ale do samej imprezy możesz ją update'ować.
[#148] Re: Gra w Amosie

@teh_KaiN, post #147

Dzięki za info, no cóż - zobaczymy.
[#149] Re: Gra w Amosie

@mailman, post #144

Ilosc zabitych potworow raczej sensu nie ma, ale czas w jakim udalo sie ukonczyc dany poziom to bardzo dobry pomysl. Pomysle jak to zrobic i najprawdopodobniej dodam do kazdego levelu najlepszy czas z zapisem wynikow na stale do osobnego pliku, tak zeby przy nastepnym odpaleniu gry, program pobieral poprzednio zapisane wyniki. Zawsze mnie we wszystkich grach denerwowalo to high score, ktore po resecie nie zapisywalo naszych najlepszych wynikow.
[#150] Re: Gra w Amosie

@Hexmage960, post #148

30 września to termin na przesłanie kompletnego zgłoszenia zgodnie z regulaminem. Czyli - Grywalne produkcja (może być demo/preview), 5minutowy film z gry, screeny, opis gry wraz z info o tym w jakim języku gra została zaprogramowana. Jako, ze nie chcemy nikogo zniechęcać, możemy po wcześniejszym dogadaniu zgodzić się na dostarczenie świeższej wersji przed imprezą. Warunkiem zaprezentowania na imprezie nowszej wersji jest aktualizacja zgłoszenia, czyli nowa wersja gry, nowy film, screeny i opis jeśli zaszły większe zmiany. Na imprezie prezentowane będzie video z gry, planujemy także umożliwienie głosującym zagrania w produkcje w miarę dostępności stanowisk ze sprzętem.
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