musze powiedziec, ze ogolnie watek ciagnie sie jak "magazyn 2" - moj ulubiony
a do rzeczy to....
wziales sie majster za najtrudniejsze rzeczy a wiedze z ksiazki masz nikla

proponuje poki co odstawic reczna obsluge ekranu i zrobic to prostszym sposobem
inicjacja ekranu:
Screen open 0,320,200,16,lowres
Flash off: Curs off: Cls 0
Double bufffer <-- aktywacja podwojnego buforowania ekranu (logiczny i fizyczny)
Autoback 1 <-- wlaczenie trybu polautomat, od teraz boby sa wsywietlane automatycznie ale nie mozna niczego rysowac w miejscu gdzie sie konkretnie znajduja. Czyli wszystko co bedzie narysowane komenda plot,draw,paste icon, paste bob, put block spowoduje glicza na ekranie w tym miejscu.
Bob Update off <- wylaczenie automatycznej aktualizacji polozenia bobow na ekranie.
Od teraz boby mimo zmiany wspolrzednych sie nie poruszaja. Zeby zobaczyc zmiane na ekranie po przesunieciu Bobow nalezy uzyc komendy Bob Update.
1. najpierw rysujesz mape komedna Put Bob czy Paste Icon
2. po narysowaniu wszystkich elementow stalych gry wyswietlasz obiekty ruchome
Bob 1,x,y,nr
Bob 2,x2,y2 nr
...
Bob 20,x20,y20,nr
itd..
zeby zobaczyc wyswietlone boby na koncu
Bob Update
wait vbl
petla glowna gry
Do
...
1. test klawiatury
2. test ruchu
3. jesli czolg sie rusza o 8 piksli w gore itp.. wyswietlamy boba
for i=1 to 8
Bob 1,x,y-i,nr
Bob Update
wait vbl
next i
4. jesli wykonano strzal ..
kroki= obliczona ilosc krokow pocisku
zmienne do kierunku lotu pocisku
xp= <--- wspolrzedne pocisku obliczane na podstawie miejsca gdzie znajduje sie czolg
yp=
ksx= -4 <--- np. 4 piksle poziomo w lewo lub +4 jesli w prawo
ksy= 0 <--- jesli w gore /dol to tu dodajesz lub odejmujesz 4
for i=1 to kroki
Bob 10,xp,yp,nr
Bob Update
wait vbl
xp=xp+ksx
yp=yp+ksy
next i
...tutaj konczy sie tor lotu pocisku i uwaga !!
Bob off 10 <--- zdejmujemy pocisk z ekranu
Autoback 2 <-- wlaczamy na chwile pelen tryb automat ekranu
xm= <--- obliczamy wspolrzedne murku (lewy gorny rog) na podstawie pocisku
ym=
Paste Bob xm,ym,murek <--- rysujemy w miejscu pocisku grafike na ekranie np. uszkodzony murek
wait vbl
Autoback 1 <--- przywracamy tryb ekranu polautomat
Bob Update
wait vbl
...
...
...
Exit if keystate(69)=-1
Loop
end
Ogolnie zasada jest taka, ze tryb najwolniejszy wlaczamy tylko w trakcie rysowania grafiki stalej, czyli w momencie uderzenia pocisku w murek zatem opoznienie na jedna chwile bedzie niezauwazalne.
Jak tego nie skumasz to pozniej wklepie jakis programik pogladowy w jazda czolgiem.
A teraz bierz sie za czytanie ksiazki i nie zgaduj, bo zgadywaniem i klepaniem w ciemno duzo nie uklepiesz poza Qpom.
Ostatnia aktualizacja: 01.09.2021 10:28:30 przez selur