Skocz do zawartości

[Omega Delphi]wielu wrogów


sazian

Polecane posty

[b]podiołem drugą próbe nauki obsługi Omegi.
przeczytałem arty i napisałem własny program("gre" laugh.gif ) podobną do opisanej ty http://www.unit1.pl/129,4,podglad.html i mam taki problem jak zrobić kilku poruszających się wrogów.
program od poruszania napisałem tylko jak chce żeby po zniszczeniu 1 wroga pojawiali się 2 jeden stoi w miejscy a drugi porusza się 2 razy szybciej

Link do komentarza
Udostępnij na innych stronach

procedura tworząca wroga
[code=Delphi]
procedure TWrog.tworz_wroga(x,y:integer);
begin
wrog:=TWX]JLKYYT]LJNBYYLKYYR[XYĆ7CvTĆ7BFV5łvUvGFw&rVvCŁf&ÓV%1%1%Ńlt%!Ą4)%1.OmegaImageList1.ImageList.Items[1];

wrog.X:=x;
wrog.Y:^NBB[]YNB^[X]YNBBćCJ%8 k:hr+$zZaBYH[]N]N6FVvW\"f ŚŚFVvW#Ś&VvŚb7&FR2DąŃĄ4)4)4)Ń4)Ą4)to poziom do //i tu sie zaczyna to co nie działa smile.gif
wrog.t[J
JMKMMJNBB[B[B3Ł9zyZjYui'
var
poziom:integer=1;
[/code]
no i to chyba wszystko co jest potrzebne

Link do komentarza
Udostępnij na innych stronach

cze
Sazian zerknąłem na Twoj problem. Do testów zaciągnąłem wspomniany art. Wada rozwiązania tkwi w niezbyt poprawnym wykorzystaniu programowania obiektowego. To inna filozofia niż strukturalne...o tym łatwo zapomnieć. Ale nie będę ojca uczyć dzieci robić:-)

1.
Obiekty jak tworzysz w pętlach twórz tak:
[code=Delphi]
procedure TWrog.tworz_wroga;
var
wrog : TWrog;
i : inYBY[BNLH
HB]X]JLK\"F&VvvGFŁf&ÓvTĆ7BFV5ł%vUŃ4(!Ą=%1%Ńlt%!Ą
X := (100 * i) + 50;
Y := 20;
Image := form1.Omil.[XYS][NB[HYNB^[XG'VSe6W&4DVĆŁf6SVćCŚVćCjkĄł'^bpp&6VGW&REw&rfR67BfT6VC6ćvĆRŚ&VvŁ4)`ąŃĄ4)4((Ż7'! ózxvkĄźŚęh(Hu\"x)Ąw!ł)hŚŚĄho&ŚĄbł9<:śZŚ4(4)Q4)4(Ń4)4(źi5MQo śmierci
//utwórz losowo dwoch wrogów
if fSmiercOdKuli![BNLHB]X]JLKHVvŁ&ćFCłŁÓ3vGFŁf&Ó%1%Ńlt%]Ń4(!Ą=mageList.Items[2].ImageHeight;
Image := form1.Omil.Imagg][NB[HYNB^[XH'VSe6W&4DVĆŁf6SVćCćW&FVBFVCŚVć@4(%'O
3&i[y{jG^bppEw&r6Ć72E7&FR&fFPe6W&4DVĆŚ&ĆV4(ą4(Ń}4(=
ąą(const Sprite: TSprite; const colX, colY: Integer); overridnBYHXYYNBYH[J[PC6ćvĆRfW'&FSŚVćC [/code]


flagę fSmiercOdKuli wprowadziłem tylko po to bo Ty w swoim rozwiązaniu uśmiercasz duszka jak dojdzie do krawędzi ekranu. Stad trzeba jakoś rozróżnić czy ojca zamordowano czy też zmarła śmiercią naturalną- wtedy nie ma zemsty. Może zamiast uśmiercać wroga jak dojdzie do krawędzi ekranu lepiej jest go przerzucić na przeciwną ścianę ekranu.

No to tyle. Mam nadzieję ze to rozwiązało Twój problem

pozdrawiam oksal

Link do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.

×
×
  • Utwórz nowe...