婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 學會用Python實現(xiàn)滑雪小游戲,再也不用去北海道啦

學會用Python實現(xiàn)滑雪小游戲,再也不用去北海道啦

熱門標簽:武漢外呼系統(tǒng)平臺 沈陽防封電銷卡品牌 富錦商家地圖標注 池州外呼調(diào)研線路 如何申請400電話費用 江西省地圖標注 沈陽人工外呼系統(tǒng)價格 沈陽外呼系統(tǒng)呼叫系統(tǒng) 外呼系統(tǒng)哪些好辦

一、效果圖

二、必要工具

Python3.7

pycharm2019

再然后配置它的文件,設置游戲屏幕的大小,圖片路徑。

代碼如下

'''配置文件'''
import os
 
 
'''FPS'''
FPS = 40
'''游戲屏幕大小'''
SCREENSIZE = (640, 640)
'''圖片路徑'''
SKIER_IMAGE_PATHS = [
    os.path.join(os.getcwd(), 'resources/images/skier_forward.png'),
    os.path.join(os.getcwd(), 'resources/images/skier_right1.png'),
    os.path.join(os.getcwd(), 'resources/images/skier_right2.png'),
    os.path.join(os.getcwd(), 'resources/images/skier_left2.png'),
    os.path.join(os.getcwd(), 'resources/images/skier_left1.png'),
    os.path.join(os.getcwd(), 'resources/images/skier_fall.png')
]
OBSTACLE_PATHS = {
    'tree': os.path.join(os.getcwd(), 'resources/images/tree.png'),
    'flag': os.path.join(os.getcwd(), 'resources/images/flag.png')
}
'''背景音樂路徑'''
BGMPATH = os.path.join(os.getcwd(), 'resources/music/bgm.mp3')
'''字體路徑'''
FONTPATH = os.path.join(os.getcwd(), 'resources/font/FZSTK.TTF')

三、全部源碼

'''滑雪者類'''
class SkierClass(pygame.sprite.Sprite):
    def __init__(self):
        pygame.sprite.Sprite.__init__(self)
        # 滑雪者的朝向(-2到2)
        self.direction = 0
        self.imagepaths = cfg.SKIER_IMAGE_PATHS[:-1]
        self.image = pygame.image.load(self.imagepaths[self.direction])
        self.rect = self.image.get_rect()
        self.rect.center = [320, 100]
        self.speed = [self.direction, 6-abs(self.direction)*2]
    '''改變滑雪者的朝向. 負數(shù)為向左,正數(shù)為向右,0為向前'''
    def turn(self, num):
        self.direction += num
        self.direction = max(-2, self.direction)
        self.direction = min(2, self.direction)
        center = self.rect.center
        self.image = pygame.image.load(self.imagepaths[self.direction])
        self.rect = self.image.get_rect()
        self.rect.center = center
        self.speed = [self.direction, 6-abs(self.direction)*2]
        return self.speed
    '''移動滑雪者'''
    def move(self):
        self.rect.centerx += self.speed[0]
        self.rect.centerx = max(20, self.rect.centerx)
        self.rect.centerx = min(620, self.rect.centerx)
    '''設置為摔倒狀態(tài)'''
    def setFall(self):
        self.image = pygame.image.load(cfg.SKIER_IMAGE_PATHS[-1])
    '''設置為站立狀態(tài)'''
    def setForward(self):
        self.direction = 0
        self.image = pygame.image.load(self.imagepaths[self.direction])
 
 
'''
Function:
    障礙物類
Input:
    img_path: 障礙物圖片路徑
    location: 障礙物位置
    attribute: 障礙物類別屬性
'''
class ObstacleClass(pygame.sprite.Sprite):
    def __init__(self, img_path, location, attribute):
        pygame.sprite.Sprite.__init__(self)
        self.img_path = img_path
        self.image = pygame.image.load(self.img_path)
        self.location = location
        self.rect = self.image.get_rect()
        self.rect.center = self.location
        self.attribute = attribute
        self.passed = False
    '''移動'''
    def move(self, num):
        self.rect.centery = self.location[1] - num
 
 
'''創(chuàng)建障礙物'''
def createObstacles(s, e, num=10):
    obstacles = pygame.sprite.Group()
    locations = []
    for i in range(num):
        row = random.randint(s, e)
        col = random.randint(0, 9)
        location  = [col*64+20, row*64+20]
        if location not in locations:
            locations.append(location)
            attribute = random.choice(list(cfg.OBSTACLE_PATHS.keys()))
            img_path = cfg.OBSTACLE_PATHS[attribute]
            obstacle = ObstacleClass(img_path, location, attribute)
            obstacles.add(obstacle)
    return obstacles
 
 
'''合并障礙物'''
def AddObstacles(obstacles0, obstacles1):
    obstacles = pygame.sprite.Group()
    for obstacle in obstacles0:
        obstacles.add(obstacle)
    for obstacle in obstacles1:
        obstacles.add(obstacle)
    return obstacles
 
 
'''顯示游戲開始界面'''
def ShowStartInterface(screen, screensize):
    screen.fill((255, 255, 255))
    tfont = pygame.font.Font(cfg.FONTPATH, screensize[0]//5)
    cfont = pygame.font.Font(cfg.FONTPATH, screensize[0]//20)
    title = tfont.render(u'滑雪游戲', True, (255, 0, 0))
    content = cfont.render(u'按任意鍵開始游戲', True, (0, 0, 255))
    trect = title.get_rect()
    trect.midtop = (screensize[0]/2, screensize[1]/5)
    crect = content.get_rect()
    crect.midtop = (screensize[0]/2, screensize[1]/2)
    screen.blit(title, trect)
    screen.blit(content, crect)
    while True:
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                pygame.quit()
                sys.exit()
            elif event.type == pygame.KEYDOWN:
                return
        pygame.display.update()
 
 
'''顯示分數(shù)'''
def showScore(screen, score, pos=(10, 10)):
    font = pygame.font.Font(cfg.FONTPATH, 30)
    score_text = font.render("Score: %s" % score, True, (0, 0, 0))
    screen.blit(score_text, pos)
 
 
'''更新當前幀的游戲畫面'''
def updateFrame(screen, obstacles, skier, score):
    screen.fill((255, 255, 255))
    obstacles.draw(screen)
    screen.blit(skier.image, skier.rect)
    showScore(screen, score)
    pygame.display.update()
 
 
'''主程序'''
def main():
    # 游戲初始化
    pygame.init()
    pygame.mixer.init()
    pygame.mixer.music.load(cfg.BGMPATH)
    pygame.mixer.music.set_volume(0.4)
    pygame.mixer.music.play(-1)
    # 設置屏幕
    screen = pygame.display.set_mode(cfg.SCREENSIZE)
    pygame.display.set_caption('滑雪游戲 —— 九歌')
    # 游戲開始界面
    ShowStartInterface(screen, cfg.SCREENSIZE)
    # 實例化游戲精靈
    # --滑雪者
    skier = SkierClass()
    # --創(chuàng)建障礙物
    obstacles0 = createObstacles(20, 29)
    obstacles1 = createObstacles(10, 19)
    obstaclesflag = 0
    obstacles = AddObstacles(obstacles0, obstacles1)
    # 游戲clock
    clock = pygame.time.Clock()
    # 記錄滑雪的距離
    distance = 0
    # 記錄當前的分數(shù)
    score = 0
    # 記錄當前的速度
    speed = [0, 6]
    # 游戲主循環(huán)
    while True:
        # --事件捕獲
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                pygame.quit()
                sys.exit()
            if event.type == pygame.KEYDOWN:
                if event.key == pygame.K_LEFT or event.key == pygame.K_a:
                    speed = skier.turn(-1)
                elif event.key == pygame.K_RIGHT or event.key == pygame.K_d:
                    speed = skier.turn(1)
        # --更新當前游戲幀的數(shù)據(jù)
        skier.move()
        distance += speed[1]
        if distance >= 640 and obstaclesflag == 0:
            obstaclesflag = 1
            obstacles0 = createObstacles(20, 29)
            obstacles = AddObstacles(obstacles0, obstacles1)
        if distance >= 1280 and obstaclesflag == 1:
            obstaclesflag = 0
            distance -= 1280
            for obstacle in obstacles0:
                obstacle.location[1] = obstacle.location[1] - 1280
            obstacles1 = createObstacles(10, 19)
            obstacles = AddObstacles(obstacles0, obstacles1)
        for obstacle in obstacles:
            obstacle.move(distance)
        # --碰撞檢測
        hitted_obstacles = pygame.sprite.spritecollide(skier, obstacles, False)
        if hitted_obstacles:
            if hitted_obstacles[0].attribute == "tree" and not hitted_obstacles[0].passed:
                score -= 50
                skier.setFall()
                updateFrame(screen, obstacles, skier, score)
                pygame.time.delay(1000)
                skier.setForward()
                speed = [0, 6]
                hitted_obstacles[0].passed = True
            elif hitted_obstacles[0].attribute == "flag" and not hitted_obstacles[0].passed:
                score += 10
                obstacles.remove(hitted_obstacles[0])
        # --更新屏幕
        updateFrame(screen, obstacles, skier, score)
        clock.tick(cfg.FPS)

到此這篇關于學會用Python實現(xiàn)滑雪小游戲,再也不用去北海道啦的文章就介紹到這了,更多相關Python滑雪小游戲內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • python實現(xiàn)滑雪游戲
  • python實現(xiàn)滑雪者小游戲
  • Python實現(xiàn)滑雪小游戲

標簽:潛江 黑龍江 銅川 通遼 阿里 呂梁 常德 株洲

巨人網(wǎng)絡通訊聲明:本文標題《學會用Python實現(xiàn)滑雪小游戲,再也不用去北海道啦》,本文關鍵詞  學,會用,Python,實現(xiàn),滑雪,;如發(fā)現(xiàn)本文內(nèi)容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《學會用Python實現(xiàn)滑雪小游戲,再也不用去北海道啦》相關的同類信息!
  • 本頁收集關于學會用Python實現(xiàn)滑雪小游戲,再也不用去北海道啦的相關信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    精品99一区二区| 成人精品视频一区| 国产人久久人人人人爽| 欧美三级日韩在线| ...xxx性欧美| wwwwww.欧美系列| 欧美一级日韩一级| 亚洲男人的天堂网| 国产欧美精品国产国产专区| 91精品欧美久久久久久动漫| 一本久久a久久免费精品不卡| 9191成人精品久久| 美女网站色91| 亚洲福利一区二区| 国产精品高潮呻吟| 国产农村妇女毛片精品久久麻豆 | 成人免费视频播放| 久久激五月天综合精品| 日韩精品电影一区亚洲| 午夜久久电影网| 亚洲一区二区欧美激情| 亚洲欧美日韩一区二区| 91免费小视频| heyzo一本久久综合| 风间由美一区二区av101| 国产精品白丝jk黑袜喷水| 国内精品视频一区二区三区八戒| 日本不卡一区二区三区| 日本成人在线一区| 日韩一区二区精品在线观看| 精品亚洲成a人| 国产自产视频一区二区三区| 国产一区二区三区香蕉| 国产精品一区二区无线| 色悠悠久久综合| 日本vs亚洲vs韩国一区三区二区| 偷拍与自拍一区| 日本成人中文字幕在线视频| 日本不卡视频一二三区| 精品一区二区三区的国产在线播放| 日本亚洲三级在线| 黄网站免费久久| 国产成人av电影在线| 成人18精品视频| 91久久一区二区| 91精品综合久久久久久| 成人午夜在线播放| 色综合网色综合| 欧美日韩美少妇| 日韩三级伦理片妻子的秘密按摩| 精品久久久久久久人人人人传媒| 久久精品人人做人人爽97| 中文字幕精品一区二区精品绿巨人 | 一本色道久久综合亚洲91| 97精品国产97久久久久久久久久久久| 91在线观看下载| 欧美日本乱大交xxxxx| 欧美变态tickling挠脚心| 欧美国产1区2区| 一区二区三区国产精品| 免费av网站大全久久| 国产精品1024久久| 日本高清不卡视频| 日韩欧美国产一区二区三区| 欧美日韩一卡二卡三卡 | 秋霞电影一区二区| 国产一区二区三区免费播放| 91免费版在线| 91精品国产免费久久综合| 国产亚洲一本大道中文在线| 亚洲品质自拍视频网站| 国产成人精品亚洲777人妖 | 美美哒免费高清在线观看视频一区二区 | 久久久久国产精品麻豆ai换脸| 国产精品久久久久精k8| 丝袜美腿亚洲色图| 成人一区二区三区在线观看| 欧美日韩国产乱码电影| 日本一区二区三区电影| 亚洲精品在线电影| 欧美韩日一区二区三区四区| 亚洲高清免费观看| 国产91精品欧美| 91精品国产美女浴室洗澡无遮挡| 国产精品三级av在线播放| 日韩av一区二区在线影视| 99久久精品国产精品久久| 欧美丰满美乳xxx高潮www| 国产成人精品影视| 日韩一区二区三区三四区视频在线观看| 日本一区二区三区电影| 蜜臂av日日欢夜夜爽一区| 色婷婷av一区二区三区gif| 337p日本欧洲亚洲大胆色噜噜| 亚洲人吸女人奶水| 国产成人亚洲精品青草天美| 91精品国产麻豆| 一区二区不卡在线播放 | 欧美一二区视频| 夜夜嗨av一区二区三区中文字幕 | 日韩欧美在线观看一区二区三区| 亚洲丝袜美腿综合| 国产盗摄精品一区二区三区在线| 在线播放/欧美激情| 亚洲日本中文字幕区| 国产福利一区二区| 成人精品视频一区二区三区尤物| 日韩欧美国产一区在线观看| 亚洲成人资源在线| 色悠久久久久综合欧美99| 国产精品妹子av| 国产成人午夜精品5599| 精品国产人成亚洲区| 日本欧美在线观看| 日本不卡一区二区三区| 日韩在线一区二区| 欧美日韩黄色影视| 一区二区三区在线视频观看58 | 亚洲精品免费一二三区| 福利一区二区在线观看| 久久久噜噜噜久久中文字幕色伊伊| 免费看欧美美女黄的网站| 欧美高清激情brazzers| 午夜视黄欧洲亚洲| 欧美伦理电影网| 日韩不卡在线观看日韩不卡视频| 精品视频在线看| 午夜久久久久久| 日韩一区二区三区视频在线| 男人的天堂久久精品| 日韩欧美亚洲另类制服综合在线| 久久精子c满五个校花| 国产福利91精品一区二区三区| 国产无遮挡一区二区三区毛片日本| 国产综合色视频| 欧美高清在线一区| 91视频国产资源| 亚洲韩国精品一区| 5566中文字幕一区二区电影 | 亚洲国产精品高清| 蜜乳av一区二区三区| 久久综合久久鬼色中文字| 国产不卡在线视频| 国产精品入口麻豆原神| voyeur盗摄精品| 亚洲国产成人精品视频| 欧美放荡的少妇| 精品伊人久久久久7777人| 国产亚洲制服色| 91在线观看污| 日韩成人午夜电影| 久久久久久久综合日本| 91女人视频在线观看| 亚洲福利国产精品| 精品久久久久久久久久久久包黑料| 色综合久久久久综合体| 精品久久久久一区二区国产| 粉嫩一区二区三区在线看| ...av二区三区久久精品| 欧美久久婷婷综合色| 亚洲三级在线看| 91精品国产综合久久婷婷香蕉| 精品一区二区三区在线观看国产 | 一区二区激情小说| 欧美一区二区在线看| 国产成人啪免费观看软件| 亚洲狠狠丁香婷婷综合久久久| 91精品欧美福利在线观看| 欧美视频中文一区二区三区在线观看| 毛片一区二区三区| 亚洲人成电影网站色mp4| 欧美精品久久99| 成人在线综合网| 日本麻豆一区二区三区视频| 中文字幕一区二区三区在线播放| 在线播放亚洲一区| hitomi一区二区三区精品| 老司机免费视频一区二区| 亚洲精选视频在线| 国产亚洲一区二区三区在线观看| 欧美日韩一区成人| 99久久婷婷国产综合精品电影| 美女免费视频一区二区| 一区二区在线看| 中文字幕免费在线观看视频一区| 91精品久久久久久蜜臀| 色综合久久综合中文综合网| 国产在线精品一区二区不卡了| 亚洲成人你懂的| 91精品国产乱码久久蜜臀| 92国产精品观看| 国产剧情av麻豆香蕉精品| 日本免费新一区视频| 一区二区三区精品视频| 国产精品久久久久永久免费观看| 日韩视频一区在线观看| ...av二区三区久久精品| 黄色日韩网站视频| 秋霞午夜av一区二区三区| 亚洲第四色夜色|