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

[JS] Dodawanie obiektów do tablicy

0 głosów
1,729 wizyt
pytanie zadane 17 października 2018 w JavaScript przez smokolisz Mądrala (6,340 p.)

Cześć, robie prostą gre w js i napotkałem trudności podczas tworzenia obiektów, będe wdzięczny jak ktoś rzuci okiem :) https://jsfiddle.net/p4zkuvdc/

(index):89 Uncaught TypeError: Cannot read property 'strzal' of undefined
at o.<anonymous> ((index):89)
at o.emit (index.js:150)
at t.update (Ticker.js:319)
at _tick (Ticker.js:125)

Moge też wysłać cały projekt w archiwum chcącej pomóc osobie :)

http://chirurgiaplastycznaodsrodka.pl/sample1.rar

komentarz 17 października 2018 przez smokolisz Mądrala (6,340 p.)
1
komentarz 17 października 2018 przez Tomek Sochacki Ekspert (227,510 p.)
W kod nie patrzę bo na mobilku niewygodnie jest z tych codepen i jsfiddle korzystac, ale bląd jednoznacznie wskazuje, że próbujesz odnieść się do właściwości strzal na nieisniejącym obiekcie (undefined). Prześledź dokładnie kod i upewnij się, że masz w tym miejscu utworzony obiekt z propertką strzal albo zobacz czy nie masz może jakieś literówki?
komentarz 17 października 2018 przez smokolisz Mądrala (6,340 p.)

Problem w tym, że najpierw napisałem kod strukturalnie (działa), a teraz chce dodać więcej przeciwników więc przerabiam go na obiektowy. Prześledziłem już cały kod kilka razy i pomimo, że rozumiem błąd, nie wiem co poprawić, żeby zadziałało :/
Jak będziesz mieć później czas to prosze pamiętaj odwiedzić ten wątek, żeby zobaczyć czy wiesz co zmienić smiley smiley

Myśle, że błąd jest trywialny tylko robie to pierwszy raz i rzuciłem się troche na za głęboką wode (projekt do szkoły). Korzystam z PixiJS

Pozdrawiam :)

komentarz 17 października 2018 przez smokolisz Mądrala (6,340 p.)
Błąd pewnie polega na tym, że próbuje wywołać funkcje strzal() zanim zostaje stworzony obiekt (?)

2 odpowiedzi

+2 głosów
odpowiedź 18 października 2018 przez elwood Gaduła (4,180 p.)

Odnośnie samego kodu nie będę nic pisał, bo jest masa rzeczy do poprawy, wiec od razu przejdę do błędu.

 for (i = 0; i <= przeciwnicy.length; i++) {
                    przeciwnik = przeciwnicy[i];
                    //console.log(przeciwnik);
                    przeciwnik.strzal();
                    przeciwnik.move();
                }

powyższa pętla jest błędna, dlatego wyskakuje ci błąd. Zamiast mniejsze równe powinno być samo mniejsze,  o tak.

 for (i = 0; i < przeciwnicy.length; i++) {
                    przeciwnik = przeciwnicy[i];
                    //console.log(przeciwnik);
                    przeciwnik.strzal();
                    przeciwnik.move();
                }

 

komentarz 18 października 2018 przez smokolisz Mądrala (6,340 p.)
Dzięki, jak bede przy kompie to zobacze czy dziala. Będe też wdzięczny za pokazanie tych błędów i zaproponowania lepszego rozwiązania - oczywiście jeżeli będziesz miał czas i ochote :)

Dopiero zaczynam nauke js i zależy mi by już na początku nie wpajać złych praktyk

Pozdrawiam :)
–1 głos
odpowiedź 18 października 2018 przez smokolisz Mądrala (6,340 p.)
Odświeżam

Podobne pytania

0 głosów
1 odpowiedź 349 wizyt
0 głosów
0 odpowiedzi 495 wizyt
pytanie zadane 28 grudnia 2022 w PHP przez Filip384 Nowicjusz (120 p.)
0 głosów
1 odpowiedź 449 wizyt
pytanie zadane 9 listopada 2018 w C i C++ przez Daaa22 Dyskutant (8,250 p.)

93,741 zapytań

142,676 odpowiedzi

323,294 komentarzy

63,323 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.

...