色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

python基于pygame實(shí)現(xiàn)飛機(jī)大作戰(zhàn)小游戲

瀏覽:4日期:2022-07-05 08:00:45

基于pygame的飛機(jī)大作戰(zhàn)小游戲,適合新手,不能直接運(yùn)行,只能在命令行進(jìn)入當(dāng)前游戲目錄,輸入python game.py才能夠運(yùn)行,尚不知道是什么原因。

游戲截圖如下,我們用黃色的圓圈代表敵機(jī):

python基于pygame實(shí)現(xiàn)飛機(jī)大作戰(zhàn)小游戲

代碼如下

import pygame,sys,time,random,mathdef init(): pygame.init() size = width, height =600,600 screen =pygame.display.set_mode(size) plx=270 ply=528 beijing =pygame.image.load('beijing.jpg') main_role =pygame.image.load('main_role.jpg') font=pygame.font.SysFont('arial',60) return screen,[plx,ply],main_role,beijing,font def mainloop(screen,pl,main_role,beijing,shots,ms,ecs): #每刷新一次,調(diào)用一次 for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() elif event.type ==pygame.KEYDOWN: if event.key ==pygame.K_LEFT: ms=[0,pl] #move(0,pl) elif event.key ==pygame.K_RIGHT: ms=[1,pl] #move(1,pl) elif event.key == pygame.K_UP: ms=[2,pl] #move(2,pl) elif event.key ==pygame.K_DOWN: ms=[3,pl] #move(3,pl) elif event.key==pygame.K_SPACE: ecope(pl,ecs) elif event.type ==pygame.KEYUP: ms=[-1,-1] screen.blit(beijing,(0,0)) for i in range(len(shots)): pygame.draw.circle(screen,(255,255,0),shots[i],25,5) for i in range(len(ecs)): pygame.draw.circle(screen,(255,0,255),ecs[i],5,5) screen.blit(main_role,(pl[0],pl[1])) return msdef ecope(pl,ecs): ecs.append([pl[0]+30,pl[1]])def move(key,pl): if key==0:pl[0]=pl[0]-10 elif key==1:pl[0]=pl[0]+10 elif key==2:pl[1]=pl[1]-10 elif key==3:pl[1]=pl[1]+10 if pl[0]<0:pl[0]=0 if pl[0]>540:pl[0]=540 if pl[1]<0:pl[1]=0 if pl[1]>528:pl[1]=528 def update_shot(shots,m,ms,ecs): if m==60: x=random.randint(0,59)*10 y=0 shots.append([x,y]) t=[] t2=[] if m%2==0: for i in range(len(ecs)): ecs[i][1]=ecs[i][1]-6 if ecs[i][1]<0: t2.append(i) for i in range(len(t2)): ecs.pop(t2[i]) for i in range(len(shots)): shots[i][1]=shots[i][1]+5 if shots[i][1]>600: t.append(i) for i in range(len(t)): shots.pop(t[i]) if ms!=[-1,-1]: move(ms[0],ms[1]) def block_detect(pl,shots): #pl[x,y] ’’’ shots [ [sx0,sy0], [sx1,sy1], ....... ] ’’’ for i in range(len(shots)): nx,ny=shots[i][0],shots[i][1] x,y=pl[0]+30,pl[1]+36 s=math.sqrt((nx-x)**2+(ny-y)**2) if s<55: return True return Falsedef attack_detect(ecs,shots,score): h=[] h1=[] h2=[] for i in range(len(ecs)): for j in range(len(shots)): lx,ly=ecs[i][0],ecs[i][1] cx,cy=shots[j][0],shots[j][1] d=math.sqrt((lx-cx)**2+(ly-cy)**2) if d<30: h.append([i,j]) for i in range(len(h)): h1.append(h[i][0]) h2.append(h[i][1]) h1=list(set(h1)) h2=list(set(h2)) for i in range(len(h1)): ecs.pop(h1[i]) for i in range(len(h2)): shots.pop(h2[i]) return score+len(h) if __name__=='__main__': screen,pl,main_role,beijing,font=init() shots=[] ecs=[] score=0 temp=time.time() m=0 ms=[-1,-1] while True : text=font.render(str(score),True,(255,255,255)) rect=text.get_rect() rect.center=(250,30) if (time.time()-temp)>0.03: m=m+1 temp=time.time() update_shot(shots,m,ms,ecs) if m==60: m=0 ms=mainloop(screen,pl,main_role,beijing,shots,ms,ecs) screen.blit(text,rect) score=attack_detect(ecs,shots,score) pygame.display.update() if block_detect(pl,shots): pygame.quit()

游戲素材

python基于pygame實(shí)現(xiàn)飛機(jī)大作戰(zhàn)小游戲

python基于pygame實(shí)現(xiàn)飛機(jī)大作戰(zhàn)小游戲

更多有趣的python游戲請(qǐng)點(diǎn)擊專題: 《python小游戲》學(xué)習(xí)

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

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 国产一进一出视频网站 | 中国女人毛片 | 久草免费资源在线 | 成人高清视频在线观看 | 久久国产成人福利播放 | 国产精品九九九久久九九 | 91成人爽a毛片一区二区 | 国产不卡精品一区二区三区 | 久久精品a一国产成人免费网站 | 欧美大片一区二区三区 | 日本欧美一级二级三级不卡 | 97国内免费久久久久久久久久 | 亚洲a成人 | 欧美在线一区二区 | 欧美性色黄大片一级毛片视频 | 久久的精品99精品66 | 欧美黑人巨大最猛性xxxxx | 欧美成人se01短视频在线看 | 国产精品莉莉欧美自在线线 | 欧美一级免费在线观看 | 国产精品1区 2区 3区 | 日本久久久久久久久久 | 亚洲精品在线播放视频 | 婷婷国产成人久久精品激情 | 欧美日韩一区二区三区视频在线观看 | 成人合成mv福利视频网站 | 黄网站www| 一级毛片免费观看不卡的 | 性感美女视频黄.免费网站 性高湖久久久久久久久 | 国产欧美一区二区日本加勒比 | 欧美一区二区三区gg高清影视 | 中文字幕一区在线 | 欧美激情国产一区在线不卡 | 午夜性刺激免费视频观看不卡专区 | 美女视频黄色网址 | 国产一区二区三区美女在线观看 | 欧美做暖小视频xo免费 | 亚洲三级在线看 | 成人一级毛片 | 国产成人综合亚洲一区 | 免费在线看a |