python實(shí)現(xiàn)月食效果實(shí)例代碼
我們?cè)趯W(xué)習(xí)Python當(dāng)中的pygame模塊時(shí),我們都知道我們可以通過使用 pygame模塊實(shí)現(xiàn)很多功能性的東西,但是很多人應(yīng)該不知道怎么通過使用pygame實(shí)現(xiàn)月食的效果吧,接下來我就教大家如何利用pygame模塊實(shí)現(xiàn)月食的效果吧,總代碼量都用不到40行代碼就可以實(shí)現(xiàn)哦,希望對(duì)你們有所幫助
第一步:先打開我們的pycharm軟件,然后新建一個(gè)Python文件

第二步:新建好我們的文件之后,我們?cè)诰庉嫿缑孑斎胍韵麓a:
import pygame
import sys #導(dǎo)入模塊
#設(shè)置窗體圖形界面
screen=pygame.display.set_mode((700,500)) #設(shè)置窗體的屏幕寬高,screen變量接收屏幕
pygame.display.set_caption("吳秀柔 16級(jí)計(jì)科2班") #設(shè)置窗體的標(biāo)題
#月亮
moonImage='image/moon.png' #定位圖片
moon=pygame.image.load(moonImage) #加載圖片
#地球陰影
earthshadowImage='image/blackMoon.png' #定位圖片
earthshadow=pygame.image.load(earthshadowImage) #加載圖片
#覆蓋軌跡的背景
backgroundImage='image/blackBG.png' #定位圖片
background=pygame.image.load(backgroundImage) #加載圖片
x=450 #初始化位置,以X軸為移動(dòng)方向
#繪制圖片在窗體上
while True:
screen.blit(background,(0,0)) #用來覆蓋地球走的路徑
screen.blit(moon,(100,100)) #月亮所在的位置
screen.blit(earthshadow,(x,100)) #地球陰影運(yùn)行的初始位置
if x<=0: #地球陰影移動(dòng)的動(dòng)作
x+=1
else:
x-=1
#消息事件循環(huán),判斷退出
for event in pygame.event.get(): # 獲得一個(gè)事件的列表
if event.type == pygame.QUIT: #如果事件類型,退出
sys.exit() #安全退出
pygame.display.update() #刷新畫面

第三步:編寫好我們的代碼之后,我們點(diǎn)擊鼠標(biāo)右鍵或者同事按住Ctrl+shift+F10進(jìn)行代碼的運(yùn)行編譯

第四步:這時(shí)候我們就可以看到效果了,由于這里我的月食遮罩是以X軸為運(yùn)動(dòng)方向移動(dòng),進(jìn)行月食效果的,所以它的月食軌跡是緩慢運(yùn)行的



第五步:在這次代碼中,我們共用到了三張圖片,一個(gè)是全黑色的遮罩,注意這個(gè)遮罩的大小要與我們的窗體屏幕大小一致或者更大,這樣才能夠完全遮住,而且在這里使用的圖片都是透明背景的圖片



第六步:很多人都不太清楚自己在制作圖片時(shí),為什么總是不是透明圖層,注意:在對(duì)圖片處理時(shí),之后后綴為.png的圖片才具有透明效果,如果本來你在處理時(shí)時(shí)透明背景,結(jié)果保存到使用時(shí)卻不是透明圖層,這可能是你保存的格式不對(duì),注意檢查一下

第七步:以上就是我實(shí)現(xiàn)的月食效果,每一行都進(jìn)行了注釋,希望對(duì)你們有所幫助。這次是實(shí)現(xiàn)的月食效果總代碼量都用不到40行,可以說是非常少了*_*,大家沒事可以自己操作試試看,有不足之處大家多多見諒啦

相關(guān)文章
10個(gè)易被忽視但應(yīng)掌握的Python基本用法
這篇文章主要介紹了10個(gè)易被忽視但應(yīng)掌握的Python基本用法,如字典推導(dǎo)、內(nèi)省工具等,主要針對(duì)Python3版本,需要的朋友可以參考下2015-04-04
解決PDF 轉(zhuǎn)圖片時(shí)丟文字的一種可能方式
這篇文章主要介紹了解決PDF 轉(zhuǎn)圖片時(shí)丟字的一種可能方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2021-03-03
Python+OpenAI?Whisper實(shí)現(xiàn)視頻生成字幕
這篇文章主要為大家詳細(xì)介紹了如何利用Python和OpenAI?Whisper實(shí)現(xiàn)視頻生成字幕功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解下2024-11-11
python3.6連接MySQL和表的創(chuàng)建與刪除實(shí)例代碼
這篇文章主要介紹了python3.6連接MySQL和表的創(chuàng)建與刪除實(shí)例代碼,具有一定借鑒價(jià)值,需要的朋友可以參考下2017-12-12
對(duì)python sklearn one-hot編碼詳解
今天小編就為大家分享一篇對(duì)python sklearn one-hot編碼詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-07-07
Python使用gluon/mxnet模塊實(shí)現(xiàn)的mnist手寫數(shù)字識(shí)別功能完整示例
這篇文章主要介紹了Python使用gluon/mxnet模塊實(shí)現(xiàn)的mnist手寫數(shù)字識(shí)別功能,結(jié)合完整實(shí)例形式分析了Python調(diào)用gluon/mxnet模塊識(shí)別手寫字的具體實(shí)現(xiàn)技巧,需要的朋友可以參考下2019-12-12
django創(chuàng)建自定義模板處理器的實(shí)例詳解
這篇文章主要介紹了django創(chuàng)建自定義模板處理器的實(shí)例詳解的相關(guān)資料,這里說明了如何需要django模板處理器及實(shí)現(xiàn)方法,希望大家能理解掌握這部分內(nèi)容,需要的朋友可以參考下2017-08-08

