Posty

Nowy strój muzyczny - 256 / 432 Hz

Obraz
Opracowując system dźwiękowy dla BasicC przy okazji wymyśliłem nowy strój muzyczny. Co to i po co... ? Strój określa jakie częstotliwości mają poszczególne dźwięki gamy. Początkowo chodziło o wymyślenie prostego sposobu na wyliczenie tych częstotliwości. Najpopularniejszy strój to tzw. system równomiernie temperowany, w którym stosunek częstotliwości dwóch kolejnych dźwięków wynosi gdyż system ten zakłada podział oktawy na 12 części w postępie geometrycznym. Może nie jest to specjalnie skomplikowane, ale jednak... Częstotliwość dźwięku A określona została na 440 Hz. Jednocześnie krążą teorie spiskowe, że system ten został narzucony przez złych ludzi, a lepsze właściwości ma muzyka oparta na stroju A=432 Hz. Podkreślić tu należy, że częstotliwość wyjściowa nie jest jedynym, co różni te stroje, o czym większość zapomina. W prawdziwym stroju 432 stosunek sąsiednich dźwięków nie jest stały. Jest on zwany strojem pitagorejskim, a w polskiej Wikipedii strojem naturalnym. Sposób obliczan

BASIC C - biblioteka graficzna, dźwiękowa, graficzny interfejs użytkownika

 Język BasicC mocno sie rozrósł, posiada już w zasadzie wszystko co potrzeba.   Przede wszystkim jest już obsługa biblioteki SDL, czyli akcelerowana grafika, obsługa zdarzeń, urządzeń wejścia-wyjścia. Możliwość kompilacji dla różnych systemów, w tym Android.   BasicGEM - prosty graficzny interfejs użytkownika, częściowo wzorowany na GEM z Atari ST. Udostępnia podstawowe elementy: wybierak plików, okno komunikatu, pola wprowadzania tekstu, przyciski, obsługa menu. Demonstracją jego możliwości jest program graficzny NIKIFOR 2 i oparte na nim demo NIKIFOR ATARI KAWAI dostępne na moich stronach, a ich prezentacja na Youtube.   BasicSND - malutki, ale o niespotykanych możliwościach, system dźwiękowy, wzorowany na GFA Basic z Atari ST i wzbogacony o dodatkowe możliwości. Oprócz podstawowego, wielokanałowego miksera dźwięków samplowanych, posiada generator dźwięków syntezowanych z możliwością kształtowania obwiedni oraz prosty sekwencer. Demonstracyjny program grający losową melodię z użyciem

BASIC C - czy język C może być prosty jak Basic ? Wykorzystanie makr preprocesora.

 Stworzyłem "bibliotekę", dzięki której można programować w C stosując komendy zbliżone do języka Basic, zazwyczaj nie trzeba też używać klamr i średników. Po drobnych modyfikacjach można jej też używać  w C++. Dzięki temu programowanie jest łatwiejsze, a program bardziej czytelny. Ulepszyłem tez obsługę napisów (łańcuchów znaków), planuję dodanie obsługi biblioteki graficznej SDL. Przykładowy program w BASIC C: #include "BASIC.h" double a, b, c, f, tim, Timer=0; FUNCTION (fibo,double n)   IF (n == 1 OR n==0)     RETURN (n)   ENDIF   LET(a, 1)   LET (b ,1)   FOR (i,2,n)     LET (c ,a)     LET (a ,b)     LET (b ,c)     LET (b ,b+a)   NEXT   RETURN (b) ENDFUNC MAIN LET (tim  ,Timer) FOR(t,1,1)   FOR (i,0,45)     LET (f ,fibo(i))   NEXT NEXT LET (tim, Timer - tim) PR$ ("czas: ") PR(tim) PR$(" fibo(5)=") PRINT(fibo(5)) ENDMAIN Aby korzystać z tych możliwości wystarczy dołączyć do programu w C plik nagłówkowy BASIC.h (dodać w kodzie np. <#include &

ROKART - wyścigi samochodzików elektrycznych na torze szynowym

 Jest to realizacja gry, która miała powstać 30 lat temu na Atari, komputerowa wersja popularnej zabawy w ściganie elektrycznymi autkami. Sterowanie polega tylko na dodawaniu i odejmowaniu gazu klawiszem prawy Ctrl (lub lewy dla drugiego gracza). Prezentacja: https://youtu.be/uNeqP-N6wqI LinkI do pobrania wersji Windows i Linux: https://robosy.itch.io/rokart https://drive.google.com/file/d/1A_a8QxFnzYemhIc4eWz-Wt636yQlx6oY/view?usp=sharing Proszę o wpłaty w dowolnej wysokości na moje konto. Wpłacający min. 20 zł może otrzymać dostęp do dodatkowych funkcji, takich jak: drugi gracz, przełączanie widoków, wybór ilości okrążeń, szczegółową instrukcję, wersję dla Androida, być może z dodatkowymi torami.

PONGY - nowa wersja gier Pengo i Tank

 Są to właściwie 2 gry. Pierwsza jest unowocześnioną wersją gry Pengo występującą na różnych komputerach pod różnymi nazwami m. in. Pengy na Atari, Freez'bees na ZX Spectrum i właśnie Pongy na ZX-81. Celem gry jest zabijanie "glutów" poprzez spychanie na nie bloków lodowych. Dodatkowo, by przejść do kolejnego etapu, należy ułożyć 3 "diamenty" w rzędzie obok siebie. Sterowanie strzałkami lub klawiszami Q A O P. Prezentacja: https://youtu.be/m03zlLkAIhk Druga jest wersją tej gry, w której pingwinem sterujemy tylko 1 klawiszem - prawy Ctrl. Dodatkowo, wzorem klasycznych gier typu Tank Combat, dodany został pływający czołg, z którym nasz pingwin toczy pojedynki. Wystrzał następuje w momencie zmiany kierunku pingwina. Na raz można użyć tylko jednej torpedy. Prawdopodobnie będzie możliwość pojedynku 2 graczy. Prezentacja: https://youtu.be/C_N7_EJo0Ds Proszę o wpłaty w dowolnej wysokości na moje konto. Wpłacając min. 20 zł można otrzymać wszystkie wersje gry, na system

PROGRAMOWANIE GIER - fizyka, równania ruchu i dopasowanie prędkości do szybkości komputera

  Chcąc by gra działała prawidłowo na różnych komputerach programista musi brać pod uwagę m. in. różnicę w szybkości działania nie tylko samych komputerów, ale też np. różne częstotliwości odświeżania ekranów zależne od monitora oraz wybranego trybu graficznego.   Kwestię kontroli szybkości działania programu omawiałem w ostatnim odcinku kursu programowania gier  na przykładzie gry ZX-Rajd, zwłaszcza w opisie filmu. W tym artykule wyjaśnię w jaki sposób można sprawdzić szybkość działania gry i jak dostosować ją do danego komputera w oparciu o doświadczenia w pisaniu gier Holka i Ping-Pong w języku RC-Basic.   Pierwszą metoda jest wykorzystanie funkcji synchronizacji z odświeżaniem ekranu, w RC Basic jest to komenda Update. Poniżej fragment kodu, który umieszczamy po tej komendzie w głównej pętli gry: klatki=klatki+1 If hz>60 and Timer-cz < 1200/60 and klatki >= Round(60/(hz-60)) then   klatki=0   update end if cz=Timer Powoduje to ograniczenie szybkości gry do 60 klatek na sek

PING-PONG - nowa retro gra - oryginalny symulator tenisa stołowego.

  Zapraszam do wypróbowania nowej gry sportowej w stylu retro, prawdopodobnie pierwszy (i jedyny, mam nadzieję) taki symulator tenisa stołowego. Duży nacisk został postawiony na wierne odwzorowanie fizyki ruchu piłki, uwzględnione są chyba wszystkie aspekty z tym związane włącznie z podkręcaniem, odbiciem od kantów stołu i siatki. Jest możliwość gry z komputerem lub w dwie osoby. Sterowanie myszką, joystickiem lub klawiaturą. Jako ciekawostka - "sztuczna inteligencja" gracza komputerowego zawarta jest w 2 linijkach kodu, cały kod gry zajmuje ok. 16 KB, język RC Basic.   Wersja shareware (uproszczona, ale w pełni grywalna) dostępna będzie w moim POBIERAKU . Gra działa w systemie Windows, będzie też wersja na Androida oraz Linux (w razie potrzeby). Instalacja jest analogiczna do wcześniej opisywanej gry Holka, takie same są też zasady korzystania z gry - wplata conajmniej 20 zł upoważnia do otrzymania pełnej wersji gry.   Tradycyjnie zachęcam do zgłaszania uwag dotyczących gry.