Skocz do zawartości

[omega]Czyszczenie mapy


sazian

Polecane posty

Zacząłem czytać artykuły z cyklu „Wędrowanie po świecie 2D”, dotarłem do części 2 i dalej postanowiłem pójść własnymi ścieżkami
I oczywiście napotkałem niemal od razu problem smile.gif a mianowicie chce wyczyścić całą mapę i w tym celu napisałem taki program
[code=Delphi]
var
i,j:integer;
begin
OmegaTimer1.Enabled:=false;
for i:=0Y
JYLY
VWJYVĆÓŁÓf\"ŁÓFvv'7GvFf\"ŁŁÓFvvŃmtź(((]Ńmąt%%(Warstwa0[i,j].Dead;
end;
warstwa0:=nil;//Zmieniłem t&NXXHH[[ZXNN[[[KXYŚVvFW#Vć&ĆVCŁG'VS [/code]
I całość nawet (prawie) działa
Poza jednym małym szczegółem, zostają obrazki drzew, można przez nie przechodzić nie występuje pokrycie ale czemu one tam są??
Wie ktoś gdzie zrobiłem błąd ??

Link do komentarza
Udostępnij na innych stronach

Sazian
cykl "Wędrowek w siwecie 2D" nie maial na celu pokazanie czytani alub odczytania danych z mapy ale efekt ukryci a duszka z obcym obiektem. Model swiat nie jest szybki . W tekscie wspomnianych artow pisałem ze łatwo mozna go przerobic na giganty. Wiec zerknij co i jak w gigamtach jest opisane. Dla wyjsanienia w moim modelu jets inna filozofia to znaczy klatki warswty sa czyms w rodzaju konteneru na grafike , ktorek indeksy obrazu i kafla pamietane są w pliku mapy swiata gry . Nie nalzey zwalniac pamieci dla warstwy. Tak na prwade warstwa to Twoje oczy ktore masz raz dane za zycia a obrazy to świat zewnetrzny zmieniajacy sie zgodnie z "mapą". W tych rozwiazanich zmieniane sa tylko indeksy obrazow co pozwala uzyskac znaczny FPS. Co do tablicy Drogi to dodatkowa siatka zapisana zerami i jedynkami aby mozna było szybko i łatwo zastosowac algorytm szukania drogi, tezt kolizji bez wykrywania pikseli.
Najlepiej by bylo pogadac przy piwie:)

pozdrawiam oksal

Link do komentarza
Udostępnij na innych stronach

Nie znikają bo jak niszczysz Roslina.Dead to niszczysz ostatnią ze stosu pozostałe żyją. Musisz odpowiednie dostać się do pozostałych.. Problemu byś nie miał jak byś stworzył swój edytor światów. W artach ja posłużyłem się bardzo prostym sposobem utworzenia dodatkowych obiektów. Robienie odczytu danych mapy z pliku gry było by podaniem wszystkiego na stół. A tego nie zrobię. Wszak kiedyś pisałeś „unit1 daje wędkę a nie rybę”. Ale jestem upierdliwy. Wybacz., coś mnie dzisiaj świat wnerwia a raczej widok dna wink.gif . Jeśli chcesz ten projekt rozwinąć w grę to zastosuj rozwiązanie warstwy z gigantów oraz uwzględnij to co niżej piszę:
- kafel warstwy to duszek (choć nie musi być, w głowie mam jeszcze inne (prawdopodobnie szybsze) rozwiązanie)
- liczba kafli możliwie najmniejsza
- kafel przejmuje grafikę z siatki mapy
- jeżeli przejmuje grafikę to może przejąć inne cechy obiektu
- śmierć obiektu statycznego to indeks –1, każdy inny indeks może być na przykład obrazem wyższego poziomu cywilizacyjnego lub upadku czy czegoś tam
- obiekty żywe poruszają się pomiędzy warstwą zerową a pierwsza, choć lepsze rozwiązanie będzie zastosowanie miksu „Góry i doliny świata 2D część 3” z „Gigantami świata 2D cześć 2” wyszedłby super silnik 2D
- powyższe cechy musi uwzględniać Twój edytor światów

pozdrawiam oksal

Link do komentarza
Udostępnij na innych stronach

Ni epokazuj jezyka smile.gif tylko zwróc uwagę na taki fakt w Gigantach czesc drug jak wygenerujesz siwat 2500x2500 to masz drzew powiedzmy 70% z iloczynu 2500x2500 i nigdzie w kodzi enie tworzy sie obiketu typu roslina. Moje podejscie w tym modelu opiera sie na innych zadanich warswt oczym w cześnie Ci pisalem. Podsatwa tego modelu to odpowiednio utworzone i zapisane do pliku dane z edytora swiatów.

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...