• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Gra w canvas , tablica

Mały hosting, OGROMNE możliwości
0 głosów
1,479 wizyt
pytanie zadane 16 listopada 2018 w JavaScript przez ptaku19 Użytkownik (800 p.)

Witam ponownie... Mam tablice, w której przechowuje elementy, które są dodawane przyciskem na ekranie. Elementy te są obiektami w grze(ludzikami), które zwiększają swoje współrzedne na osi X poprzez ich Speed. Próbuje zrobic, aby każdy element(ludzik) zawsze miał odstęp od  innego o pewną wartość X, np. 50. Dodam, że elementy mają funkcję walki i aktualnie walczący element tablicy ma Speed = 0 i chciałbym, aby ludziki czekające na walkę ustawiały się w kolejkę, która właśnie dzieli każdy element odstępem jak już wspominałem.

Kod jest dość długi, ale usunęłem wszystkie zbędne elementy. Gra robiona w canvas.

Próbwałem wklejać kod na różne strony typu CodePen, ale gra mi nie działała.

Jeżeli mam coś skrócic, lub wkleić kod w inne miejsce to prosze o komentarz.

Oto kod:

https://4programmers.net/Pastebin/9959

 

komentarz 18 listopada 2018 przez ptaku19 Użytkownik (800 p.)
Nie wiem czy dobrze rozumiem, ale chodzi o metode class {} ? Z tego co wiem zawarta jest w ES6. Popraw mnie jeżeli źle myśle. Dodam że miałem zamiar dodać do tej gry magów itp. Stworzyć tablice Team = [] i przypisywać tu tablice z wojownikami itp.
komentarz 18 listopada 2018 przez sefir Dyskutant (8,560 p.)
Tak ES6, większość przeglądarek to już wspiera to nie ma co się męczyć ze starymi metodami  tworzenia klas, lepiej w nowych standardów się uczyć, zawsze jest się na bieżąco z technologią ;)

No to dobrą sprawą dobrze by było zrobić klasę Team i w niej pola jako tablice wojowników, magów itp
komentarz 18 listopada 2018 przez ptaku19 Użytkownik (800 p.)
Dzięki za rady, może za jakiś czas przerzucę się na ES6. Nie jesteś pierwszą osobą, która mi to radzi :D
komentarz 18 listopada 2018 przez sefir Dyskutant (8,560 p.)
Ja się przysiadłem do js'a właśnie kiedy już było w miarę spoko wsparcie do klas. Stara struktura kodu sprawia, że oczy mi krwawią xD
komentarz 18 listopada 2018 przez ptaku19 Użytkownik (800 p.)
A jeszcze takie pytanie z innej beczki ;P Nie wiem czy jesteś w stanie odpowiedzieć bez kodu

Gdy używam 'supermocy' spada 30 kwadratów, które blablabla... [...] i znikają po uderzeniu we wroga. I raz na jakiś czas, wyskakuje mi że jeden z kwadratów jest undefined. Czasem nie wyskakuje. Używam .splice(i,1). Czy możliwe jest, że komputer po prostu nie wyrabia gdy dwa uderzą w tym samym momencie?

1 odpowiedź

0 głosów
odpowiedź 18 listopada 2018 przez sefir Dyskutant (8,560 p.)

Jeżeli masz tablicę

a = ['a','b','c','d','e','f','g','h'];

i zrobisz np 

a.splice(2,1)

to

a = ["a", "b", "d", "e", "f", "g", "h"];

Mam nadzieję, że dostrzegasz w czym problem stosując 

.splice(i,1)

:)

komentarz 18 listopada 2018 przez ptaku19 Użytkownik (800 p.)
Dokładnie o to mi chodzi i tak się dzieje,kwadraty mi znikają,ale z nie wyjaśnionych przyczyn na 30 kwadratów czasem wyskoczy, że któryś jest undefined, a czasem nie. Chociaż i tak znikają wszystkie jak należy. Ale w konsoli mi się nie podoba ten błąd.Może komp nie wyrabia?
komentarz 18 listopada 2018 przez sefir Dyskutant (8,560 p.)
A jak zrobisz splice(1,1) zamiast splice(i,1) działa poprawnie?
komentarz 18 listopada 2018 przez ptaku19 Użytkownik (800 p.)
Potem zorientowałem się, że może źle kolizje wyznaczyłem, ale jak wpisałem splice(1,1) to usuwe prawie wszystkie meteoryty(kwadraty) (z 30) co jest dziwne bo spodziewalem się ze zniknie jeden.
komentarz 18 listopada 2018 przez sefir Dyskutant (8,560 p.)
Pewnie używasz tego w pętli, to może usunąć Ci wszystkie.
komentarz 18 listopada 2018 przez ptaku19 Użytkownik (800 p.)
Tak używam w pętli. Prawdopodobnie musze poprawić efekt kolizji

Podobne pytania

+2 głosów
3 odpowiedzi 971 wizyt
pytanie zadane 17 sierpnia 2020 w JavaScript przez Bakkit Dyskutant (7,600 p.)
+1 głos
2 odpowiedzi 1,287 wizyt
pytanie zadane 4 lipca 2020 w JavaScript przez Bakkit Dyskutant (7,600 p.)
0 głosów
0 odpowiedzi 206 wizyt

93,715 zapytań

142,629 odpowiedzi

323,260 komentarzy

63,257 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...