实战IT培训机构_黄色激情网站_IT培训班选大学生IT技术培训中心_黄色激情视频网站_中公优就业

400-650-7353
您所在的位置:首頁 > IT干貨資料 > python > 【Python基礎知識】Pygame的基本使用——使用Sprites(精靈)類

【Python基礎知識】Pygame的基本使用——使用Sprites(精靈)類

  • 來源:優就業
  • 2021-09-28 09:51:42
  • 閱讀()
  • 分享
  • 手機端入口

Sprite表示精靈,是計算機圖形學術語,指屏幕上可以移動的任何對象。當玩任何2D游戲時,在屏幕上看到的所有對象都是精靈。精靈可以設置動畫,可以由玩家控制,甚至可以相互交互。

在游戲循環的更新和渲染部分,需要更新和渲染精靈,但是可以想象,如果游戲中包含大量精靈,那么游戲循環的這些部分可能會變得非常漫長而復雜。

Pygame為此提供了一個很好的解決方案:Sprite Group (精靈組)。

創建一個精靈組來容納游戲中所有的精靈:

  1. all_sprites = pygame.sprite.Group() 

現在可以通過在游戲循環中添加以下內容來利用該精靈組:

  1. # 更新游戲 
  2. all_sprites.update() 
  3.  
  4. # 渲染 
  5. screen.fill(WHITE) 
  6. all_sprites.draw(screen) 

對于創建的每個精靈,只需確保將其添加到all_sprites精靈組中,它將自動在游戲窗口上繪制并在每次循環中進行更新。

(1)創建精靈

現在開始創建第一個精靈。在Pygame中,精靈是對象。首先在template.py中定義精靈類Player,類中定義__init__()方法,其中每個精靈都必須有兩個屬性,分別是image(圖像)和rect(矩形),并將其初始化:

  1. class Player(pygame.sprite.Sprite):   # 繼承pygame中的Sprite類 
  2.     def __init__(self): 
  3.         pygame.sprite.Sprite.__init__(self
  4.         self.image = pygame.Surface((3030)) 
  5.         self.image.fill(BLUE) 
  6.         self.rect = self.image.get_rect() 
  7.         self.rect.centerx = WIDTH / 2 
  8.         self.rect.centery = HEIGHT - 30 

其中,定義了圖像屬性——只是創建了一個簡單的30*30的正方形,并用藍色填充。還定義了矩形屬性,get_rect()用于查看圖像并計算將其包圍的矩形。在Pygame中,可以使用矩形來跟蹤對象的坐標,也可以使用矩形將對象放置在游戲窗口上的任意位置。

再創建第二個精靈,這是一個50*50的正方形,并用紅色填充:

  1. class Player1(pygame.sprite.Sprite): 
  2.     def __init__(self): 
  3.         pygame.sprite.Sprite.__init__(self
  4.         self.image = pygame.Surface((5050)) 
  5.         self.image.fill(RED) 
  6.         self.rect = self.image.get_rect() 
  7.         self.rect.centerx = WIDTH / 2 
  8.         self.rect.centery = HEIGHT / 2 

然后分別創建Player類的實例player和Player1類的實例player1,還需要將player和player1添加到all_sprites精靈組中:

  1. all_sprites = pygame.sprite.Group() 
  2. player = Player() 
  3. player1 = Player1() 
  4. all_sprites.add(player, player1) 

最后進行渲染部分,在游戲循環的“screen.fill(WHITE)”代碼下面添加如下代碼:

  1. all_sprites.draw(screen) 

運行結果如圖1所示。

圖1 創建精靈的運行結果

(2)移動精靈

游戲循環顯示每一幀,如果需要移動精靈,那么需要在精靈類Player中添加update()方法來更新精靈的位置:

  1. def update(self): 
  2.     self.rect.x += 3 

上述代碼的update()方法很簡單,就是使精靈矩形的x坐標增加3個像素,即向游戲窗口右邊移動3個像素。每次游戲循環,都會調用update()方法,精靈會一直右移。但是這樣有個缺點,當精靈移動到游戲窗口最右邊時,就會消失不見。可以改動update()方法的代碼,使得當精靈移動到最右邊時,回到最左邊繼續移動:

  1. def update(self): 
  2.     self.rect.x += 3 
  3.     if self.rect.left > WIDTH: 
  4.         self.rect.right = 0 

同樣,在Player1類中添加update()方法,使精靈矩形向游戲窗口左邊移動2個像素,當精靈移動到最左邊時,回到最右邊繼續移動:

  1. def update(self): 
  2.     self.rect.x -= 2 
  3.     if self.rect.left < 0
  4.         self.rect.right = WIDTH 

all_sprites是一個精靈組,對該組進行更新,就是對組中每一個精靈進行更新。在游戲循環中,精靈組all_sprites調用update()方法,則組中每一個精靈將自動在游戲窗口上繪制并在每次循環中進行更新:

  1. all_sprites.update() 

運行結果如圖2所示。

圖2 移動精靈的運行結果

文章“【Python基礎知識】Pygame的基本使用——使用Sprites(精靈)類”已幫助

更多內容

>>本文地址:http://www.jecan.cn/zhuanye/2021/70179.html

THE END  

聲明:本站稿件版權均屬中公教育優就業所有,未經許可不得擅自轉載。

1 您的年齡

2 您的學歷

3 您更想做哪個方向的工作?

獲取測試結果
  • 大前端大前端
  • 大數據大數據
  • 互聯網營銷互聯網營銷
  • JavaJava
  • Linux云計算Linux
  • Python+人工智能Python
  • 嵌入式物聯網嵌入式
  • 全域電商運營全域電商運營
  • 軟件測試軟件測試
  • 室內設計室內設計
  • 平面設計平面設計
  • 電商設計電商設計
  • 網頁設計網頁設計
  • 全鏈路UI/UE設計UI設計
  • VR/AR游戲開發VR/AR
  • 網絡安全網絡安全
  • 新媒體與短視頻運營新媒體
  • 直播帶貨直播帶貨
  • 智能機器人軟件開發智能機器人
 

快速通道fast track

近期開班時間TIME

主站蜘蛛池模板: 户外-组合-幼儿园-不锈钢-儿童-滑滑梯-床-玩具-淘气堡-厂家-价格 | 冷却塔改造厂家_不锈钢冷却塔_玻璃钢冷却塔改造维修-广东特菱节能空调设备有限公司 | CE认证_产品欧盟ROHS-REACH检测机构-商通检测 | 达利园物流科技集团-| 微水泥_硅藻泥_艺术涂料_艺术漆_艺术漆加盟-青岛泥之韵环保壁材 武汉EPS线条_EPS装饰线条_EPS构件_湖北博欧EPS线条厂家 | 济南保安公司加盟挂靠-亮剑国际安保服务集团总部-山东保安公司|济南保安培训学校 | 山东led显示屏,山东led全彩显示屏,山东LED小间距屏,临沂全彩电子屏-山东亚泰视讯传媒有限公司 | 自动钻孔机-全自动数控钻孔机生产厂家-多米(广东)智能装备有限公司 | 济南铝方通-济南铝方通价格-济南方通厂家-山东鲁方通建材有限公司 | 无菌实验室规划装修设计-一体化实验室承包-北京洁净净化工程建设施工-北京航天科恩实验室装备工程技术有限公司 | 行吊_电动单梁起重机_双梁起重机_合肥起重机_厂家_合肥市神雕起重机械有限公司 | 东莞市天进机械有限公司-钉箱机-粘箱机-糊箱机-打钉机认准东莞天进机械-厂家直供更放心! | 【电子厂招聘_普工招工网_工厂招聘信息平台】-工立方打工网 | 北京网络营销推广_百度SEO搜索引擎优化公司_网站排名优化_谷歌SEO - 北京卓立海创信息技术有限公司 | 防水接头-电缆防水接头-金属-电缆密封接头-不锈钢电缆接头 | 氢氧化钙设备, 氢氧化钙生产线-淄博惠琛工贸有限公司 | 楼承板设备-楼承板成型机-免浇筑楼承板机器厂家-捡来 | 土壤墒情监测站_土壤墒情监测仪_土壤墒情监测系统_管式土壤墒情站-山东风途物联网 | 网带通过式抛丸机,,网带式打砂机,吊钩式,抛丸机,中山抛丸机生产厂家,江门抛丸机,佛山吊钩式,东莞抛丸机,中山市泰达自动化设备有限公司 | 海德莱电力(HYDELEY)-无功补偿元器件生产厂家-二十年专业从事电力电容器 | 金属检测机_金属分离器_检针验针机_食品药品金属检探测仪器-广东善安科技 | 标准光源箱|对色灯箱|色差仪|光泽度仪|涂层测厚仪_HRC大品牌生产厂家 | 股指期货-期货开户-交易手续费佣金加1分-保证金低-期货公司排名靠前-万利信息开户 | 滑石粉,滑石粉厂家,超细滑石粉-莱州圣凯滑石有限公司 | 齿轮减速电机一体机_蜗轮蜗杆减速马达-德国BOSERL齿轮减速机带电机生产厂家 | 华东师范大学在职研究生招生网_在职研究生招生联展网 | 浙江工业冷却塔-菱电冷却塔厂家 - 浙江菱电冷却设备有限公司 | 广东恩亿梯电源有限公司【官网】_UPS不间断电源|EPS应急电源|模块化机房|电动汽车充电桩_UPS电源厂家(恩亿梯UPS电源,UPS不间断电源,不间断电源UPS) | 广东恩亿梯电源有限公司【官网】_UPS不间断电源|EPS应急电源|模块化机房|电动汽车充电桩_UPS电源厂家(恩亿梯UPS电源,UPS不间断电源,不间断电源UPS) | 粘度计NDJ-5S,粘度计NDJ-8S,越平水分测定仪-上海右一仪器有限公司 | 定制异形重型钢格栅板/钢格板_定做踏步板/排水沟盖板_钢格栅板批发厂家-河北圣墨金属制品有限公司 | 低粘度纤维素|混凝土灌浆料|有机硅憎水粉|聚羧酸减水剂-南京斯泰宝 | 香港新时代国际美容美发化妆美甲培训学校-26年培训经验,值得信赖! | 两头忙,井下装载机,伸缩臂装载机,30装载机/铲车,50装载机/铲车厂家_价格-莱州巨浪机械有限公司 | 北京中航时代-耐电压击穿试验仪厂家-电压击穿试验机 | 绿萝净除甲醛|深圳除甲醛公司|测甲醛怎么收费|培训机构|电影院|办公室|车内|室内除甲醛案例|原理|方法|价格立马咨询 | 涂层测厚仪_光泽度仪_uv能量计_紫外辐照计_太阳膜测试仪_透光率仪-林上科技 | 济南侦探调查-济南调查取证-山东私家侦探-山东白豹调查咨询公司 密集架|电动密集架|移动密集架|黑龙江档案密集架-大量现货厂家销售 | PVC地板|PVC塑胶地板|PVC地板厂家|地板胶|防静电地板-无锡腾方装饰材料有限公司-咨询热线:4008-798-128 | 骨密度仪-骨密度测定仪-超声骨密度仪-骨龄测定仪-天津开发区圣鸿医疗器械有限公司 | 杰福伦_磁致伸缩位移传感器_线性位移传感器-意大利GEFRAN杰福伦-河南赉威液压科技有限公司 |