Pygameを使って2Dゲームを作っています。
作業中のゲームにパーティクルエフェクトを追加したいと思います。スポーンスモーク、ファイア、ブラッドなどをやりたいです。これを行う簡単な方法はありますか?どこから始めたらいいのかわからない。
拡張できるベースケースが必要です
。Plsヘルプ。
質問する
2277 次
2 に答える
3
煙が更新されるたびに、上に移動してランダムに右または左に移動するrectで構成されるクラスを作成することをお勧めします。次に、必要なときにいつでもそれらを大量に作成します。以下のサンプルコードを作成しようとしますが、それが機能することを保証することはできません。他のパーティクルエフェクトについても同様のクラスを作成できます。
class classsmoke(pygame.Rect):
'classsmoke(location)'
def __init__(self, location):
self.width=1
self.height=1
self.center=location
def update(self):
self.centery-=3#You might want to increase or decrease this
self.centerx+=random.randint(-2, 2)#You might want to raise or lower this as well
#use this to create smoke
smoke=[]
for i in range(20):
smoke.append(classsmoke(insert location here))
#put this somewhere within your game loop
for i in smoke:
i.update()
if i.centery<0:
smoke.remove(i)
else:
pygame.draw.rect(screen, GREY, i)
もう1つのオプションは、次のようにクラスをタプルにすることです。
class classsmoke():
'classsmoke(location)'
def __init__(self, location):
self.center=location
def update(self):
self.center[1]-=3
self.center[0]+=random.randint(-2, 2)
#to create smoke
smoke=[]
for i in range(20):
smoke.append(classsmoke(insert location here))
#put inside game loop
for i in smoke:
i.update()
if i.centery<0:
smoke.remove(i)
else:
pygame.draw.rect(screen, GREY, (i.center[0], i.center[1], 1, 1))
または、クラスを完全に回避するには、次のようにします。
#to create smoke:
smoke=[]
for i in range(20):
smoke.append(insert location here)
#put within your game loop
for i in smoke:
i[1]-=3
i[0]+=random.randint(-2, 2)
if i[1]<0:
smoke.remove(i)
else:
pygame.draw.rect(screen, GREY, (i[0], i[1], 1, 1))
好みを選択し、他のパーティクルエフェクトについても同様のことを行います。
于 2013-02-12T15:15:53.603 に答える
1
ライブラリでパーティクルエフェクトを確認してくださいPyIgnition
于 2013-02-12T18:39:59.880 に答える