2017-05-20 29 views
1

私は、プレーヤーのスプライトとの衝突時にmobインスタンスを削除するために、collide_maskチェックを実行しています..うまくいきます。私は、爆発のアニメーションを作っていると苦労してる何スプライトの衝突

pygame.sprite.spritecollide(player, mobs, True, pygame.sprite.collide_mask) 

は暴徒「『場所の特定』で暴徒」で起こります。

minuspoints = pygame.sprite.spritecollide(player, mobs, True, pygame.sprite.collide_mask) 
    for hit in minuspoints: 
     life-=5 
     score+=1 
     if cash-1>=0: 
      cash-=1 
     else: 
      life-=5 
     enemies-=1 
     if moo==0: 
      collision.play() 
      ensmallpop.play() 

     # Check which mob was hit 
     for m in mobs: 
      pass 

#popAnim 
     popco = m.update(pos) 

どの暴徒がヒットしたかをどのように判断できますか?この時点で私はこれがどのように動作するかを決めるために私の頭の中でかなりの数の異なるセクションをジャグリングしていますので、

私は、コードの1700行(おそらくあまりにも効果的に書かれていない)を持っています。

あなたは余分な情報が必要な場合はお問い合わせください!

ありがとうございます。

答えて

2

minuspointsリストにはplayerと衝突したmobが含まれているため、爆発アニメーションはhit.rect.centerの位置で再生できます。変数名minuspointshitcollided_mobsmobのように変更することをお勧めします。仕事をしてくれたニース

collided_mobs = pygame.sprite.spritecollide(player, mobs, True, pygame.sprite.collide_mask) 
for mob in collided_mobs: 
    explosion_position = mob.rect.center 
    # Now create the explosion at `explosion_position`. 
+0

、。ありがとう! – TheJack

関連する問題