2017-03-08 10 views
0

私は座標の違いだけを持ついくつかの図を作成したいが、他の特性も同じである。しかし、私のコードでは、配列の図形に最後に追加したコントロールしか移動できないので、すべての図を動かせるようにするために何をするのですか?図形で配列を作成し、各図形を最後に追加するのではなく移動する方法は?

class car(pygame.sprite.Sprite): 
def __init__(self,x,y): 
    pygame.sprite.Sprite.__init__(self) 
    self.image = pygame.image.load(os.path.join(IMG, "car.png")).convert() 
    self.rect = self.image.get_rect() 
    self.rect.x = x 
    self.rect.y = y 
    self.image.set_colorkey(BLACK) # made bg transparent 
    self.image = pygame.transform.scale(self.image, (70, 70)) 

x = 30 
for i in range(8): 
    cars = car(x, 35) 
    figures.add(cars) 
    x += 75 
if (cars.rect.y//75)+1 == y and cars.rect.x//75 == x: 
     cars.rect.y += 75 

答えて

0

クラス名は大文字にする必要があります。

class Car(pygame.sprite.Sprite): 
    ... 

車のリストにすべての車を格納します。 図形はなぜ配列ですか?たぶん、pygame.sprite.Groupが良いでしょう!したがって、スプライトごとに.update()および.draw()メソッドを呼び出すことができます。

x = 30 
cars = [] 
for i in range(8): 
    cars.append(Car(x, 35)) 
    x += 75 
figures.add(*cars) 

あなたの車を移動することができますので、私からそれを削除したときにアスタリスクた場合、すべての数字は、私が欲しいと移動し始め、

for car in cars: 
    if ...: # your conditions 
     car.rect.y += 75 
+0

はあなたにたくさんありがとうございますが、何が「車」の前にアスタリスクを意味し、数字は動かず、1ステップだけコピーします。 – This4fun

+0

私は数字の種類を知らない。ですから、私はそれがpygame.sprite.Groupであると仮定します。 pygame.sprite.Groupにスプライトのリストを追加すると、リストを "解凍"する必要があります。これは*が意味するものです。他の容器については、これは必要ではない。 –

+0

ここに例があります:http://stackoverflow.com/questions/3480184/unpack-a-list-in-python –

0

は、あなたは、あなたが作成したすべての車を制御するために、配列を使用することができ、アレイを使用して作成している新しい車を追跡する必要があります。

関連する問題