AttributeError podczas rysowania obiektów

0

Poprzedni problem wyjaśniony.

0

I czego nie łapiesz w tym komunikacie? Wyrażenie: self.invaders[row] jest typu list. Typ ten nie definiuje metody getPosition().

Pewnie chodzi Ci o:

for row in range(5):
  for col in range(11):
    self.screen.blit(self.invaderImg, self.invaders[row][col].getPosition())
0

Dodaj pętle na samej górze:

for row in range(5):

I zamień każde:

invaders[col]

na:

invaders[row][col]

PS. Ten kod to jakaś tragedia.

1
self.invaders[row][0]

Nie rozumiem po co chcesz pisać grę, jak oni programowania ani pythonia nie ogarniasz? Może zacznij od jakichś podstaw czy coś, bo nie tędy droga..

0

Nie rozumiem co to znaczy: "zamiast 5 rzedów na raz to jest to tylko każdy z rzędów po razie.". Chcesz żeby 5 rządków kosmitów zeszło w tym samym czasie o 1 rząd w dół? Czy żeby po kolei każdy z rządków schodził?

1

self.invaders[row][col] = False - zamieniasz obiekt (aliena) w tablicy na boola. Podczas kolejnych iteracji pętli, próbujesz pobrać pozycję X i Y tego boola, sam sobie odpowiedz czy to możliwe. Po trafieniu musisz usuwać obiekt, a nie zmieniać go na coś innego. Przy okazji zapoznaj się lepiej z podstawami, przydatna będzie również metoda sprawdzająca długość listy. Błędy, które dostajesz to nie jest magia, staraj się je zrozumieć.

0

Nadal nie usunąłeś aliena, tylko na jego miejsce wstawiłeś do listy NoneType. Nie rób tego na pałę, bo się nie wyrobisz, tylko dowiedz się jak usunąć dany element z listy - https://docs.python.org/2/tutorial/datastructures.html

1 użytkowników online, w tym zalogowanych: 0, gości: 1