Ciezko to opisac, bo moze ja uzywam specyficznej metody:
- kazda mapka ma swoj numer od 1 do 256, zapisuje go po wejsciu na dana mapke do zmiennej MapNrMemory
- jest MAX 8 przeciwnikow na mapce i kazdy ma swoja osobny kod kolizji z graczem/jego mieczem
- przykladowo kolizja gracza z przeciwnik nr 3 zapala bit2 zmiennej temp przenoszacej info o zabitych enemy
(oczywiscie pomijam takze w kodzie kolizji jest kod animacji zabicia i znikniecie przeciwnika)
- w tym samym czasie w tej kolizji wykonany jest skok do kodu z tablica, ktora odczytuje zmienna MapNrMemory i wg numerka
mapki przenosi zapalony bit2 do zmiennej EnemyKillMagazynLev033 (przykladowo).
- gdy teraz wyjde zabijajac przeciwnika nr 3 z mapki 33 na mapke 34 i tam takze zabije przeciwnika nr. 3 to podobnie jak wyzej
kod w kolizji sprawdzi numer z MapNrMemory, byl 34, wiec kod z tablica przeniesie znowu bit2 do EnemyKillMagazynLev034 itd itd
- bity z kazdej zmiennej EnemyKillMagazynLev_xxx sa takze osobno odczytywane przy wejsciu do kazdej mapki i pelnia funkcje flagi blokujacej wznowienie sie pojawienia przeciwnika. Czyli domyslnie zgaszona flaga laduje przeciwnika na mapke, a zgaszona pomija to i po wejsciu zabity przeciwnik zwyczajnie nie pojawia sie.
I tak to dziala, w pelnej automatyce powiedzmy juz. Akurat jakos nigdy nie lapalem bitow w taki sposob dlatego zapytalem sie o to
Widze dziala, wiec jest ok.
Tak to wyglada, ale jeszcze bez kodu zapamietania zabitych przeciwnikow (czyli robia respawn po kazdym wejsciu.wyjsciu z mapki), kod bedzie napisany na nowo.
https://www.youtube.com/watch?v=GKf8mvdcG-ATak to jest z tym asm, ze nie potrafie nauczyc sie wszystkiego na blache, cala nauka wylazi w praktyce - jak czegos wczesniej nie uzywalem, ucze sie w praktyce