日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

【Python小游戏】当当当当 万众瞩目得《滑雪大冒险》来啦~(附源码)

發布時間:2025/3/21 python 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Python小游戏】当当当当 万众瞩目得《滑雪大冒险》来啦~(附源码) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前文

大家好!我是梨子同學!

希望大家多多支持我!哈哈

為了感謝每一個關注我的小可愛:💓每篇文章的項目源碼都是無償分享滴💓見文末

很多csdn的功能還在研究中,還有小編的文筆不好勿怪,會慢慢進步跟大家一起學習的

小編也一直在學習編程,如果代碼小程序出現錯誤歡迎大家評論區留言哈!

最后——如果文章有幫助到你,記得“關注”、“點贊”、“評論”三連哦~

導語

雪崩來啦!快點跑呀!

故事小背景:(胡編亂造的)

在極地的雪峰上,住著一個年輕的狩獵者,沒有人知道其名字,因為沒人會來這個地方,雪峰上只

有企鵝、雪怪和獵鷹,一如既往的一天,狩獵者還在木屋中熟睡著,可是狩獵者不知道一場危機正

悄悄來臨,危險正逼近,巨大的聲響驚醒了狩獵者,狩獵者朝窗外一看,發現雪崩正快速逼近,雪

崩馬上就要淹沒房屋了,幸運的是,狩獵者被雪沖出了房屋,睡眼朦朧的狩獵者開始了逃避雪崩的

極限滑雪旅程,速度就是生命。

嘿嘿,今天小編來給大家制造一個Python《滑雪大冒險🏂》小游戲!這款小游戲操作特別簡單

啦,游戲開始之后按住方向鍵左右即可滑動不同的方向!好啦 我們正式開始吧👇

正文

冬天到了,我們來一場滑雪大冒險吧👇

效果展示:

?游戲開始——

?撞上樹之后一次減少30分,一顆🚩加10分!

主程序:

import sys import cfg import pygame import random'''滑雪者類''' class SkierClass(pygame.sprite.Sprite):def __init__(self):pygame.sprite.Sprite.__init__(self)# 滑雪者的朝向(-2到2)self.direction = 0self.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]'''改變滑雪者的朝向. 負數為向左,正數為向右,0為向前'''def turn(self, num):self.direction += numself.direction = max(-2, self.direction)self.direction = min(2, self.direction)center = self.rect.centerself.image = pygame.image.load(self.imagepaths[self.direction])self.rect = self.image.get_rect()self.rect.center = centerself.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)'''設置為摔倒狀態'''def setFall(self):self.image = pygame.image.load(cfg.SKIER_IMAGE_PATHS[-1])'''設置為站立狀態'''def setForward(self):self.direction = 0self.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_pathself.image = pygame.image.load(self.img_path)self.location = locationself.rect = self.image.get_rect()self.rect.center = self.locationself.attribute = attributeself.passed = False'''移動'''def move(self, num):self.rect.centery = self.location[1] - num'''創建障礙物''' 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:returnpygame.display.update()'''顯示分數''' 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()# --創建障礙物obstacles0 = createObstacles(20, 29)obstacles1 = createObstacles(10, 19)obstaclesflag = 0obstacles = AddObstacles(obstacles0, obstacles1)# 游戲clockclock = pygame.time.Clock()# 記錄滑雪的距離distance = 0# 記錄當前的分數score = 0# 記錄當前的速度speed = [0, 6]# 游戲主循環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)# --更新當前游戲幀的數據skier.move()distance += speed[1]if distance >= 640 and obstaclesflag == 0:obstaclesflag = 1obstacles0 = createObstacles(20, 29)obstacles = AddObstacles(obstacles0, obstacles1)if distance >= 1280 and obstaclesflag == 1:obstaclesflag = 0distance -= 1280for obstacle in obstacles0:obstacle.location[1] = obstacle.location[1] - 1280obstacles1 = 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 -= 50skier.setFall()updateFrame(screen, obstacles, skier, score)pygame.time.delay(1000)skier.setForward()speed = [0, 6]hitted_obstacles[0].passed = Trueelif hitted_obstacles[0].attribute == "flag" and not hitted_obstacles[0].passed:score += 10obstacles.remove(hitted_obstacles[0])# --更新屏幕updateFrame(screen, obstacles, skier, score)clock.tick(cfg.FPS)'''run''' if __name__ == '__main__':main()

配置文件代碼:

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')

總結

你們的支持是我最大的動力!!記得三連哦~mua?歡迎大家閱讀往期的文章哦~

關注小編獲取更多精彩內容!

?制作不易,記得一鍵三連哦!!?如需打包好的源碼+素材免費分享滴!傳送門

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的【Python小游戏】当当当当 万众瞩目得《滑雪大冒险》来啦~(附源码)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 色综合中文 | 欧美激情精品久久 | 久久久成人精品一区二区三区 | 久久久久亚洲AV成人 | 国产精品成人aaaa在线 | 久久久久久久久99精品 | 中国亚洲老头同性gay男男… | 久久影院国产 | 99热这里只有精 | 狠狠狠狠狠狠狠干 | 香蕉在线影院 | 天堂在线精品 | 中文字幕久久网 | 久久综合国产精品 | 一色道久久88加勒比一 | 夜夜爽av | 日本不卡一区二区三区在线观看 | 亚洲v| 黄色三级生活片 | 亚洲性网| 日本伦理一区二区 | 好吊妞在线| 国产大片一区二区三区 | 欧美三日本三级少妇三99 | 办公室荡乳欲伦交换bd电影 | 欧美日韩精品网站 | 狠狠婷婷| 国产吞精囗交久久久 | 麻豆 美女 丝袜 人妻 中文 | 黄色日韩视频 | 亚洲欧美一区二区视频 | 国产三区视频 | 激情免费视频 | 亚洲成人一区在线观看 | 打开免费观看视频在线播放 | 欧美一区在线看 | 91免费看国产 | 久久九九国产视频 | 葵司一区二区 | 亚洲成人系列 | 99视频在线免费观看 | 亚洲一级免费视频 | 在线观看中文字幕码 | 日本欧美日韩 | 国产18页 | 欧美亚洲视频一区 | 亚洲精品激情 | 欧美一级乱黄 | 亚洲精品欧美精品 | 精品亚洲国产成av人片传媒 | 婷婷久久久久久 | 亚洲综合日韩在线 | 波多野吉衣av | 婷婷久久五月 | 奇米一区二区三区 | 日韩亚州| 色网站免费 | 成人一区二区电影 | 欧美无马 | 久久久精品999| 精品人妻无码一区二区 | 91漂亮少妇露脸在线播放 | 亚洲啪啪网址 | 国产妇女视频 | 国产精品国产精品国产专区 | 亚洲av成人无码一区二区三区在线观看 | 好吊妞在线观看 | 国产嫩草影院久久久久 | 热播之家| chinese麻豆新拍video| 一起草国产 | 性福网站| 亚洲tv在线 | 女十八毛片 | 免费三级在线 | 日韩精品国产一区二区 | 欧美肥老妇视频九色 | 超碰在线进入 | 理论片第一页 | 日韩精品在线观看一区二区 | 亚洲欧美另类一区 | 国产一级二级三级精品 | 亚洲无线看 | 女人和拘做爰正片视频 | 一区二区三区四区不卡 | 国产一区二区久久 | 成人丁香婷婷 | 一本大道久久久久精品嫩草 | 日本视频中文字幕 | 在线观看网址你懂的 | 综合色播 | 伊人久艹 | 一区二区三区在线观 | 羞羞涩涩网站 | 男人撒尿视频xvideos | 日韩天天| 亚洲三级视频在线观看 | 偷拍精品一区二区三区 | 天天插天天射天天干 |