ZX Spectrum > PROGRAMOWANIE

Pytania od bardzo początkującego

<< < (11/11)

mad1:
Witam ponownie,
Zamierzam napisać nową gierką żużlową. Pomysł chcę przenieść z gry "kreski" na PC, w którą wielu z was miało okazję grać w zamierzchłych czasach.
Mam pytanie o koncepcję algorytmu jazdy i skrętu w lewo. Założenia na początek są takie:
1. Po starcie samoistnie rysuje mi się linia jazdy(ruch jednostajny)
2. Sterowanie jednym klawiszem. Mogę skręcać tylko lewo gdy przytrzymam(nacisnę) klawisz. Gdy go puszczę "motor" jedzie prosto(w kierunku w który skręciłem). Generalnie ma to polegać na jeżdżeniu w kółko.

Teraz pytania:
Jak najlepiej nadać ruch? rysować PLOTEM?
Jak mogłaby wtedy wyglądać ogólna koncepcja algorytmu do otrzymania współrzędnych w celu rysowania linii jazdy?

Moje próby napisania takiego algorytmu w Basicu spełzy na niczym dlatego zwracam z pomocą do was. 

mad1:
Mam pytanie odnośnie komendy PAUSE w Basicu. Domyślnie naciśniecie dowolnego klawisza przerywa taką pauze. Co zrobić by naciśnięcie klawisza nie przerywało pauzy tylko nadal ona trwała przez zdefiniowany pierwotnie czas?
Jeśli nie da się tego zrobić za pomocą PAUSE to może jest jakiś inny sposób w Basicu?
 

trojacek:
Prosto to się tak nie da. Nie przypominam sobie żadnego POKE na zablokowanie wszystkich klawiszy.
A o jakim czasie mowa? I o jaką precyzję? Bo można po prostu zrobić nic nierobiącą pętlę o zadanej liczbie cykli. Ale jeśli ważna jest precyzja, to lepiej użyć zmiennej systemowej liczącej ramki.

matofesi:
PAUSE wykonuje cykliczne HALT synchronizując się z ramką i po nim sprawdza klawiaturę i jeśli nic nie jest wciśnięte zamyka wewnętrzną pętlę.

Rozwiązaniem problemu przerwania PAUSE przy chęci zachowania dokładności czasowej jest użycie PAUSE 1 w pętli FOR-NEXT:


--- Kod: ---10 FOR i=1 TO 100 : PAUSE 1 : NEXT i

--- Koniec kodu ---

PAUSE 1 nie sprawdza klawiatury i trwa "dokładnie" 1/50 sekundy, pętla wyrabia się w jednej ramce i całość daje - moim zdaniem - wymagany efekt nawet jeśli cały czas będziemy trzymali wciśnięty jakiś klawisz.

Nawigacja

[0] Indeks wiadomości

[*] Poprzednia strona

Idź do wersji pełnej