logo2
Fizyka Chemia Matematyka strona główna   FIZYKA ZADANIA WZORY TEORIA ROZWIĽZANIA ZADAŃ   FIZYKA GIMNZAJUM ZADANIA WZORY TEORIA   CHEMIA ZADANIA WZORY TEORIA ROZWIĽZANIA ZADAŃ   MATEMATYKA WZORY ZADANIA ROZWIĽZANIA ZADAŃ   HISTORIA HISTORIA W PIGUŁCE NA TELEFON   JĘZEYK POLSKI EPOKI LITERACKIE   MODELARSTWO SZKUTNICZE SZKUTNICTWO ŻAGLOWCE HISTORYCZNE   TWORZENIE GIER 2D W DELPHI  

 
omega

Pobierz kod PASEKZYCIA

Jak zrobić pasek stanu życia w grze 2D?

Kod przykładu został utworzony w DELPHI + OMEGA.

Poniżej spodziewany efekt rozwiązania

tworzenie gier 2d pasekzycia


Powiedzmy, że mamy obiekty w naszej grze, które cechują się różną maksymalną wartością punktów
życia początkowego, a chcemy otrzymać jednolite długości pasków, to znaczy wyeliminować taką
sytuację jak na poniższym rysunku

tworzenie gier 2d pasekzycia 1


Aby długości pasków były znormalizowane do pewnej ustalonej wartości należy:
a) wybrać tę wartość (w przykładzie wybrałem 32)
b) przeskalować punkty stanu życia - linia zielona
c) uzupełnić brakujące punkty życia (linia czerwona) do przyjętej wartości - tu 32

Tak więc mamy gotowy przepis. Fragment kodu, który to wykonuje przedstawiam poniżej



procedure TGracz.RysujPasekZycia;
var
dx:integer;
begin
//przechwyć wcisnięcie klawisza "I"
if oisbutton2 in Form1.OmegaInput1.keyboard.statesclicked then
fPokaz:=not fPokaz;
ifnot fPokaz then exit;
//rozpocznij proces rysowania paskow zycia
//normuj do długosci 32 pikseli
dx:=round(Zycie*32/Zycie0);
//czerwona linia
Form1.OmegaScreen1.LineH(Round(x+dx),Round(x+32),Round(y),200,0,0,2);
//zielona linia
Form1.OmegaScreen1.LineH(Round(x),Round(x+dx),Round(y),0,125,0,2);
end;




Do rysowania linii posłużyła procedura LineH komponentu OmegaScreen. Jej parametry to
- współrzędna X początku linii
- współrzędna X końca linii
- współrzędna Y linii
- kolejne to składowe kolorów (czerwona, zielona, niebieska)
- ostatnia to wartość grubości linii

Teraz należy się zastanowić w którym momencie wywoływać ten kod?
Jeśli linia życia ma się pokazać dla każdego widocznego i żyjącego obiektu, to nasuwa się
prosty pomysł aby zrobić to w pętli po utworzonych obiektach. Niestety nie będzie, to najwłaściwsze
podejście. Utworzymy bowiem dodatkową pętle...Szkoda będzie na nią czasu.

Postąpimy inaczej. Nasze duszki są klasą TSprite. Rysowanie tej klasy w OMEDZE zajmuje
się procedura Draw komponentu OmegaSprite, która jest cyklicznie wywołana w zegarze aplikacji.
Tak więc rysowanie linii życia duszka umieścimy w jego procedurze Draw, tak jak poniżej



procedure TGracz.Draw;
begin
inherited Draw;
RysujPasekZycia;
end;




Dodatkowo w przykładzie można ukryć/ pokazać linie jeśli z klawiatury klawiszem "i"
zmienimy flagę rysowania fPokaz na false.

Można linie życia rysować również i w taki sposób, że wykorzystujemy gotowe bitmapy. Ale stracimy na prędkości.
Pytanie dlaczego? Dlatego, że każda taka bitmapa linii będzie pochodną klasy TSprite (dla każdego obiektu
musimy utworzyć zieloną i czerwoną bitmapę linii lub kolejne klatki takich linii), a takie utworzenie
równoznaczne jest z wykonywaniem dla tych linii procedur Move, Draw, Dead (bo to też duszki).

I to by było na tyle. Pozostałe procedury są obudową tego przykładu.

KONIEC

Nowosć

Układ okresowy pierwistków chemicznych
Układ okresowy  na telefon, tablet, smartfon
Darmowa aplikacja
Okręty- bitwa morska
okręty gra sieciowa
Darmowa aplikacja na Androida
Kalkulator jednostek fizycznych
przelicznik jednostek fizycznych  na telefon, tablet, smartfon
Darmowa aplikacja
Znaki drogowe.
znaki drogowe na telefon, tablet, smartfon
Darmowa aplikacja na Androida
Saper (512x512 pól)
Saper (512x512 pól)
Darmowa gra logiczna
The Friends of Mine
The Friends of Mine
Darmowa gra logiczna

MACHO. KAMIENNA LEGENDA
MACHO. KAMIENNA LEGENDA game for android
MACHO. STONE LEGEND
Game 2d for Android

Geometria. Wzory
geometri kalkulator wzory figur bryl

Alkomat
Alkomat na androida
Zobacz obliczenia zadań:
Zbiór zadań z fizyki K Chyla Zbiór zadań z fizyki 1 W Mroszczyk, J. Salach
Zbiór zadań z chemii zakres podstawowy K Pazdro Zbiór zadań z chemii zakres rozszerzony K Pazdro
 

epomoce.pl
Fizyka
Fizyka- zadania 1
Fizyka- zadania 2
Zadania dostęp www
Fizyka- wzory
Fizyka- teoria
Chemia
Zadania zak. roz.
Zadania zak. podst.
Zadania dostęp www
Chemia-teoria

Matematyka
Język polski
Historia (pigułka)
Historia (rozszerzona)
Fizyka- gimnazjum
Fizyka zadania- gimnazjum
Fizyka- gimnazjum teoria
Znaki drogowe
 
Matematyka wzory zadania gimnazjum
programowanie
koga
grafika2D


 


2008-2012 ©www.ePomoce.pl

FIZYKA, CHEMIA, MATEMATYKA, HISTORIA, JĘZYK POLSKI. Rozwiazania zadań z fizyki, rozwiazania zadań z chemii, zadania z fizyki, zadania z chemii