python 은 pgzero 를 사용 하여 게임 개발 을 진행 합 니 다.

1. pgzero
python 은 각 분야 에서 풍부 한 제3자 라 이브 러 리 를 가지 고 있 습 니 다.pygame 은 python 이 게임 분야 에서 의 응용 라 이브 러 리 로 다양한 게임 을 개발 할 수 있 습 니 다.하지만 초보 자 에 게 는 문턱 이 있다.pgzero 는 pygame 을 바탕 으로 진일보 한 패 키 징 을 하여 게임 을 디자인 하 는 데 매우 편리 합 니 다.
pgzero 설치

pip install pygame
pip install pgzero
2.게임 디자인 의 과정
우 리 는 간단 한 게임 개발 에 필요 한 과정 을 간단하게 정리 할 수 있다.
  • 게임 의 이야기 디자인
  • 게임 의 장면 그리 기(배경 그림 과 소리)
  • 게임 의 캐릭터
  • 캐릭터 를 어떻게 제어 하 는 지
  • 성공 과 실 패 를 어떻게 판단 합 니까
  • 게임 의 관문 디자인
  • 3.pgzero 기초
    pgzero 게임 개발 과정 은 다음 과 같 습 니 다.
  • 게임 화면 영역 screen pgzero 에서 게임 인터페이스 창 설정 은 전역 변수 와 내 장 된 대상 screen 으로 이 루어 집 니 다.
  • 창 모양:WIDTH,HEIGHT,TITLE
  • 창 이 뚜렷 합 니 다:screen.clear()
  • 창 배경 색:screen.fill(빨간색,녹색,파란색)
  • 창 에 그림 그리 기:screen.blit(image,(left,top)
  • 창 에 기하학 적 그림 그리 기:screen.draw.line screen.draw.circle screen.draw.rect
  • 게임 캐릭터 Actor pgzero 에서 그림 으로 표 시 된 모든 요 소 는 Actor 클래스 로 정 의 됩 니 다.
  • 
    # 'alien'   alien  ,   images/alien.png
    # (50, 50)    Actor         
    alien = Actor('alien', (50, 50))
    Actor 의 위치:

    Actor 중요 속성 과 방법:
  • 기타 속성 은 pygame.Rect 와 같 습 니 다.
  • 외관:image,예 를 들 어 alien.image='alienhurt'
  • 위치:piex 좌표 값:x,y,설정 위치:pos,left/right/top/bottom
  • 각도:angle
  • f 그리 기 방법:draw()
  • 거리 방법:Actor.distanceto(target)
  • 각도 방법:Actor.angleto(target)
  • 게임 렌 더 링 그리 기 draw
  • 게임 상태의 업데이트 업데이트
  • 게임 외부 이벤트 의 트리거 제어 onxxx_xxx pgzero 는 자주 사용 하 는 마우스 와 키보드 이벤트
  • 를 제공 합 니 다.
    키보드 의 버튼 정 보 는 키보드 내 장 된 대상 을 통 해 얻 을 수 있 으 며 마 우 스 는 마우스 로 얻 을 수 있 습 니 다.예 를 들 어:
    
     keyboard.a  # The 'A' key
     keyboard.left  # The left arrow key
     keyboard.rshift  # The right shift key
     keyboard.kp0  # The '0' key on the keypad
     keyboard.k_0  # The main '0' key
    
     mouse.LEFT
     mouse.RIGHT
     mouse.MIDDLE
    상세 하 게 보다
  • https://pygame-zero.readthedocs.io/en/stable/hooks.html#mouse.WHEEL_DOWN
  • 키보드 이벤트:onkey_down, on_key_up
  • 마우스 이벤트:onmouse_down, on_mouse_up, on_mouse_move
  • 기타 중요 요소
  • 소리 sounds:wav 와 ogg 를 지원 합 니 다.자원 대상 디 렉 터 리 는 기본적으로./sounds
  • 입 니 다.
    
    #     ./sounds/drum.wav
    sounds.drum.play()
  • 음악 음악 은 mp3 를 지원 하 는데 주로 시간 이 긴 오디 오 파일 입 니 다.자원 대상 디 렉 터 리 는 기본적으로./music
  • 입 니 다.
    
    #     ./music/drum.mp3
    music.play('drum')
  • 애니메이션 효과 Animations,예 를 들 어 캐릭터 를 특정한 위치 로 이동
  • 
    # animate(object, tween='linear', duration=1, on_finished=None, **targets)
    animate(alien, pos=(100, 100))
    자세 한 내용 은:
    https://pygame-zero.readthedocs.io/en/stable/builtins.html#Animations
    4.pgzero 게임 예
    pgzero 의 기본 사용 상황 을 알 게 되 었 습 니 다.예 를 들 어 게임 을 작성 하고 제작 하 는 과정 을 연결 합 니 다.
    핸드폰 에 있 는 게임 플 래 피 버드 를 모 의 해 보 겠 습 니 다.게임 설명
    
     《FlappyBird》     ,             ,      ,       ,              。    ,      。               ,               。 [3] 
    1、      ,    ,            ,        。
    2、         ,          ,       。
    3、      ,                1 。         ,     。
    pgzero 게임 코드 구조:
    
    import pgzrun
    
    #           
    TITLE = 'xxx'
    WIDTH = 400
    HEIGHT = 500
    
    #       
    def draw():
        pass
    
    #       
    def update():
        pass
    
    #       
    def on_key_down():
        pass
    
    #       
    def on_mouse_down():
        pass
    
    #   
    pgzrun.go()
    
    import pgzrun
    import random
    
    
    TITLE = 'Flappy Bird'
    WIDTH = 400
    HEIGHT = 500
    
    # These constants control the difficulty of the game
    GAP = 130
    GRAVITY = 0.3
    FLAP_STRENGTH = 6.5
    SPEED = 3
    
    # bird 
    bird = Actor('bird1', (75, 200))
    bird.dead = False
    bird.score = 0
    bird.vy = 0
    
    storage = {}
    storage['highscore'] = 0
    
    
    def reset_pipes():
        #        
        pipe_gap_y = random.randint(200, HEIGHT - 200)
        pipe_top.pos = (WIDTH, pipe_gap_y - GAP // 2)
        pipe_bottom.pos = (WIDTH, pipe_gap_y + GAP // 2)
    
    
    pipe_top = Actor('top', anchor=('left', 'bottom'))
    pipe_bottom = Actor('bottom', anchor=('left', 'top'))
    reset_pipes()  # Set initial pipe positions.
    
    
    def update_pipes():
        #        
        pipe_top.left -= SPEED
        pipe_bottom.left -= SPEED
        if pipe_top.right < 0:
            reset_pipes()
            if not bird.dead:
                bird.score += 1
                if bird.score > storage['highscore']:
                    storage['highscore'] = bird.score
    
    
    def update_bird():
        #     
        uy = bird.vy
        bird.vy += GRAVITY
        bird.y += (uy + bird.vy) / 2
        bird.x = 75
    
        #              
        if not bird.dead:
            if bird.vy < -3:
                bird.image = 'bird2'
            else:
                bird.image = 'bird1'
    
        #       :       
        if bird.colliderect(pipe_top) or bird.colliderect(pipe_bottom):
            bird.dead = True
            bird.image = 'birddead'
    
        #           
        if not 0 < bird.y < 720:
            bird.y = 200
            bird.dead = False
            bird.score = 0
            bird.vy = 0
            reset_pipes()
    
    
    def update():
        update_pipes()
        update_bird()
    
    #      ,     
    def on_key_down():
        if not bird.dead:
            bird.vy = -FLAP_STRENGTH
    
    # 
    def draw():
        #     
        screen.blit('background', (0, 0))
        
        #     /  
        pipe_top.draw()
        pipe_bottom.draw()
        bird.draw()
    
        #        
        screen.draw.text(
            str(bird.score),
            color='white',
            midtop=(WIDTH // 2, 10),
            fontsize=70,
            shadow=(1, 1)
        )
        screen.draw.text(
            "Best: {}".format(storage['highscore']),
            color=(200, 170, 0),
            midbottom=(WIDTH // 2, HEIGHT - 10),
            fontsize=30,
            shadow=(1, 1)
        )
    
    
    pgzrun.go()

    5.총화
    본 고 는 pygame 패 키 징 판 을 기반 으로 한 pgzero 가 python 게임 을 개발 하 는 과정 을 공유 하 였 으 며,도움 이 되 기 를 바 랍 니 다.총 결 은 다음 과 같다.
  • pgzero 개발 삼 총사:draw()/update()/onxxx_xxx()
  • pgzero 내장 대상:screen 은 창 설정 을 책임 지고 Actor 는 이미지 디 스 플레이 를 책임 지 며 sounds 는 짧 은 오디 오 를 책임 지고 music 는 긴 오디 오 bgm 를 책임 지 며 애니메이션 효 과 는 animate
  • 가 있 습 니 다.
  • pgzero 자원 디 렉 터 리:./images/xxx.png./music/xxx.mp3 ./sounds/xxx/wav
  • 6.참고 자료
    https://pygame-zero.readthedocs.io/en/stable/
    이상 은 python 이 pgzero 를 사용 하여 게임 개발 을 진행 하 는 상세 한 내용 입 니 다.python pgzero 게임 개발 에 관 한 자 료 는 다른 관련 글 을 주목 하 십시오!

    좋은 웹페이지 즐겨찾기