久久久噜噜噜久久熟女,久久久久久久久,国内精品,精品国产成人亚洲午夜福利,久久天堂av综合合色蜜桃网,好姑娘在线观看完整视频高清

首頁 > 美食

環(huán)球微速訊:用Python寫了一個「擁抱梅西」的小游戲

來源:程序員客棧 時間:2023-06-24 05:31:06

入門教程、案例源碼、學(xué)習(xí)資料、讀者群


(資料圖片僅供參考)

請?jiān)L問:?python666.cn

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

最近有個小伙兒因?yàn)樵诒荣愔袥_進(jìn)場地?fù)肀肺鞫雒恕?/p>

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

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

游戲效果是這樣的:

游戲規(guī)則很簡單:

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

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

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

可以反復(fù)擁抱

被追上后游戲結(jié)束,顯示堅(jiān)持的時間和擁抱的次數(shù)

代碼已上傳,獲取請?jiān)L問:python666.cn/c/9

或在號內(nèi)回復(fù)關(guān)鍵字:梅西

運(yùn)行說明

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

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

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

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

因此運(yùn)行代碼前需先安裝模塊:

pip?install?pgzero

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

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

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

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

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

pgzrun?iMessi.py

代碼簡介

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

對于「玩家」來說,就是根據(jù)上下左右按鍵,變換位置坐標(biāo);

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

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

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

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

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

# 加速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# 更新坐標(biāo)self.x += self.speedxself.y += self.speedy

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

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

# 跑動方向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# 計(jì)算目標(biāo)方向角度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        # 貼圖旋轉(zhuǎn)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

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

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

歡迎大家關(guān)注+三連~

代碼已上傳,獲取請?jiān)L問:python666.cn/c/9

或在號內(nèi)回復(fù)關(guān)鍵字:梅西

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

本書力求做到淺顯易懂,讓完全沒有編程經(jīng)驗(yàn)的零基礎(chǔ)“小白”也能學(xué)會Python。內(nèi)容從環(huán)境搭建這種最基礎(chǔ)的步驟開始講起,逐漸深入到常見的實(shí)際應(yīng)用當(dāng)中。在講解知識點(diǎn)的同時配有相應(yīng)的代碼示例,讓讀者可以邊學(xué)邊練加深理解。書中還創(chuàng)新地使用?ChatGPT?作為編程學(xué)習(xí)的輔助,帶領(lǐng)讀者探索AI時代下學(xué)習(xí)編程的新模式。

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

感謝轉(zhuǎn)發(fā)和點(diǎn)贊的各位~

_往期文章推薦_

英語不好能不能學(xué)編程?如需了解付費(fèi)精品課程及教學(xué)答疑服務(wù)請?jiān)贑rossin的編程教室內(nèi)回復(fù): 666

相關(guān)稿件

環(huán)球微速訊:用Python寫了一個「擁抱梅西」的小游戲

焦點(diǎn)速訊:天龍股份: 公司參股公司武漢飛恩微電子目前處于成長階段,

焦點(diǎn)播報:盛夏迎端午(組圖)

因生產(chǎn)制造、工藝錯誤等原因,賓利、保時捷等品牌發(fā)布召回_今日報

未來18天,天降大財(cái),財(cái)務(wù)收入水漲船高的3大生肖

天天熱門:6月21日西北電石出廠價格暫穩(wěn)

世界視點(diǎn)!未來7天,四大生肖喜鵲喋喋不休,財(cái)富蜂擁而至,正財(cái)發(fā)偏財(cái)旺

前五個月電信業(yè)務(wù)總量保持較快增長

天天快播:從“空手而來”到“滿載而歸” 首屆“仁壽造全國用”端午展銷會開幕

#極氪汽車增資至105億

唐玄宗為何要把年號改為天寶?改了三次都不滿意,是因?yàn)槭裁茨兀?熱文

qqmailplugin為什么在c盤 環(huán)球熱推薦

iNNOCN 28英寸美術(shù)顯示器評測:4K高色域不止生產(chǎn)力,還能打游戲

馬斯克與扎克伯格隔空約架,科技圈大佬相約“鐵籠大戰(zhàn)”

高盛:投資者應(yīng)考慮利用標(biāo)普500指數(shù)的漲勢對沖衰退風(fēng)險

Sandro羽絨服不合格被罰23萬

每日聚焦:中國公民遇襲,我駐新使領(lǐng)館向新方表達(dá)關(guān)切

速讀:養(yǎng)老金調(diào)整2023何時發(fā)放?2023養(yǎng)老金發(fā)放日期、增長比例與特定調(diào)整機(jī)制

全球球精選!夜經(jīng)濟(jì)“造”起來 長三角一起“嗨” ——2023年首屆合肥啤酒龍蝦嘉年華開幕

寧德時代電池有重大缺陷,已被特斯拉暫停供貨?寧德時代:消息不屬實(shí)

越南公安部:美國恐怖組織成員奉命滲透到越南,策劃多樂省警局襲擊!

全球通訊!北京全市排查燃?xì)獍踩?,多區(qū)發(fā)現(xiàn)隱患!詳情——

世界快資訊丨網(wǎng)友用 ChatGPT 白嫖正版 Windows系統(tǒng),馬斯克調(diào)侃:真適合做睡前讀物

全球石油需求結(jié)構(gòu)加速調(diào)整|每日看點(diǎn)

焦點(diǎn)速遞!【陽光評論】情牽山海共發(fā)展,續(xù)寫合作新篇章

125.6%!虹口公共充電樁數(shù)量

海南州“無詐校園”創(chuàng)建活動啟動儀式在貴德舉行 快播報

本市部分路段隨意占道停車現(xiàn)象突出:別圖一時之便 影響交通秩序 當(dāng)前頭條

環(huán)球即時:被判定腦部惡性腫瘤、平均生存期僅14.6個月,如今他在上海迎來4歲重生生日

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

鮫綃_關(guān)于鮫綃簡述

上海密接者最新隔離規(guī)定2022 上海密接者最新隔離規(guī)定 5月-今日播報

qq飛車pc端官網(wǎng) qq飛車vr卡車軟件官網(wǎng)

進(jìn)球網(wǎng):簽托納利體現(xiàn)紐卡是“反向巴黎”,對米蘭則是一場災(zāi)難|獨(dú)家焦點(diǎn)

給4000位老人拍遺照,她記錄了山村的消失