国产美女主播视频一区_国产精品蜜臀在线观看_亚洲成人动漫一区_亚洲视屏在线播放

首頁 > 保險

看熱訊:用Python寫了一個「擁抱梅西」的小游戲

來源:程序員客棧 時間:2023-06-23 03:29:04

入門教程、案例源碼、學習資料、讀者群

請訪問:?python666.cn

大家好,歡迎來到 Crossin的編程教室 !


(資料圖片僅供參考)

最近有個小伙兒因為在比賽中沖進場地擁抱梅西而出名了。

這種行為當然不可取,他也為此付出了代價。但要說我沒有一丁點羨慕和佩服那是不可能的。

于是,我也尬蹭一下這個熱點,用Python寫了一個「擁抱梅西」的小游戲。

游戲效果是這樣的:

游戲規則很簡單:

不要被攔截的工作人員追上

抱到梅西(接觸一定時長)

定時會增加攔截的工作人員

可以反復擁抱

被追上后游戲結束,顯示堅持的時間和擁抱的次數

代碼已上傳,獲取請訪問:python666.cn/c/9

或在號內回復關鍵字:梅西

運行說明

代碼使用了游戲框架 pygame-zero?進行開發。之前我們也有發過基于這個框架的游戲:

羊了個羊,但是Python簡(li)單(pu)版

如果你對于此框架還不熟悉,可以看下這篇介紹:

PONG - 100行代碼寫一個彈球游戲

因此運行代碼前需先安裝模塊:

pip?install?pgzero

用此框架代碼看起來與一般代碼稍有不同,它更像一個配置腳本,其中會出現很多未定義的方法和變量,因此在很多編輯器里會提示有錯,但其實是可以運行的,無需手動增加 import。這也是為什么你會看到我視頻里的代碼截圖有大量的下劃線。

pgzero有兩種方式運行,一種是通過命令行的 pgzrun 命令;另一種是直接在編輯器中運行。參見官方文檔:

https://pygame-zero.readthedocs.io/zh_CN/latest/ide-mode.html

本代碼用的是第二種直接運行的方式(需新版pgzero),可直接在IDE中執行。

有部分讀者反饋此代碼在spyder等一些編輯器中無法運行,類似情況可以嘗試第一種傳統方法,即把最后一行代碼 pgzrun.go() 去掉,然后直接在命令行該目錄下運行:?

pgzrun?iMessi.py

代碼簡介

如果你對代碼的核心邏輯其實比較容易理解。

對于「玩家」來說,就是根據上下左右按鍵,變換位置坐標;

對于「工作人員」來說,就是根據自身和玩家的相對位置算出移動的方向,不斷靠近,如果碰上了就游戲結束

對于「梅西」來說,就是判斷是否與玩家碰上,并記錄碰上的持續時間

判斷是否“碰上”很簡單,就是計算一下兩個坐標的距離是否小于一定值。

至于角色的移動,粗略的做法是,計算出x軸方向和y軸方向上的速度,然后在update函數中,將原坐標位置加上速度值,得到新的坐標位置。

但在我這次的代碼中,為了讓跑動更“絲滑”,沒有選擇直接改變速度,而是根據玩家的按鍵計算出加速度,然后在update函數中,將原速度值加上加速度值,得到新的速度,再用新的速度去計算新的坐標位置。

# 加速self.speedx += self.fx * self.accself.speedy += self.fy * self.acc# 限制最高速度d = (self.speedx**2 + self.speedy**2)**0.5 / self.speed_maxif d >1:self.speedx /= dself.speedy /= d# 更新坐標self.x += self.speedxself.y += self.speedy

有了這樣的設定之后,還有個好處就是可以增加游戲的可玩性,比如你可以設定一種最高速度比玩家快,但是加速度比較小的「工作人員」,玩家就需要通過不停地變換方向來擺脫。

代碼中另一個比較復雜的地方是“轉向”的細節處理。同樣為了更加絲滑,我沒有選擇直接根據計算出的方向來改變角色貼圖方向,而是將計算出的方向作為“目標方向”,然后根據角色當前實際方向與目標方向的偏差,決定是向順時針還是逆時針方向旋轉,直到兩個方向小于一定閾值。

# 跑動方向if keyboard.left:self.fx = -1elif keyboard.right:self.fx = 1else:self.fx = 0if keyboard.up:self.fy = -1elif keyboard.down:self.fy = 1else:self.fy = 0# 計算目標方向角度directs = ((135, 180, -135), (90, None, -90), (45, 0, -45))direct = directs[self.fx + 1][self.fy + 1]if direct is None:self.angle_dest = self.angleelse:self.angle_dest = direct        # 貼圖旋轉if abs(self.angle - self.angle_dest) < 5 or abs(self.angle - self.angle_dest) >355:self.angle = self.angle_destelse:if (0 < self.angle - self.angle_dest < 180) or (self.angle - self.angle_dest < -180):self.angle -= 500 * dtelse:self.angle?+=?500?*?dt

這段會牽扯一點初中幾何的知識,想要理清的話建議在紙上畫一畫。

最后,是關于這個游戲的一個小視頻,給大家圖一樂:

歡迎大家關注+三連~

代碼已上傳,獲取請訪問:python666.cn/c/9

或在號內回復關鍵字:梅西

Crossin的新書《碼上行動:零基礎學會PYTHON編程(CHATGPT版)》已經上市了。

本書力求做到淺顯易懂,讓完全沒有編程經驗的零基礎“小白”也能學會Python。內容從環境搭建這種最基礎的步驟開始講起,逐漸深入到常見的實際應用當中。在講解知識點的同時配有相應的代碼示例,讓讀者可以邊學邊練加深理解。書中還創新地使用?ChatGPT?作為編程學習的輔助,帶領讀者探索AI時代下學習編程的新模式。

公眾號的讀者朋友們購買后可在后臺聯系我,加入讀者交流群,Crossin會為你開啟陪讀模式,解答你在閱讀本書時的一切疑問。

感謝轉發和點贊的各位~

_往期文章推薦_

英語不好能不能學編程?如需了解付費精品課程及教學答疑服務請在Crossin的編程教室內回復: 666

相關稿件

看熱訊:用Python寫了一個「擁抱梅西」的小游戲

盛夏迎端午(組圖)

偷偷盤點了 175 家秋招必投公司名單-焦點訊息

通化東寶: 公司生產經營情況良好,不存在重大經營風險

全球聚焦:潤禾材料參加第十九屆上海國際膠帶與薄膜展獲圓滿成功

6月21日漳州三安鹽酸價格暫穩 庫存較少

【全球新要聞】宜昌38個重點項目集中開工,總投資213億元

全球球精選!中大力德今日跌3.69% 四機構凈賣出2.62億元

湖南人 安全使用燃氣這些要注意!

夏至已至丨遇見楚雄熱情似火的盛夏風情-世界熱點

世界視點!平價好物分享!愛快Q3000企業級大戶型路由器實測:不到300真實在

小米智造入股炯熠電子

藥娃小測 | 藥品有效期不等于使用期?_今日視點

三大應用場景系統解決方案直指安全!華為重新定義光儲產業

環球熱訊:洪恩公布Q1業績:營收2.65億,月活2109萬

南非對進口鋼鐵螺紋緊固件作出第一次保障措施日落復審終裁-天天短訊

中國公民遇襲,我駐新使領館向新方表達關切

動態焦點:環境污染侵權解釋有哪些內容-全球頭條

全球熱消息:現在向銀行貸款15萬利息是多少錢 視訊

當前熱門:連白頭翁都“陶醉”!這個市中心老牌公園正“荷”你相約 環球微頭條

聚焦:最新的降息 能拉動杭州樓市嗎?準備買房的吳女士:先搖中才是要緊事

環球微動態丨重要突破!鹽城大豐發現一處鹽業遺址

當前播報:別把國際組織當作制衡中國的工具

世界今熱點:“橙”風破浪鑄精兵!——紹興市消防救援支隊水域救援培訓圓滿落幕!

當前焦點!工信部:制定實施“5G+工業互聯網”512升級版工作方案

第三屆全球饒商大會舉行 現場簽約項目總額超300億元

每日快訊!股市退市如火如荼,“劣質”基金也須加速出清

動態:全國鐵路7月1日起實行新的列車運行圖

當前報道:讀者來信|28車建筑垃圾倒入水塘受罰

寧夏銀川燒烤店爆炸事故已造成31人死亡


主站蜘蛛池模板: 免费久久99精品国产自| 国产精品第一页在线| 日本在线观看天堂男亚洲| 久久精品99无色码中文字幕| 国产精品成人av在线| 日韩中文字幕第一页| 国产精品二区在线| 久久青草精品视频免费观看| 色综合五月天导航| 一区中文字幕在线观看| 国产精品久久久久7777| 国产欧美精品在线| 久久久久久国产精品久久| 欧美日韩亚洲第一| 视频一区亚洲| 国产尤物91| 日韩视频在线一区| 午夜精品一区二区三区在线播放 | 国产传媒久久久| 国产欧美自拍视频| 国产精品午夜视频| 国产精品一久久香蕉国产线看观看| 久久久久久伊人| 久久久这里只有精品视频| 欧美中文字幕在线观看| 日韩欧美一区二区三区四区五区| 亚洲中文字幕无码av永久| 国产不卡一区二区在线播放| 国产999在线观看| 91成人福利在线| 无码人妻精品一区二区蜜桃百度| 天天干天天操天天干天天操| 亚洲精品成人久久久998| 亚洲欧美日韩精品在线| 91av国产在线| 日韩欧美在线播放视频| 日本在线高清视频一区| 欧美精品手机在线| 久久国产精品亚洲va麻豆| 久久久水蜜桃| 国产美女被下药99|