Pygame實現射擊鴨子游戲3-2

2 鴨子類Target的創建

2.1 ?__init__()函數

Target類的__init__()函數代碼如圖5所示。

圖5 __init__()函數代碼

其中,第18行將Target類聲明為pygame.sprite.Sprite類的子類;第19行代碼中,__init__()函數的img_path參數表示鴨子圖片的文件名,x和y表示鴨子起始位置的橫縱坐標;第20行代碼調用pygame.sprite.Sprite類的__init__()進行初始化操作;第21行代碼導入鴨子圖片;第22行代碼獲取鴨子圖片的位置和大小;第23行代碼根據指定的位置設置鴨子的起始位置。

2.2 update()函數

Target類的update()函數代碼如圖6所示。

圖6 update()函數代碼

Target類的update()函數的作用是讓鴨子游動起來。鴨子是從屏幕左邊向右邊水平移動的,所以只需要改變其橫坐標即可,縱坐標可以不變。第25行代碼通過rect.move_ip()方法改變鴨子的橫坐標,random.randint(0,10)表示鴨子的速度是一個0-10之間的隨機數;第26-27行代碼判斷鴨子是否已經游到屏幕的右側邊緣,如果已經游到邊緣,則將其左上角的橫坐標rect.left設置為0,表示將其位置恢復到屏幕左側邊緣。

3 實例化瞄準鏡類及創建相應的精靈組

實例化瞄準鏡類及創建相應的精靈組的代碼如圖7所示。

圖7 實例化瞄準鏡類及創建相應的精靈組的代碼

其中,第42行代碼實例化了瞄準鏡類Crosshair,其實例名為crosshair,“crosshair_blue_small.png”是瞄準鏡的文件名;第43行代碼通過pygame.sprite.Group()創建了精靈組crosshair_group;第44行代碼將實例crosshair加入到精靈組crosshair_group中。

4 實例化鴨子類及創建相應的精靈組

實例化鴨子類及創建相應的精靈組的代碼如圖8所示。

圖8 實例化鴨子類及創建相應的精靈組的代碼

其中,第46行代碼創建用于保存鴨子精靈的精靈組target_group;第47行使用for循環創建TARGET_NUM個鴨子;第48-49行代碼隨機設置鴨子的橫縱坐標;第50行代碼實例化鴨子類,“duck_yellow.png”是鴨子圖片的文件名;第51行代碼將創建的鴨子實例精靈加入到精靈組中。

5 導入背景

導入背景的代碼如圖9所示。

圖9 導入背景的代碼

其中,第39行代碼通過pygame.image.load()導入背景圖片;第40行代碼將背景圖片設置為屏幕大小,pygame.transform.scale()函數的作用是設置圖片大小,bg_img表示要設置的圖片,(SCREEN_WIDTH, SCREEN_HEIGHT)表示要設置的大小,即為屏幕的寬度和高度。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/71916.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/71916.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/71916.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

利用Java爬蟲獲取衣聯網商品詳情:實戰指南

在電商領域,獲取商品詳情是數據分析和市場研究的重要環節。衣聯網作為知名的電商平臺,提供了豐富的服裝商品資源。本文將詳細介紹如何利用Java編寫爬蟲程序,通過商品ID獲取衣聯網商品詳情。 一、準備工作 (一)環境搭…

五、OpenGL中Shader與C++數據傳輸

文章目錄 一、概述二、Shader 代碼文件的基本格式三、Shader的向量語法介紹四、Shader之間的數據傳輸五、Shader與C的數據傳輸uniform六、完整示例 一、概述 在 OpenGL 中,Shader(著色器)使用 GLSL(OpenGL Shading Language&…

【3DMAX插件】3DMAX建筑大師插件MasterBuilder使用方法

3DMAX建筑大師插件是一款專為3DMAX設計的程序化(參數化)建筑建模工具,其最大特點是能夠一鍵生成建筑模型,極大地提升了工作效率。該插件配備了多種結構控制選項,涵蓋陽臺、門窗、欄桿、樓頂水塔等附屬建筑元素&#xf…

隱私保護在 Facebook 用戶身份驗證中的應用

在這個數字化的時代,個人隱私保護成為了公眾關注的焦點。社交媒體巨頭 Facebook 作為全球最大的社交平臺之一,擁有數十億用戶,其在用戶身份驗證過程中對隱私保護的重視程度直接影響著用戶的安全感和信任度。本文將探討 Facebook 在用戶身份驗…

Swift Package Manager (SPM) 創建并集成本地庫

在macOS 項目中,使用 Swift Package Manager (SPM) 創建并集成本地庫的完整步驟。 創建一個macos應用程序,選擇 swift、oc、swiftui都可以。 創建好應用之后,開始創建SPM本地庫。 打開終端app,進入項目根目錄,逐次輸…

滲透測試之利用sql拿shell(附完整流程+防御方案)【下】

導讀: 時刻保持謙遜,始終保持學習,探尋事物的本質,不要把事情復雜化 話不多說,書接上回 三、利用日志getshell 利用條件: 擁有網站的寫入權限知道網站的絕對路徑數據庫日志開啟 實際操作: (1)查看數據庫日志是否開啟以及路徑 show variables like %general%; (2…

LeetCode 熱題 100_每日溫度(72_739_中等_C++)(棧)(暴力破解;棧(從左到右);棧(從右到左))

LeetCode 熱題 100_每日溫度(72_739) 題目描述:輸入輸出樣例:題解:解題思路:思路一(暴力破解法(雙重循環)):思路二(棧:從左到右)&…

【HarmonyOS Next之旅】DevEco Studio使用指南(二)

目錄 1 -> 工程模板介紹 2 -> 創建一個新的工程 2.1 -> 創建和配置新工程 2.1.1 -> 創建HarmonyOS工程 2.2.2 -> 創建OpenHarmony工程 1 -> 工程模板介紹 DevEco Studio支持多種品類的應用/元服務開發,預置豐富的工程模板,可以根…

unity3d 背景是桌面3d數字人,前面是web的表單

是可以實現的,但涉及多個技術棧的結合,包括 Unity3D、Web 技術(HTML、JavaScript)、以及可能的 WebGL 或 WebRTC 技術。大致有以下幾種實現方案: 方案 1:Unity 作為獨立應用(桌面端&#xff0…

貓耳大型活動提效——組件低代碼化

1. 引言 貓耳前端在開發活動的過程中,經歷過傳統的 pro code 階段,即活動頁面完全由前端開發編碼實現,直到 2020 年接入公司內部的低代碼活動平臺,滿足了大部分日常活動的需求,運營可自主配置活動并上線,釋…

深度學習系列79:Text2sql調研

參考 https://github.com/topics/text-to-sql 這里是一些資源:https://github.com/eosphoros-ai/Awesome-Text2SQL/blob/main/README.zh.md 這里是綜述文章:https://zhuanlan.zhihu.com/p/647249972 1. 數據集 Spider: 一個跨域的復雜text2sql數據集&a…

Linux 系統負載過高的排查思路

技術探討:Linux系統負載過高的排查思路 在Linux服務器運行過程中,如果系統負載過高,可能會導致性能下降和服務不穩定。以下是針對Linux系統負載過高問題的排查思路和解決方法: 1. 查看系統負載: 使用uptime或top命令查…

【互聯網性能指標】QPS/TPS/PV/UV/IP/GMV/DAU/MAU/RPS

📕我是廖志偉,一名Java開發工程師、《Java項目實戰——深入理解大型互聯網企業通用技術》(基礎篇)、(進階篇)、(架構篇)清華大學出版社簽約作家、Java領域優質創作者、CSDN博客專家、…

linux---天氣爬蟲

代碼概述 這段代碼實現了一個天氣查詢系統,支持實時天氣、未來天氣和歷史天氣查詢。用戶可以通過終端菜單選擇查詢類型,并輸入城市名稱來獲取相應的天氣信息。程序通過 TCP 連接發送 HTTP 請求,并解析返回的 JSON 數據來展示天氣信息。 #in…

Java高頻面試之集合-08

hello啊,各位觀眾姥爺們!!!本baby今天來報道了!哈哈哈哈哈嗝🐶 面試官:詳細說說CopyOnWriteArrayList CopyOnWriteArrayList 詳解 CopyOnWriteArrayList 是 Java 并發包(java.util…

【微信小程序 onTabItemTap:精準監聽 TabBar 點擊事件】

onTabItemTap 是微信小程序中的一個頁面生命周期函數,用于監聽用戶點擊 TabBar 上的某個項時的事件。以下是如何運用 onTabItemTap 的詳細說明: 使用場景 onTabItemTap 適用于需要在用戶點擊 TabBar 切換頁面時執行特定邏輯的場景。例如,你…

痙攣性斜頸需要做手術嗎?

痙攣性斜頸的治療是一個涉及多種醫學知識的話題,讓我們從多方面分析這個問題,來談談是否需要進行手術。 首先,我們要明確痙攣性斜頸是一種什么疾病。痙攣性斜頸是一種頸部肌肉異常收縮的疾病,可能導致頭部持續或間歇性地向一側旋…

AOT是什么?

https://www.bilibili.com/video/BV1Es4y1q7Bf?spm_id_from333.788.player.switch&vd_source12d5954938d20d50645e227a6a728c76&p87常規的java代碼是即時解釋執行的,只有熱點代碼才會提前編譯成二進制,并且將java代碼放到別的電腦執行時得安裝j…

【JavaWeb學習Day23】

Maven高級 分模塊設計與開發 分模塊設計:將一個大項目分成若干個子模塊,方便項目的維護、擴展,也方便模塊間的相互引用,資源共享。 策略: 1.策略一:按照功能模塊拆分,比如:公共組…

圖像的特征

圖像的特征主要包括以下幾類: 1. 顏色特征: 直方圖:描述圖像中顏色的分布。 顏色矩:通過顏色的均值、方差等統計量表示顏色分布。 主色調:圖像中占主導地位的顏色。 2. 紋理特征: 灰度共生矩陣&#xff0…