星際爭霸之小霸王之小蜜蜂(一)

目錄

前言

一、安裝pygame庫

?1、pygame庫簡介

?2、在windows系統安裝pygame庫

二 、搭建游戲框架

1、創建游戲窗口?

?2、改變窗口顏色

?總結


前言

大家應該都看過或者都聽說過python神書“大蟒蛇”,上面有一個案例是《外星人入侵》,游戲介紹讓我想起了上學時候玩過的星際爭霸,又讓我想起小時候玩的小霸王游戲小蜜蜂,下面我們就按照書籍步驟,看能否實現游戲功能,然后再升級。

一、安裝pygame庫

?1、pygame庫簡介

Pygame庫是一個用于編寫2D游戲的Python庫。它提供了許多用于處理圖像、聲音等方面的功能,使得開發者能夠快速、輕松地創建自己的游戲。Pygame在跨平臺兼容性方面表現良好,可以在多個操作系統下使用。

Pygame的核心是Surface(表面)對象,它代表了一個可繪制的區域。Pygame可以通過在Surface上繪制圖形和文本來創建游戲元素。Pygame還提供了事件處理、碰撞檢測、時鐘控制等常用功能,使得開發者可以輕松地實現游戲邏輯。

除了基本功能之外,Pygame還有大量的擴展模塊可供使用,如Pygame.mixer(用于播放音頻)、Pygame.font(用于處理字體)等。開發者可以根據自己的需求選擇性的引入這些模塊。

總之,Pygame為開發者提供了大量的工具和函數庫,使得開發游戲變得更加容易和愉快。

?2、在windows系統安裝pygame庫

?有過簡單基礎的小伙伴都知道,安裝庫是最簡單的,只要輸入代碼就行

pip install pygame

?我們在命令行下輸入命令,如圖

?這就開始安裝了,出現成功的單詞就表示安裝成功了

二 、搭建游戲框架

1、創建游戲窗口?

我們按照書上步驟,先創建一個空的窗口試試看能否成功?

為避免后續調用發生錯亂,我們建立的python文件也命名為alien_invasion.py,alien的意思是外星人,invasion的意思是進攻。

先放代碼,后續再詳解

import sys
import pygamedef run_game():pygame.init()screen = pygame.display.set_mode((800,600))pygame.display.set_caption("Alien Invasion")while True:for event in pygame.event.get():if event.type == pygame.QUIT:sys.exit()pygame.display.flip()run_game()

下面我們來一一介紹:

??sys模塊是Python標準庫中的一個模塊,提供了與Python解釋器和運行時環境有關的功能,使用sys庫可以獲取Python解釋器的信息,控制程序的退出、標準輸入輸出和錯誤流,以及操作模塊搜索路徑等。所以這里導入sys模塊的目的是控制程序的退出

??pygame.init()是初始化游戲對象,這個操作是必須的,規定動作一定要做。這個函數將初始化 Pygame 庫并為其提供必要的資源和支持。初始化后,才能正常使用 Pygame 庫中的功能。

??display模塊是Pygame中用于管理屏幕和窗口的模塊。它包含了一些用于初始化pygame顯示模塊、設置屏幕分辨率、創建游戲窗口、更新窗口內容、處理事件等功能的函數。可以很好理解,pygame.display.set_mode((800,600))是設置窗口大小,pygame.display.set_caption("Alien Invasion")是設置窗口的名稱

??循環語句就是一直監聽鼠標和鍵盤的操作,這個后面有鍵盤和鼠標輸入的時候我們再詳細講。這個代碼很好理解,判斷如果游戲退出,那么就關閉程序。循環的最后一個語句pygame.display.flip(),我個人理解就是刷新,不斷的刷新屏幕,保持動態效果。

?我們來運行下看看效果怎么樣。

?

?效果非常的棒,和我們想的一樣,下一步就是要改變窗口的顏色了。

?2、改變窗口顏色

我們知道,很多軟件包括Python都是用RGB值來控制顏色,RGB是紅、綠、藍三個顏色分量的縮寫,每個分量的值可以在0到255之間取整數值,因此RGB可以表示256256256=16777216種不同的顏色。其中一些常用的顏色和它們所對應的RGB值如下:

  • 紅色:(255, 0, 0)
  • 黃色:(255, 255, 0)
  • 綠色:(0, 255, 0)
  • 青色:(0, 255, 255)
  • 藍色:(0, 0, 255)
  • 紫色:(255, 0, 255)
  • 白色:(255, 255, 255)
  • 黑色:(0, 0, 0)

我們只需要加一行代碼,在每次繪制屏幕之前,也就是我上面說的刷新之前,給窗口定義一個顏色就行,我們來試下青色的背景。

import sys
import pygamedef run_game():pygame.init()screen = pygame.display.set_mode((800,600))pygame.display.set_caption("Alien Invasion")while True:for event in pygame.event.get():if event.type == pygame.QUIT:sys.exit()screen.fill((0,255,255))pygame.display.flip()run_game()

?加上代碼screen.fill((0,255,255))之后,效果立馬顯現,看圖片

?

?總結

?萬事開頭難,今天將游戲的屏幕設置好了,后面我們將各種小蟲子添加上去就行。

?

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

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

相關文章

炫酷UI前端效果的CSS生成工具

提升設計人員和前端開發人員的工作 推薦炫酷UI前端效果的CSS生成工具1.Neumorphism2.帶有漸變的圖標3.Interactions4.大型數據庫5.動畫6.Mask7.動畫按鈕8. 自定義形狀分隔線9.背景圖案10. SVG波浪推薦炫酷UI前端效果的CSS生成工具 1.Neumorphism 地址:https://neumorphism.i…

【Nginx17】Nginx學習:目錄索引、字符集與瀏覽器判斷模塊

Nginx學習:目錄索引、字符集與瀏覽器判斷模塊 今天要學習的內容有幾個還是大家比較常見的,所以學習起來也不會特別費勁。對于目錄的默認頁設置大家都不會陌生,字符集的設置也比較常見,而瀏覽器的判斷這一塊,可能有同學…

深入源碼分析kubernetes informer機制(二)Reflector

[閱讀指南] 這是該系列第二篇 基于kubernetes 1.27 stage版本 為了方便閱讀,后續所有代碼均省略了錯誤處理及與關注邏輯無關的部分。 文章目錄 Reflector是什么整體結構工作流程list拉取數據緩存resync操作watch監聽操作 總結 Reflector是什么 reflector在informer…

RocketMQ雙主雙從同步集群部署

🎈 作者:互聯網-小啊宇 🎈 簡介: CSDN 運維領域創作者、阿里云專家博主。目前從事 Kubernetes運維相關工作,擅長Linux系統運維、開源監控軟件維護、Kubernetes容器技術、CI/CD持續集成、自動化運維、開源軟件部署維護…

學習筆記十九:Pod常見的狀態和重啟策略

Pod常見的狀態和重啟策略 常見的pod狀態第一階段:第二階段:擴展: pod重啟策略測試Always重啟策略正常停止容器內的tomcat服務非正常停止容器里的tomcat服務 測試never重啟策略正常停止容器里的tomcat服務非正常停止容器里的tomcat服務 測試On…

Mac安裝opencv后無法導入cv2的解決方法

前提條件:以下兩個插件安裝成功 pip install opencv-python pip install --user opencv-contrib-python 注:直接用pip install opencv-contrib-python如果報錯,就加上“–user" 第一步: 設置–添加python解釋器 第二步&am…

go語言惡意代碼檢測系統--對接前端可視化與算法檢測部分

Malware Detect System 1 產品介紹 惡意代碼檢測系統。 2 產品描述 2.1 產品功能 功能點詳細描述注冊賬號未注冊用戶注冊成為產品用戶,從而具備享有產品各項服務的資格登錄賬號用戶登錄產品,獲得產品提供的各項服務上傳惡意樣本用戶可以將上傳自己的…

uniapp微信小程序消息訂閱快速上手

一、微信公眾平臺小程序開通消息訂閱并設置模板 這邊的模板id和詳細內容后續前后端需要使用 二、uniapp前端 需要是一個button觸發 js: wx.getSetting({success(res){console.log(res)if(res.authSetting[scope.subscribeMessage]){// 業務邏輯}else{uni.request…

智安網絡|深入比較:Sass系統與源碼系統的差異及選擇指南

隨著前端開發的快速發展,開發人員需要使用更高效和靈活的工具來處理樣式表。在這個領域,Sass系統和源碼系統是兩個備受關注的選項。 Sass系統 Sass(Syntactically Awesome Style Sheets)是一種CSS預處理器,它擴展了CS…

CSS常見單位匯總

像素(px): 絕對單位,以屏幕上的實際像素為基準,最常用于具體的尺寸和位置表示。 百分比(%): 相對單位,基于父元素的屬性計算大小,如寬度、高度、邊距等。 自適…

@Param詳解

文章目錄 背景什么是ParamParam的使用方法使用方法:遇到的問題及因Param解決了什么問題使用與不使用對比 Param是如何進行映射的總結 背景 最近在開發過程中,在寫mapper接口是在參數前加了Param注解,但是在運行的時候就會報錯,說…

關于游戲盾

游戲盾(Game Shield)是一種針對游戲行業特點的網絡安全解決方案,主要針對游戲平臺面臨的各種網絡攻擊和安全威脅。以下是一些原因,說明為什么游戲平臺需要加游戲盾: 1. DDoS攻擊:游戲平臺通常容易受到分布式…

深入理解多態:面向對象編程中的靈活性與擴展性

文章目錄 代碼學習-多態什么是多態?多態在代碼中的體現多態的優勢 代碼學習-多態 什么是多態? 多態是面向對象編程中的重要概念之一,它指的是為不同的數據類型的實體提供統一的接口。簡而言之,就是同一個命令在不同的對象上會產…

更多openEuler鏡像加入AWS Marketplace!

自2023年7月openEuler 22.03 LTS SP1正式登陸AWS Marketplace后,openEuler社區一直持續于在AWS上提供更多版本。 目前,openEuler22.03 LTS SP1 ,SP2兩個版本及 x86 arm64兩種架構的四個鏡像均可通過AWS對外提供,且在亞太及歐洲15個Region開放…

wkhtmltopdf 與 .Net Core

wkhtmltopdf 是使用webkit引擎轉化為pdf的開源小插件. 其有.NET CORE版本的組件,DinkToPdf,但該控件對跨平臺支持有限。 故打算在Linux上安裝相關插件直接調用. 準備工作 虛擬機:Linux version 3.10.0-1160.el7.x86_64 wkhtmltox開發包:wkhtmltox_0.12…

Caused by: java.lang.ClassNotFoundException: net.sf.cglib.proxy.MethodProxy

1. 異常信息 2023-08-16 14:17:14.817 INFO 14304 [ restartedMain] io.seata.config.ConfigurationFactory : load Configuration:FileConfiguration$$EnhancerByCGLIB$$862af1eb 2023-08-16 14:17:15.006 ERROR 14304 [ restartedMain] g.springframework.boot.Sprin…

大數據Flink(六十):Flink 數據流和分層 API介紹

文章目錄 Flink 數據流和分層 API介紹 一、??????????????Flink 數據流

ZooKeeper的應用場景(命名服務、分布式協調通知)

3 命名服務 命名服務(NameService)也是分布式系統中比較常見的一類場景,在《Java網絡高級編程》一書中提到,命名服務是分布式系統最基本的公共服務之一。在分布式系統中,被命名的實體通常可以是集群中的機器、提供的服務地址或遠程對象等一這…

iOS申請證書(.p12)和描述文件(.mobileprovision)

打包app時,經常會用到ios證書,但很多人都苦于沒有蘋果電腦,即使有蘋果電腦的,也會覺得蘋果電腦操作也很麻煩,這里記錄一下,用香蕉云編,申請證書及描述文件的過程。 香蕉云編的地址:…

【C語言】每日一題(多數元素)

多數元素,鏈接奉上 方法 1.摩爾投票2.合理但錯誤的方法2.1暴力循環2.2排序求出中間元素中間元素 1.摩爾投票 先來簡單的介紹摩爾投票: 摩爾投票是一種用來解決絕對眾數問題的算法。 什么是絕對眾數呢? 在一個集合中,如果一個元素…