기본적으로 내가 이것을 실행하면 보라색 방울이 떨어질 때를 제외하고는 내가 원하는 모든 일이 발생합니다. 실선을 유지하는 대신 깜박입니다. 나는 그것을 파악하고 덤비는 노력 pygame.display.update()
하고 pygame.display.flip()
있지만, 하나 깜박 남아있을 것 또는 보라색 라인 그냥 사라질 것
import random
pygame.init()
window = (640,360)
background = pygame.Surface(window)
screen = pygame.display.set_mode(window)
def main():
drops = [Drop]*500
for i in range(len(drops)):
drops[i] = Drop()
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
screen.fill((230,230,250))
for drop in drops:
drop.show()
drop.fall()
pygame.display.update()
pygame.quit()
def translate(value, leftMin, leftMax, rightMin, rightMax):
# Figure out how 'wide' each range is
leftSpan = leftMax - leftMin
rightSpan = rightMax - rightMin
# Convert the left range into a 0-1 range (float)
valueScaled = float(value - leftMin) / float(leftSpan)
# Convert the 0-1 range into a value in the right range.
return rightMin + (valueScaled * rightSpan)
class Drop:
def __init__(self):
self.x = random.randrange(0,640)
self.y = random.randrange(-500,-100)
self.z = random.randrange(0,20)
self.yspeed = translate(self.z, 0, 20, .2, .3)
self.len = translate(self.z, 0, 20, 10, 20)
def fall(self):
self.y += self.yspeed
self.yspeed += 0.000001
if self.y > 360:
self.y = random.randrange(-200,-100)
self.yspeed = translate(self.z, 0, 20, .2, .3)
def show(self):
pygame.draw.line(screen, (138, 43, 226), (self.x,self.y), (self.x, self.y + self.len), width = random.randrange(1,4))
main()
프레임 당 각 빗방울의 너비를 임의로 변경하기 때문에 깜박입니다.
pygame.draw.line(screen, (138, 43, 226), (self.x,self.y), (self.x, self.y + self.len), width = random.randrange(1,4)) # <---
with
속성을 추가하고 프레임이 아닌 인스턴스 당 빗방울에 대해 무작위로 설정합니다.
class Drop:
def __init__(self):
self.x = random.randrange(0,640)
self.y = random.randrange(-500,-100)
self.z = random.randrange(0,20)
self.yspeed = translate(self.z, 0, 20, .2, .3)
self.len = translate(self.z, 0, 20, 10, 20)
self.width = random.randrange(1,4) # <---
def fall(self):
self.y += self.yspeed
self.yspeed += 0.000001
if self.y > 360:
self.y = random.randrange(-200,-100)
self.yspeed = translate(self.z, 0, 20, .2, .3)
def show(self):
pygame.draw.line(screen, (138, 43, 226), (self.x,self.y),
(self.x, self.y + self.len), width = self.width) # <---
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다