最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

如何基于Python pygame實(shí)現(xiàn)動(dòng)畫(huà)跑馬燈

 更新時(shí)間:2020年11月18日 09:42:42   作者:松鼠愛(ài)吃餅干  
這篇文章主要介紹了如何基于Python pygame實(shí)現(xiàn)動(dòng)畫(huà)跑馬燈,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

前言

大家都看過(guò)彩帶飄落吧?這個(gè)在比較喜慶的場(chǎng)合是很常見(jiàn)的:

還有“跑馬燈”效果,聽(tīng)起來(lái)很陌生,其實(shí)很常見(jiàn),下面的就是:

好了,相信大家都有了初步的認(rèn)識(shí)。當(dāng)然,如果有做前端或者搞設(shè)計(jì)的同學(xué),上面的效果應(yīng)該不難實(shí)現(xiàn),那如果想通過(guò)Python呢?有沒(méi)有包可以調(diào)用呢?

答案是有的——pygame

這個(gè)包適合用來(lái)開(kāi)發(fā)游戲,今天就不打算給大家詳細(xì)介紹了,還是想給大伙兒放松放松,以后有機(jī)會(huì)再多寫(xiě)寫(xiě)它。

不多說(shuō),直接甩出代碼:

import pygame
from random import randint, choice

screen_length = 700
screen_width = 500
# 模擬彩帶飄落的類(lèi),掉落的詞作為彩帶
class Word_drop(pygame.sprite.Sprite):

  # 設(shè)置屬性:包括字體、下落速度、彩帶來(lái)源、彩帶框的屬性
  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

  # 設(shè)置彩帶更新的條件
  def update(self, *args):
    self.rect = self.rect.move(0, self.speed)
    if self.rect.top > screen_length:
      self.kill()

# 實(shí)現(xiàn)"跑馬燈"效果的函數(shù)
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 = "  中國(guó)"
  text1 = a.render(word1, True, (255, 0, 0), (0, 0, 0))

  word2 = "我超級(jí)愛(ài)你"
  text2 = a.render(word2, True, (255, 0, 0), (0, 0, 0))

  # "跑馬場(chǎng)"字體框的屬性
  _, _, 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)

  # 其他相關(guān)設(shè)置
  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))

    # 設(shè)置退出的條件
    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)

    # "跑馬場(chǎng)"
    word_translate(jx1, ztw1, ztw2, screen_length, text1)
    word_translate(jx2, ztw1, ztw2, screen_length, text2)

    pygame.display.update()

好了,來(lái)看看效果:

還不錯(cuò)吧,有沒(méi)有感覺(jué)好玩呢?

當(dāng)然,如果需要,代碼直接拿去用,根據(jù)自己的想法去改就行!

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 如何用Python做一個(gè)微信機(jī)器人自動(dòng)拉群

    如何用Python做一個(gè)微信機(jī)器人自動(dòng)拉群

    這篇文章主要介紹了如何用Python做一個(gè)微信機(jī)器人自動(dòng)拉群,微當(dāng)群人數(shù)達(dá)到100人后,用戶無(wú)法再通過(guò)掃描群二維碼加入,只能讓用戶先添加群內(nèi)聯(lián)系人微信,再由聯(lián)系人把用戶拉進(jìn)來(lái)。這樣,聯(lián)系人員的私人微信會(huì)添加大量陌生人,給其帶來(lái)不必要的打擾,需要的朋友可以參考下
    2019-07-07
  • Python如何實(shí)現(xiàn)自帶HTTP文件傳輸服務(wù)

    Python如何實(shí)現(xiàn)自帶HTTP文件傳輸服務(wù)

    這篇文章主要介紹了Python如何實(shí)現(xiàn)自帶HTTP文件傳輸服務(wù),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07
  • pandas.loc 選取指定列進(jìn)行操作的實(shí)例

    pandas.loc 選取指定列進(jìn)行操作的實(shí)例

    今天小編就為大家分享一篇pandas.loc 選取指定列進(jìn)行操作的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-05-05
  • yolov5 win10 CPU與GPU環(huán)境搭建過(guò)程

    yolov5 win10 CPU與GPU環(huán)境搭建過(guò)程

    這篇文章主要介紹了yolov5 win10 CPU與GPU環(huán)境搭建過(guò)程,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-04-04
  • 解決Tensorflow安裝成功,但在導(dǎo)入時(shí)報(bào)錯(cuò)的問(wèn)題

    解決Tensorflow安裝成功,但在導(dǎo)入時(shí)報(bào)錯(cuò)的問(wèn)題

    今天小編就為大家分享一篇解決Tensorflow安裝成功,但在導(dǎo)入時(shí)報(bào)錯(cuò)的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-06-06
  • 詳解Python?Requests庫(kù)中的重試策略

    詳解Python?Requests庫(kù)中的重試策略

    在Python中,requests庫(kù)是處理HTTP請(qǐng)求的標(biāo)準(zhǔn)工具之一,這篇文章主要為大家介紹了如何在requests中實(shí)現(xiàn)請(qǐng)求的自動(dòng)重試,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-11-11
  • Python使用PyYAML庫(kù)讀寫(xiě)yaml文件的方法

    Python使用PyYAML庫(kù)讀寫(xiě)yaml文件的方法

    這篇文章主要介紹了Python使用PyYAML庫(kù)讀寫(xiě)yaml文件的方法,包括YAML基本概念介紹及YAML語(yǔ)法知識(shí),結(jié)合示例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-04-04
  • 使用Python實(shí)現(xiàn)快速搭建本地HTTP服務(wù)器

    使用Python實(shí)現(xiàn)快速搭建本地HTTP服務(wù)器

    這篇文章主要介紹了如何使用Python快速搭建本地HTTP服務(wù)器,輕松實(shí)現(xiàn)一鍵 HTTP 文件共享,同時(shí)結(jié)合二維碼技術(shù),讓訪問(wèn)更簡(jiǎn)單,感興趣的小伙伴可以了解下
    2025-04-04
  • python 監(jiān)聽(tīng)salt job狀態(tài),并任務(wù)數(shù)據(jù)推送到redis中的方法

    python 監(jiān)聽(tīng)salt job狀態(tài),并任務(wù)數(shù)據(jù)推送到redis中的方法

    今天小編就為大家分享一篇python 監(jiān)聽(tīng)salt job狀態(tài),并任務(wù)數(shù)據(jù)推送到redis中的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-01-01
  • Django中數(shù)據(jù)庫(kù)遷移常用的命令小結(jié)

    Django中數(shù)據(jù)庫(kù)遷移常用的命令小結(jié)

    在Django中數(shù)據(jù)庫(kù)遷移用于保持?jǐn)?shù)據(jù)庫(kù)結(jié)構(gòu)與模型定義同步,這篇文章主要介紹了Django中數(shù)據(jù)庫(kù)遷移常用的命令,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2025-03-03

最新評(píng)論

乐东| 湘乡市| 柘城县| 吉水县| 齐河县| 石嘴山市| 涿州市| 德化县| 三门峡市| 金秀| 嘉义县| 达拉特旗| 水城县| 榆中县| 滦南县| 葫芦岛市| 施秉县| 临清市| 全椒县| 论坛| 陈巴尔虎旗| 吴忠市| 特克斯县| 华阴市| 古田县| 绥江县| 榆林市| 丽水市| 兴海县| 高陵县| 博白县| 安多县| 海门市| 白水县| 英山县| 蓝山县| 景东| 义乌市| 吴川市| 秦安县| 忻州市|