노는게 제일 좋습니다.
pygame 사각형 직선이동 애니메이션 본문
코드 출처 http://inventwithpython.com/
http://inventwithpython.com/animation.py
pygame 에서의 애니메이션 예제로, 게임루프가 어떻게 돌아가는지 알 수 있는것 같다.
별 내용은 없음.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 | import pygame import sys import time from pygame.locals import * pygame.init() WINDOWWIDTH = 400 WINDOWHEIGHT = 400 windowSurface = pygame.display.set_mode((WINDOWWIDTH,WINDOWHEIGHT),0,32) pygame.display.set_caption('Animation') DOWNLEFT = 1 DOWNRIGHT=3 UPLEFT = 7 UPRIGHT= 9 MOVESPEED = 4 BLACK = (0,0,0) RED = (255,0,0) GREEN = (0,255,0) BLUE = (0,0,255) #블록데이터 구조 설정 b1 = { 'rect':pygame.Rect(300,80,50,100), 'color':RED, 'dir':UPRIGHT} b2 = { 'rect':pygame.Rect(200,200,20,20), 'color':GREEN, 'dir':UPLEFT} b3 = { 'rect':pygame.Rect(100,150,60,60), 'color':BLUE, 'dir':DOWNLEFT} blocks = [b1,b2,b3] while True: for event in pygame.event.get(): if event.type == QUIT: pygame.quit() sys.exit() windowSurface.fill(BLACK) for b in blocks: if b['dir'] == DOWNLEFT: b['rect'].left -= MOVESPEED b['rect'].top += MOVESPEED if b['dir'] == DOWNRIGHT: b['rect'].left += MOVESPEED b['rect'].top += MOVESPEED if b['dir'] == UPLEFT: b['rect'].left -= MOVESPEED b['rect'].top -= MOVESPEED if b['dir'] == UPRIGHT: b['rect'].left += MOVESPEED b['rect'].top -= MOVESPEED if b['rect'].top < 0: if b['dir'] == UPLEFT: b['dir'] = DOWNLEFT if b['dir'] == UPRIGHT: b['dir'] = DOWNRIGHT if b['rect'].bottom > WINDOWHEIGHT: if b['dir'] == DOWNLEFT: b['dir'] = UPLEFT if b['dir'] == DOWNRIGHT: b['dir'] = UPRIGHT if b['rect'].left < 0 : if b['dir'] == DOWNLEFT: b['dir'] = DOWNRIGHT if b['dir'] == UPLEFT: b['dir'] = UPRIGHT if b['rect'].right > WINDOWWIDTH: if b['dir'] == DOWNRIGHT: b['dir'] = DOWNLEFT if b['dir'] == UPRIGHT: b['dir'] = UPLEFT pygame.draw.rect(windowSurface, b['color'], b['rect']) pygame.display.update() time.sleep(0.02) | cs |
위 소스코드를 바꿨을 때 일어나는 일을 담은 영상.
두 가지 부분을 바꾸어본다.
알수있는 사실은, update()가 이전의 화면을 지우고 새로운 서피스들을 그리는 것이 아니라는 것.
'Python > 기타 공부' 카테고리의 다른 글
pygame 키입력으로 이동해 상자먹기 (0) | 2016.02.07 |
---|---|
이벤트 받아 움직이며 상자 먹기 (0) | 2016.02.07 |
pygame엔진 Hello world (0) | 2016.02.06 |
베이글 게임(세자리 숫자 맞추기) (0) | 2016.02.04 |
틱택토 인공지능 버그 수정 (0) | 2016.02.03 |
Comments