[#31] Re: Klon PONGa w AMOSIE

@chicago, post #29

Duszki są pobierane z ekranu. Dokładnie są to 2 paletki i piłeczka. Wpierw oczywiście rysowane są na ekranie 2 elementy - jedna paletka i piłeczka kolorem białym, instrukcją BAR. Potem pobierane są duszki a potem na czarno zamalowywany ten obszar. Druga paletka jest pobierana z 1 paletki.

Instrukcja
BAR
rysuje wypełniony prostokąt. Jej argumentami są 2 współrzędne (x,y) górnego lewego i dolnego prawego rogu tego prostokąta.

Kolor jakim wypełniony będzie prostokąt ustawia instrukcja
INK
.

W instrukcji INK podajemy tylko nr koloru z palety kolorów. W naszym przypadku paleta ma 32 kolory (od 0 do 31). Kolor 0 i 1 są białe a reszta czarne. Wyjątek stanowi kolor "mrugający" różnymi barwami. Ma nr 3.

Mamy jeszcze instrukcję PEN. Różnica między PEN a INK jest taka, że PEN dotyczy koloru tekstu używanego np. przez instrukcję PRINT (w naszym przypadku wyniki) a INK koloru wykorzystywanego przez instrukcje rysujące na ekranie figury, punkty, linie itp.

Paletę tworzymy natomiast instrukcją

Palette


i podajemy w kolejności nasycenie kolorów w standardzie R(ed) G(reen) B(lue) w wartościach szestnastkowych. (0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F)

W naszym przypadku:

Palette $000,$000,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF

Logicznie rzecz biorąc dwa skrajne kolory czyli biały i czarny złożone będą z wartości maksymalnej/minimalnej RGB czyli czarny - minimalne natężenia poszczególnych składowych R-0, G-0, B-0 czyli razem $000.

Używamy znaku $ aby poinformować AMOSa, że wpisujemy wartość nie dziesiętnie a właśnie szesnastkowo.

Kolor biały to właśnie maksymalne natężenia składowych RGB czyli $FFF.


Ostatnia aktualizacja: 30.10.2014 14:59:50 przez pong777
[#32] Re: Klon PONGa w AMOSIE

@pong777, post #28

Niedługo powstaną niezliczone wariacje ponga w amosie, tak jak stało się z oryginalnym pongiem :)

Czekamy też na grę Ping Pong by Pong777


Ostatnia aktualizacja: 30.10.2014 17:40:11 przez sanjyuubi
[#33] Re: Klon PONGa w AMOSIE

@sanjyuubi, post #32

Daj Boże...
[#34] Re: Klon PONGa w AMOSIE

@pong777, post #33

Nowa wersja ze źródłami, bankiem dźwięków i plikiem wykonywalnym

link
[#35] Re: Klon PONGa w AMOSIE

@pong777, post #31

Po co otwierasz ekran w 32 kolorach?
[#36] Re: Klon PONGa w AMOSIE

@cholok, post #35

Słuszne pytanie. Nie wiem dlaczego, ale pod WinUAE mam przekłamania w grafice w sprajtach jeśli otworzę tylko 2 kolory. Siedziałem nad tym 4 h bezskutecznie. Po otworzeniu 32 kol. wszystko wraca do normy. Dziś sprawdzę to na żywej Ami.
[#37] Re: Klon PONGa w AMOSIE

@pong777, post #34

Skoro używasz banków dynamicznie (tworzenie, wgrywanie itp.) to upewnij się, że nie nagrywasz ich z kodem wykonywalnym i źródłowym. Na razie je masz, czyli raz są wgrywane z kodem, a potem jeszcze raz komendą.
[#38] Re: Klon PONGa w AMOSIE

@pong777, post #36

Otwórz 4 kolorowy.
[#39] Re: Klon PONGa w AMOSIE

@pong777, post #36

Jak wygladaja te przeklamania?
[#40] Re: Klon PONGa w AMOSIE

@pong777, post #36

Używasz tego wynalazku: AMOS for windows

Czy instalowałeś jak należy z dyskietek?

W ogóle jakiej wersji używasz?
[#41] Re: Klon PONGa w AMOSIE

@cholok, post #37

Nie wgrywam komendą - jest REM przed LOAD.

Przekłamania już nie występują i nie wiem co doprowadziło do ich istnienia.
[#42] Re: Klon PONGa w AMOSIE

@pong777, post #41

Ale też mam inny zgryz. Jak usunę wszystkie banki - ERASE ALL i załaduję bank dźwięków nie ładuje mi się pierwsza paletka i piłka na ekranie. Wrzuciłem nowe źródła na ftp. Sprawdzi ktoś co może być nie tak?

link

Dodałem funkcjonalność - po 15 odbiciach piłka przyspiesza.
[#43] Re: Klon PONGa w AMOSIE

@pong777, post #42

robimy Erase all

bank ladujemy przez
Load "g:sounds.abk",5


Porzadkujemy sprajty, zamieniamy trzy sprajty 16-kolorowe (lacznie szesc sprajtow) na trzy 4-kolorowe a wiec wywalamy z programu sekcje:

Bar 0,40 To 10,90
Bar 0,120 To 10,130
Get Sprite 2,0,40 To 11,91
Get Sprite 4,0,40 To 11,91
Get Sprite 6,0,120 To 11,131
Ink 0
Bar 0,40 To 10,90
Bar 0,120 To 10,130


w jej miejsce wpisujemy

Gosub Wytnij_Sprajty


czesc kodu
Sprite 2,130,Y1,1
Sprite 4,436,Y2,2
Sprite 6,X3,Y3,3

zamieniamy na
Sprite 1,130,Y1,1 : Rem paletka gracz 1 
Sprite 2,436,Y2,1 : Rem paletka gracz 2
Sprite 3,X3,Y3,2 : Rem pilka


a na koncu programu dodajemy sekcje
Wytnij_Sprajty:
Screen Open 1,320,256,4,lowres
Wait Vbl
Screen 1
Cls 0
Ink 1
Bar 0,40 To 10,90
Bar 0,120 To 10,130
Get Sprite 1,0,40 To 11,91 : rem paletka pierwsza i druga
Get Sprite 2,0,120 To 11,131 : rem pilka
Wait 10
Screen Close 1
Screen 0
Wait Vbl
Return



Ostatnia aktualizacja: 04.11.2014 03:51:23 przez selur

Ostatnia aktualizacja: 04.11.2014 03:52:06 przez selur
[#44] Re: Klon PONGa w AMOSIE

@selur, post #43

Dzięki za zajęcie się tematem. Może nocką uda mi się przetestować Twoje propozycje zmian. Natychmiast napiszę i wrzucę nowy kod źródłowy.
[#45] Re: Klon PONGa w AMOSIE

@selur, post #43

Zadanie domowe odrobione.
Paletka została zmniejszona.
Kod źródłowy zamieszczam również w postaci TXT z komentarzami.

link

Proszę otwierać w programie np. Notatnik++
Są wcięcia w kodzie ułatwiające jego przeglądanie.

Źródło w AMOSie też uaktualnione.

link

Niebawem wersja skompilowana oraz w postaci ADF.

Serdeczne podziękowania dla Selura za pomoc przy sprajtach.

Do dopracowania została kwestia fizyki odbicia piłeczki po kontakcie z paletkami - obliczanie kąta odbicia i ustalenia wektora trajektorii piłeczki.



Ostatnia aktualizacja: 08.11.2014 00:01:20 przez pong777
[#46] Re: Klon PONGa w AMOSIE

@pong777, post #45

Teraz ten kod jest sporo czytelniejszy niż pierwsza wersja (level up: experience +2).

Ostatnia aktualizacja: 08.11.2014 14:28:42 przez sanjyuubi
[#47] Re: Klon PONGa w AMOSIE

@groovebox, post #40

Lecę z AMOS Professional v. 2.0 pod WinUAE.

Jeśli ktoś zada sobie trud przeglądnięcia kodu i uruchomienia gry a napotka coś czego nie rozumie proszę o napisanie o tym tutaj. Postaram się dogłębniej wyjaśnić instrukcje i mechanizmy władające grą.

Ostatnia aktualizacja: 10.11.2014 15:22:32 przez pong777
[#48] Re: Klon PONGa w AMOSIE

@pong777, post #47

Dostępna jest już wersja ADF do pobrania stąd:

link

Jest to dyskietka samobootująca oraz można jej też używać z poziomu systemu.
Idealna dla Gotekowców, UAEowców i Minimigowców.
Rzecz jasna można zgrać do fizycznej dyskietki - też musi działać.

Dyskietka zawiera:

* kod źródłowy AmiPonga w AMOSie Pro 2.0
* kod źródłowy gry w formie pliku tekstowego
* ikonkę gry
* zasoby dźwiękowe w formie plików IFF
* wersję skompilowaną gry gotową do uruchomienia z Workbencha lub CLI

PS.
AMOS.library została zintegrowana z plikiem gry i nie jest wymagana do uruchomienia
[#49] Re: Klon PONGa w AMOSIE

@pong777, post #36

Otwierasz ekran w 4 kolorach, nie może być w 2, bo używasz koloru nr 2 (flash).
Paleta: 0,biały i biały od 16,17,18. Reszty nie musisz definiować, daj tylko przecinki.
Curs off dajesz przed cls 0 (dodaj koniecznie 0).
Używasz Pen 1 dla tekstu, dodajesz komendę Paper 0 (tło). Używasz Ink 1 nie 4.
Aha, stała True, False jest zdefiniowana w Amosie, więc ich używaj.
[#50] Re: Klon PONGa w AMOSIE

@cholok, post #49

Dzięki za rady. Niebawem aktualizacja...
[#51] Re: Klon PONGa w AMOSIE

@cholok, post #49

Mała poprawka, bo jak dobrze mniemam, używane są trzy duszki w grze. Dwa z nich to paletki a trzeci to piłeczka. Czyli w tym przypadku należy dla duszków zdefiniować następujące kolory (licząc że pierwszy kolor w palecie to pierwszy a nie zerowy). Ustawiamy numery kolorów dla duszków 0-ego i 1-ego: 17,18,18 (kolor numer 16 jest nieużywany). Dla piłeczki czyli duszka o numerze 2 ustawiamy kolory 21,22,23 (kolor 20 jest nieużywany).
[#52] Re: Klon PONGa w AMOSIE

@asman, post #51

hmm, odpaliłem sobie adf na WinUAE i mam takie pytania, takie podstawowe zwykłego usera:
1. czym się steruje paletki, przydała by się jakaś intrukcja w grze
2. nic nie ruszam na klawiaturze a gra sma działa nabija licznik, przydała by się jakaś pauza i klawisz starowania od początku
3. czy można grać z komputerem czy we dwóch? czy będzie można wybierać?
4. fajnie by było aby licznik był na samej górze i wyglądał identycznie jak paletki i piłka
5. piłka strasznie szybko lata, to tak ma być? czy prętkość się staruje? można by dodać poziomy utrudnień w ten sposób
6. tabela wyników na koniec? statystyki?
[#53] Re: Klon PONGa w AMOSIE

@JacK_Swidnik, post #52

nie doczytałem że tylko na dwa joye i bez komputera
no to muszę odpalić na amidze i sprawdzić jak działa
[#54] Re: Klon PONGa w AMOSIE

@JacK_Swidnik, post #53

...w WINUAE zakladka Host - Game Ports - Mouse and Joystick settings - Port 2 - ustawiasz klawisze jako joystick.
[#55] Re: Klon PONGa w AMOSIE

@JacK_Swidnik, post #52

Piłka lata normalnie - trzeba w WinUAE ustawić opcję CPU - "Approximate A500/A1200 or cycle-exact".

Gramy na 2 lub z komputerem.
Standardowo klawiszami na klawiaturze numerycznej - 8/2/4/6.

Jeśli nie poruszamy myszką nic a nic to gramy z komputerem - tryb P2P włącza się jak ruszysz myszką/drugim joystickiem.
[#56] Re: Klon PONGa w AMOSIE

@pong777, post #55

ok, już sobie poradziłem, dzięki
działa super
a tu znalazłem taką ciekawostkę
fotka oryginału kolegi rafamiga , zdjęcie jego autorstwa z RetroKomp 2014 z Gdańska
udostępnił na speccy.pl

https://plus.google.com/photos/106062671883016700163/albums/6080149202880928161/6080149203261880402?pid=6080149203261880402&oid=106062671883016700163

Ostatnia aktualizacja: 10.11.2014 21:41:43 przez JacK_Swidnik
[#57] Re: Klon PONGa w AMOSIE

@pong777, post #55

Może trochę większy poziom trudności? pomysł Przeciwnik słaby jak barszcz
[#58] Re: Klon PONGa w AMOSIE

@JacK_Swidnik, post #53

sprawdziłem na A1200
i działa wyśmienicie, bez porównania niż na WinUAE
[#59] Re: Klon PONGa w AMOSIE

@parallax, post #57

W następnym wydaniu będzie opcja wciskania klawiszy od 1 do 5 celem zmiany poziomu inteligencji gracza komputerowego i od 6 do 0 celem zmiany szybkości rozgrywki.
[#60] Re: Klon PONGa w AMOSIE

@pong777, post #59

O właśnie pomysł Możliwość zmiany szybkości też by się przydała OK
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