의 시작을위한 당신과 매우 유사한 몇 가지 코드를 포함, 당신은해야합니다 "while True :"루프를 사용하여 뭔가를 변경하십시오.
import pygame, sys, pygame.locals#1
pygame.init()#2
window=pygame.display.set_mode((500, 400), 0, 32)#3
pygame.display.set_caption("Paint")#4
BLACK = (0, 0, 0)#5
WHITE = (255, 255, 255)#6
RED = (255, 0, 0)#7
GREEN = (0, 255, 0)#8
BLUE = (0, 0, 255)#9
pentagon=pygame.Surface((250, 265))#10
pentagon.fill((0, 0, 0))#11
pygame.draw.polygon(pentagon, BLUE, ((146, 0), (250, 100), (230, 265), (44, 250), (0,110)))#12
pentagon.set_colorkey((0, 0, 0))#13
triangle=pygame.Surface((150, 200))#14
triangle.fill((0, 0, 0))#15
pygame.draw.polygon(triangle, RED, ((70, 0), (150, 200), (0, 50)))#16
triangle.set_colorkey((0, 0, 0))#17
line=pygame.Surface((60, 8))#18
line.fill(BLACK)#19
circle=pygame.Surface((30, 30))#20
circle.fill((0, 0, 0))#21
pygame.draw.circle(circle, GREEN , (15, 15), 15, 0)#22
circle.set_colorkey((0, 0, 0))#23
rects={'pentagon': pentagon.get_rect(), 'triangle': triangle.get_rect(), 'line': line.get_rect(), 'circle': circle.get_rect()}#24
rects['line'].centery=60#25
rects['line'].left=60#26
rects['circle'].centerx=150#27
rects['circle'].centery=150#28
while True:#29
for event in pygame.event.get():#30
if event.type==pygame.locals.QUIT:#31
pygame.quit()#32
sys.exit()#33
for rect in rects:#34
rects[rect].right+=1#35
if rects[rect].right>500:#36
if rect=='line':#37
rects['line'].centery=60#38
rects['line'].left=60#39
elif rect=='circle':#40
rects['circle'].centerx=150#41
rects['circle'].centery=150#42
else:#43
rects[rect].topleft=(0, 0)#44
window.fill(WHITE)#45
window.blit(pentagon, rects['pentagon'])#46
window.blit(triangle, rects['triangle'])#47
window.blit(line, rects['line'])#48
window.blit(circle, rects['circle'])#49
pygame.time.Clock().tick(40)#50
pygame.display.update()#51
나는 가능한뿐만 아니라이 코드를 설명하기 위해 최선을 다하겠습니다 : 여기에 당신이 무엇을하려고 할 것입니다 코드의 예입니다.
줄 1-9, 당신은 이미 알고 있습니다.
줄 10은 아마도 당신이 모르는 것으로 시작합니다. 서페이스 개체는 다른 서페이스에 첨부하거나 pygame.draw로 그릴 수있는 사각형 그림 유형입니다. 믿거 나 말거나, 창은 실제로 표면입니다.
선 10은 서페이스를 만들고 선 11은 검정으로 채우고 선 12는 오각형을 그립니다.
기본적으로 13 행은 검은 색으로 표시된 모든 픽셀을 투명하게 만듭니다.
14-17 줄을 이제 이해해야합니다.
선 18은 선에 대한 새로운 곡면 개체를 작성하지만 선을 그립니다 대신 검정색으로 채워집니다. 왜냐하면 이전 프로그램의 줄을 보면 그 사각형이 실제로 사각형인지 아닌지 알 수 있기 때문입니다.
20-23 줄을 이해해야합니다.
줄 24는 직사각형 사전을 만듭니다. 직사각형은 서페이스 개체의 위치를 표시하며 서페이스 개체를 무언가에 그릴 때 필요합니다.
라인 25-28은 라인과 원의 위치를 변경합니다. 내가이 일을 한 이유는 프로그램의 왼쪽 상단 구석에 선과 원이 없다는 것을 고려하면 좋겠다고 생각했기 때문입니다.
29-33 행을 이해해야합니다.
라인 34는 모든 rect를 통과하는 for 루프를 시작합니다.
라인 35는 각 직사각형의 오른쪽을 한 픽셀 오른쪽으로 이동합니다.
라인 36은 rect의 오른쪽이 윈도우의 오른쪽 가장자리에 맞았는지 확인합니다.
Line 37은 측면을 맞춘 것이 라인인지 확인하고, 맞으면 라인 38-39는 그것을 가지고 있던 위치로 이동합니다.
라인 40은 측면을 맞춘 것이 원인지 확인하고, 맞으면 라인 41-42는 원했던 위치로 이동합니다.
43-44 행은 왼쪽 위 모서리에 사각형을 넣습니다. 다른 두 모양이 시작되었습니다.
라인 45 알아 두어야 할 사항.
46-49 행은 surface.blit() 함수를 사용합니다. 이 함수의 첫 번째 인수는 서페이스이고 두 번째 인수는 rect입니다.
라인 50은 초당 40 프레임 이상을 허용하지 않습니다.
51 번째 줄은 화면을 업데이트합니다.
정말 도움이 되었으면 좋겠다. 투표를하거나 투표를 통해 답변을 받아 주시면 감사하겠습니다. 질문이 있으시면, 물어보십시오. 고맙습니다!
아마도 도움이 될 수 있습니다. http://stackoverflow.com/questions/8252860/pygame-move-object-position-from-one-point-to-another-at-constant-speed/8253040#8253040 – sinan