J'essaye de faire une sorte d'effet de pluie en Python en utilisant pygame et classes. Je ne suis pas habitué à la POO et je ne sais pas ce que je fais mal. La goutte gèle juste en haut de l'écran. Ceci est mon code:Python 3.x pygame Rain
import pygame
import random
pygame.init()
width = 400
height = 300
screen = pygame.display.set_mode((width, height))
background = pygame.Surface(screen.get_size())
background.fill((230, 230, 250))
background = background.convert()
x = random.randint(0,width)
y= random.randint(-20,-3)
yspeed = random.randint(1,5)
class Drop(object):
def __init__(self):
self.x=x
self.y=y
self.yspeed=yspeed
def fall(self):
self.y+=self.yspeed
def show(self):
pygame.draw.line(background, (138, 43, 226), (self.x, self.y), (self.x, self.y + 10))
screen.blit(background, (0, 0))
drop=Drop()
drop.fall()
drop.show()
mainloop = True
FPS= 30
clock = pygame.time.Clock()
while mainloop:
for event in pygame.event.get():
if event.type == pygame.QUIT:
mainloop = False
pygame.display.flip()
clock.tick(FPS)
Je viens de commencer à travailler dans pygame et python de sorte que toute aide serait super.
Est-ce votre premier projet? Si c'est le cas, je recommanderais d'abord de faire un jeu basé sur le texte (vous pouvez suivre votre propre chemin.) –
Pourquoi n'avez-vous pas les arguments 'x',' y', et 'yspeed' pour votre' __init __() 'Fonction comme actuellement toutes ces variables resteront indéfinies –
Savez-vous quelle ligne spécifiquement le programme se fige? Si vous mettez une instruction print dans le code à des fins de débogage, cela s'affichera-t-il? – SeeDerekEngineer