国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

Python寫捕魚達人的游戲?qū)崿F(xiàn)

瀏覽:112日期:2022-07-31 16:00:14

當今最火的莫過于用Python寫出捕魚達人的效果了。啥都不用說,亮代碼~~~

# coding:utf-8# 導入模塊import pygame,sys,time,randomfrom pygame.locals import *# 初始化pygame環(huán)境pygame.init()# 創(chuàng)建一個長寬分別為800/480的窗口canvas = pygame.display.set_mode((800,480))canvas.fill((255,255,255))# 設置窗口標題pygame.display.set_caption(’捕魚達人’)# 加載圖片bg = pygame.image.load('./images/bg.jpg')fish1 = pygame.image.load('./images/fish1_0.png')fish2 = pygame.image.load('./images/fish2_0.png')fish3 = pygame.image.load('./images/fish3_0.png')fish4 = pygame.image.load('./images/fish4_0.png')fish5 = pygame.image.load('./images/fish5_0.png')fish6 = pygame.image.load('./images/fish6_0.png')fish7 = pygame.image.load('./images/fish7_0.png')fish8 = pygame.image.load('./images/fish8_0.png')fish9 = pygame.image.load('./images/fish9_0.png')fish10 = pygame.image.load('./images/fish10_0.png')fish11 = pygame.image.load('./images/fish11_0.png')net = pygame.image.load('./images/net.png')gameover = pygame.image.load('./images/gameover.jpg')# 定義事件監(jiān)聽函數(shù)def handleEvent(): for event in pygame.event.get(): if event.type == QUIT: pygame.quit() sys.exit() # 添加鼠標移動事件,讓鼠標控制網(wǎng)的移動 if event.type == MOUSEMOTION: Game.net.x = event.pos[0] - Game.net.width/2 Game.net.y = event.pos[1] - Game.net.height/2# 定義時間間隔判斷函數(shù)def isActionTime(lastTime,interval): if lastTime == 0: return True currentTime = time.time() return currentTime - lastTime >= interval# 定義魚類class Fish(): def __init__(self,width,height,y,img): self.width = width self.height = height self.x = 800 - self.width self.y = y self.img = img def paint(self): canvas.blit(self.img,(self.x,self.y)) def step(self): self.x -= 10# 定義網(wǎng)類class Net(): def __init__(self,x,y): self.x = x self.y = y self.width = 160 self.height = 160 self.img = net def paint(self): canvas.blit(self.img,(self.x,self.y)) # 定義越界函數(shù) def outOfBounds(self): if self.x <= 0: self.x = 0 elif self.x >= 800 - self.width: self.x = 800 - self.width elif self.y <= 0: self.y = 0 elif self.y >= 480 - self.height: self.y = 480 - self.height # 定義碰撞函數(shù) def hit(self,c): return c.x > self.x - c.width and c.x < self.x + self.width and c.y > self.y - c.height and c.y < self.y + self.height# 定義存儲游戲數(shù)據(jù)的類class Game(): # 游戲狀態(tài) state = ’RUNNING’ # 魚的列表 fish = [] # 網(wǎng)的對象 net = Net(100,100) # 分數(shù) score = 0 # 時間 t = 60 n = 1 # 上一次時間 lastTime = 0 # 時間間隔 interval = 0.5 # 所有魚的寬高 fish_pos = [[22,13],[50,48],[55,55],[73,73],[104,80],[60,60],[93,93],[94,81],[99,103],[180,140],[320,206],[100,96]]# 定義產(chǎn)生魚的函數(shù)def conEnter(): if not isActionTime(Game.lastTime,Game.interval): return Game.lastTime = time.time() r = random.randint(1,11) if Game.t <= 60: Game.fish.append(Fish(Game.fish_pos[r][0],Game.fish_pos[r][1],random.randint(0,480 - Game.fish_pos[r][1]),pygame.image.load('./images/fish'+str(r)+'_0.png'))) elif Game.t <= 30: Game.fish.append(Fish(Game.fish_pos[r][0],Game.fish_pos[r][1],random.randint(0,480 - Game.fish_pos[r][1]),pygame.image.load('./images/fish'+str(r)+'_0.png'))) Game.fish.append(Fish(Game.fish_pos[r][0],Game.fish_pos[r][1],random.randint(0,480 - Game.fish_pos[r][1]),pygame.image.load('./images/fish'+str(r)+'_0.png'))) elif Game.t <= 10: Game.fish.append(Fish(Game.fish_pos[r][0],Game.fish_pos[r][1],random.randint(0,480 - Game.fish_pos[r][1]),pygame.image.load('./images/fish'+str(r)+'_0.png'))) Game.fish.append(Fish(Game.fish_pos[r][0],Game.fish_pos[r][1],random.randint(0,480 - Game.fish_pos[r][1]),pygame.image.load('./images/fish'+str(r)+'_0.png'))) Game.fish.append(Fish(Game.fish_pos[r][0],Game.fish_pos[r][1],random.randint(0,480 - Game.fish_pos[r][1]),pygame.image.load('./images/fish'+str(r)+'_0.png')))# 定義畫組件函數(shù)def conPaint(): canvas.blit(bg,(0,0)) Game.net.paint() showScore() showTime() for fish in Game.fish: fish.paint()# 定義組件移動函數(shù)def conStep(): Game.net.outOfBounds() for fish in Game.fish: fish.step()# 定義碰撞檢測函數(shù)def checkHit(): for fish in Game.fish: if Game.net.hit(fish) and len(Game.fish) != 0: Game.fish.remove(fish) Game.score += 1# 定義繪制分數(shù)函數(shù)def showScore(): TextFont = pygame.font.SysFont(’SimHei’,40) TextScore = TextFont.render(’得分:’+str(Game.score),True,(255,255,255)) canvas.blit(TextScore,(20,20))# 定義繪制時間函數(shù)def showTime(): TextFont = pygame.font.SysFont(’SimHei’,40) TextScore = TextFont.render(’剩余時間:’+str(Game.t),True,(255,255,255)) canvas.blit(TextScore,(550,20)) if Game.n % 50 == 1: Game.t -= 1 Game.n += 1 if Game.t == 0: Game.state = ’END’# 定義主控制函數(shù)def control(): if Game.state == ’RUNNING’: conEnter() conPaint() conStep() checkHit() elif Game.state == ’END’: canvas.blit(gameover,(0,0)) TextFont = pygame.font.SysFont(’SimHei’,40) TextScore = TextFont.render(’最終得分:’+str(Game.score),True,(0,0,0)) canvas.blit(TextScore,(50,50))while True: # 調(diào)用主控制函數(shù) control() # 更新屏幕內(nèi)容 pygame.display.update() # 延遲10毫秒 pygame.time.delay(10) # 監(jiān)聽事件 handleEvent()

這段代碼用了一些Python的基礎知識,包括事件,定義函數(shù),取余,循環(huán),判斷,定義類,創(chuàng)建對象等。這些沒什么好說的。導入的幾個庫也是很常用的庫,基本算是程序員必備。把代碼擺這里主要是為了讓大家借鑒。要是寫不出來真是沒臉繼續(xù)寫Python了…

大家可以利用我的代碼,在做事件監(jiān)聽等函數(shù)時應該會方便一些。

圖片我發(fā)在下面了哈,需要的自取。

源碼下載

到此這篇關于Python寫捕魚達人的游戲?qū)崿F(xiàn)的文章就介紹到這了,更多相關Python 捕魚達人內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持好吧啦網(wǎng)!

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 日本aaaa精品免费视频 | 欧美 日韩 国产在线 | 天天爱天天做天天爽天天躁 | 免费看一毛一级毛片视频 | 精品欧美小视频在线观看 | 91精品国产美女福到在线不卡 | 国产欧美亚洲精品 | 精品一区二区三区中文 | avtt亚洲一区中文字幕 | 国产91网址 | 日本a级三级三级三级久久 日本a级特黄三级三级三级 | 亚洲黄色在线视频 | 99精品国产成人一区二区 | 欧美 自拍 | 久久久久久久岛国免费观看 | 三级毛片在线播放 | 中文字幕精品一区二区绿巨人 | 波多野结衣在线观看高清免费资源 | 日韩欧美亚州 | 久久老司机波多野结衣 | 婷婷国产成人久久精品激情 | 久久久久久久一线毛片 | 日本一级全黄大片 | 国产精品久久久久久爽爽爽 | 国产精品18久久久久久久久久 | 国产亚洲福利精品一区二区 | 在线免费国产 | 日本二区免费一片黄2019 | 91久久香蕉国产线看 | 成人中文字幕在线观看 | 免费一级特黄3大片视频 | 国产精品一级毛片不收费 | 欧美日韩99| 欧美69xx| 日本久草网 | 久草视频在线看 | 亚洲精品网址 | 久久久久久久久久久久福利 | 欧美成人午夜片一一在线观看 | a黄毛片| 亚洲一区二区久久 |