所以我有這個迷你粒子效應,產生向上移動的圓圈。我想讓它看起來像煙。雖然我遇到了很多問題。Pygame粒子效應
- 首先,我希望把它遞歸這樣,當粒子到達頂部就 返回其原始點,並再次開始,我有什麼工作一點,但不完全是。
- 另一件事是我不覺得它真的看起來像煙霧任何人都可以建議更改,使其看起來更好?
- 另外我想添加到我的遊戲中,我將如何使這個可調用的遊戲,所以我可以稱爲粒子,並給它一個位置,它出現在那裏。任何人都可以幫忙嗎?
我的代碼
import pygame,random
from pygame.locals import *
xmax = 1000 #width of window
ymax = 600 #height of window
class Particle():
def __init__(self, x, y, dx, dy, col):
self.x = x
self.y = y
self.col = col
self.ry = y
self.rx = x
self.dx = dx
self.dy = dy
def move(self):
if self.y >= 10:
if self.dy < 0:
self.dy = -self.dy
self.ry -= self.dy
self.y = int(self.ry + 0.5)
self.dy -= .1
if self.y < 1:
self.y += 500
def main():
pygame.init()
screen = pygame.display.set_mode((xmax,ymax))
white = (255, 255, 255)
black = (0,0,0)
grey = (128,128,128)
particles = []
for part in range(25):
if part % 2 > 0: col = black
else: col = grey
particles.append(Particle(random.randint(500, 530), random.randint(0, 500), 0, 0, col))
exitflag = False
while not exitflag:
for event in pygame.event.get():
if event.type == QUIT:
exitflag = True
elif event.type == KEYDOWN:
if event.key == K_ESCAPE:
exitflag = True
screen.fill(white)
for p in particles:
p.move()
pygame.draw.circle(screen, p.col, (p.x, p.y), 8)
pygame.display.flip()
pygame.quit()
if __name__ == "__main__":
main()
在我看來,這看上去一點也不像煙。這有點像一大片煙霧,但是如果你把它放進一個帶有火焰的程序中,它看起來並不像真正的煙霧;它只會看起來像一堆彈跳球。但是,您可以有自己的看法,對此我沒有太多可以做的。 – PygameNerd 2013-02-14 22:50:07
@PygameNerd是的,我同意你的意見,這是沒有辦法像煙。但是通過在一個方向上應用重力,(更新即將來臨),我可以得到與你的結果非常相似的結果。順便說一下,我的意見是什麼意思?我沒有詳細閱讀他的問題,但是要指出它的問題,我需要更改我的代碼。 – pradyunsg 2013-02-15 05:28:27
@PygameNerd是的,我明白了我完全錯了,這不是解決他的問題的方法... – pradyunsg 2013-02-15 05:55:27