Py之pygame:有趣好玩—利用pygame库实现鱼儿自动实时目标跟踪(附完整代码)
生活随笔
收集整理的這篇文章主要介紹了
Py之pygame:有趣好玩—利用pygame库实现鱼儿自动实时目标跟踪(附完整代码)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
Py之pygame:有趣好玩—利用pygame庫實現(xiàn)魚兒自動實時目標(biāo)跟蹤(附完整代碼)
?
?
目錄
輸出結(jié)果
實現(xiàn)代碼
?
?
輸出結(jié)果
?
實現(xiàn)代碼
#Py之pygame:利用pygame庫實現(xiàn)魚兒自動實時目標(biāo)跟蹤import pygame,sys from math import * pygame.init() font1=pygame.font.SysFont('microsoftyaheimicrosoftyaheiui',23) textc=font1.render('.',True,(250,0,0)) screen=pygame.display.set_mode((800,700),0,32) missile=pygame.image.load('F:/File_Python/Resources/fish02.png').convert_alpha() height=missile.get_height() width=missile.get_width() pygame.mouse.set_visible(0) x1,y1=100,600 #魚兒初始位置 velocity=800 #魚兒速度 time=1/1000 clock=pygame.time.Clock() A=() B=() C=() while True:for event in pygame.event.get():if event.type==pygame.QUIT:sys.exit()clock.tick(300)x,y=pygame.mouse.get_pos() #獲取鼠標(biāo)位置,鼠標(biāo)就是魚兒游過去的目標(biāo)distance=sqrt(pow(x1-x,2)+pow(y1-y,2)) section=velocity*time sina=(y1-y)/distancecosa=(x-x1)/distanceangle=atan2(y-y1,x-x1) fangle=degrees(angle) x1,y1=(x1+section*cosa,y1-section*sina)missiled=pygame.transform.rotate(missile,-(fangle))if 0<=-fangle<=90:A=(width*cosa+x1-width,y1-height/2)B=(A[0]+height*sina,A[1]+height*cosa)if 90<-fangle<=180:A = (x1 - width, y1 - height/2+height*(-cosa))B = (x1 - width+height*sina, y1 - height/2)if -90<=-fangle<0:A = (x1 - width+missiled.get_width(), y1 - height/2+missiled.get_height()-height*cosa)B = (A[0]+height*sina, y1 - height/2+missiled.get_height())if -180<-fangle<-90:A = (x1-width-height*sina, y1 - height/2+missiled.get_height())B = (x1 - width,A[1]+height*cosa )C = ((A[0] + B[0]) / 2, (A[1] + B[1]) / 2)screen.fill((0,0,0))screen.blit(missiled, (x1-width+(x1-C[0]),y1-height/2+(y1-C[1])))screen.blit(textc, (x,y)) pygame.display.update()?
擴展思路:比如做個無人機實時定點,抓取目標(biāo)……
參考文章:
一個簡單的導(dǎo)彈自動追蹤以及實時圖片旋轉(zhuǎn)算法
總結(jié)
以上是生活随笔為你收集整理的Py之pygame:有趣好玩—利用pygame库实现鱼儿自动实时目标跟踪(附完整代码)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Py之pygame:Python的pyg
- 下一篇: Internet:从区块链的底层技术思考