어떻게 Python pygame 을 바탕 으로 애니메이션 주마등 을 실현 합 니까?

머리말
리본 떨 어 지 는 거 다 들 보 셨 죠?이것 은 비교적 경 사 스 러 운 자리 에서 흔히 볼 수 있다.

그리고'주마등'효과 도 있 습 니 다.낯 설 게 들 리 지만 흔히 볼 수 있 습 니 다.다음은:

자,모두 가 초보적인 인식 을 가지 고 있 을 거 라 고 믿 습 니 다.물론 전단 을 하거나 디자인 을 하 는 친구 가 있다 면 위의 효 과 는 어렵 지 않 을 것 입 니 다.파 이 썬 을 통 해?호출 할 수 있 는 가방 이 있 습 니까?
답 은 있다--pygame
이 가방 은 게임 개발 에 적합 합 니 다.오늘 은 여러분 에 게 상세 하 게 소개 하지 않 을 생각 입 니 다.아니면 모두 에 게 긴장 을 풀 어 주 고 나중에 기회 가 있 으 면 다시 쓸 생각 입 니 다.
더 이상 말 하지 않 고 코드 를 꺼 냅 니 다.

import pygame
from random import randint, choice

screen_length = 700
screen_width = 500
#         ,        
class Word_drop(pygame.sprite.Sprite):

  #     :    、    、    、      
  def __init__(self):
    pygame.sprite.Sprite.__init__(self)
    self.font = pygame.font.SysFont(name='  ', size=10, bold=True, italic=True)
    self.speed = randint(15, 30)
    self.word = self.getWord()
    self.image = self.font.render(self.word, True,
                   (randint(0, 255), randint(0, 255), randint(0, 255)))
    self.image = pygame.transform.rotate(self.image, randint(87, 93))
    self.rect = self.image.get_rect()
    self.rect.topleft = (randint(0, screen_length), -20)

  #       
  def getWord(self):
    length = randint(1, 8)
    word = ''
    for i in range(length):
      word += choice('qwertyuiopasdfghjklzxcvbnm1234567890QWERTYUIOPASDFGHJKLZXCVBNM')
    return word

  #          
  def update(self, *args):
    self.rect = self.rect.move(0, self.speed)
    if self.rect.top > screen_length:
      self.kill()

#   "   "     
def word_translate(jx, ztw1, ztw2, screen_length, text):
  max_ztw = max(ztw1, ztw2)
  jx.x -= 5
  if jx.x < 0 - max_ztw:
    jx.x = (screen_length + 10)
  screen.blit(text, [jx.x, jx.y])

if __name__ == '__main__':

  #      
  pygame.init()
  pygame.font.init()

  #     ,   
  a = pygame.font.SysFont(name='  ', size=50, bold=True, italic=True)

  word1 = "    "
  text1 = a.render(word1, True, (255, 0, 0), (0, 0, 0))

  word2 = "     "
  text2 = a.render(word2, True, (255, 0, 0), (0, 0, 0))

  # "   "      
  _, _, ztw1, zth1 = text1.get_rect()
  jx1 = pygame.Rect(screen_length, (screen_width / 2 - zth1), ztw1, zth1)

  _, _, ztw2, zth2 = text2.get_rect()
  jx2 = pygame.Rect(screen_length, (screen_width / 2), ztw2, zth2)

  #       
  screen = pygame.display.set_mode((screen_length, screen_width))
  clock = pygame.time.Clock()
  wordGroup = pygame.sprite.Group()

  while True:

    clock.tick(30)
    screen.fill((0, 0, 0))

    #        
    for event in pygame.event.get():
      if event.type == pygame.QUIT:
        pygame.quit()
        exit(0)

    #     
    word_object = Word_drop()
    wordGroup.add(word_object)
    wordGroup.update()
    wordGroup.draw(screen)

    # "   "
    word_translate(jx1, ztw1, ztw2, screen_length, text1)
    word_translate(jx2, ztw1, ztw2, screen_length, text2)

    pygame.display.update()
자,효과 좀 봅 시다.

괜 찮 죠?재 밌 지 않 아 요?
물론 필요 하 다 면 코드 를 직접 가 져 가서 사용 하고 자신의 생각 에 따라 고치 면 됩 니 다!
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기