其实相当于用类封装数据和方法,组相当于用类将精灵再封装一次,这样修改组属性,整个组内的精灵均做相应的改变。

一条鱼不停在图中移动的例子。

用的图

源码:

import pygame
pygame.init()
##精灵
class Car(pygame.sprite.Sprite):def __init__(self,filename,initial_position,speed):pygame.sprite.Sprite.__init__(self)self.image=pygame.image.load(filename)  #核心1,导入surface对象self.rect=self.image.get_rect()     #核心2,得到surface坐标对象self.rect.topleft=initial_position  #核心3,给定初始图像位置self.speed=speed    #核心4,导入速度值def move(self):self.rect=self.rect.move(self.speed) #移动函数核心,用move函数得到新坐标if self.rect.bottom<0:self.rect.top=480if self.rect.top>480:self.rect.bottom=0if self.rect.left>640:self.rect.right=0if self.rect.right<0:self.rect.left=640def moveleft(self):self.rect.left=self.rect.left-10if self.rect.right<0:self.rect.left=640def moveright(self):self.rect.right=self.rect.right+10if self.rect.left>640:self.rect.right=0
screen=pygame.display.set_mode((640,480))
screen.fill([255,255,255])
fi="fish.jpg"
loc_grop=([0,0],[200,200],[350,350])Cargroup=pygame.sprite.Group() #声明精灵组
for i in loc_grop:Cargroup.add(Car(fi,i,[1,5]))  #将精灵放入精灵组
while True:for event in pygame.event.get():if event.type==pygame.QUIT:exit()elif event.type==pygame.KEYDOWN:if event.key==pygame.K_LEFT:for carlist in Cargroup.sprites():carlist.moveleft()screen.blit(carlist.image,carlist.rect)if event.key==pygame.K_RIGHT:for carlist in Cargroup.sprites():carlist.moveright()screen.blit(carlist.image,carlist.rect)pygame.time.delay(40)screen.fill([255,255,255])for carlist in Cargroup.sprites():carlist.move() #调用精灵运动方法screen.blit(carlist.image,carlist.rect)#显示精灵组pygame.display.update()

pygame 精灵精灵组相关推荐

  1. pygame中精灵的方法详解

    目录 pygame.sprite.Sprite pygame.sprite.Sprite.update() pygame.sprite.Sprite.add() pygame.sprite.Sprit ...

  2. Python pygame,精灵和精灵组

    plane_sprites.py(模块,定义派生精灵子类,继承pygame.sprite.Sprite): import pygame# 自定义的派生精灵子类,继承pygame.sprite.Spri ...

  3. 第2课pygame使用精灵

    1.使用精灵 使用精灵的概概念在游戏开发当中的各种物品或者动作,英雄,子弹等所有这个动态变化,都统称为精灵. 2.精灵组 在pygame中有很多很多的精灵,比如说屏幕上有密密麻麻的很多颗子弹,然后有很 ...

  4. pygame用精灵编组的问题的猜想和验证(未完待续)

    一.第一部分 #文件1.py from ship import Ship from settings import Settings from pygame.sprite import Group i ...

  5. pygame图片精灵

    转向图片精灵 彩色矩形很好 - 它们是一个好的开始,并确保你的游戏基本工作,但迟早你会想要为你的精灵使用一个很酷的宇宙飞船图像或角色.这引出了第一个问题:在哪里获得游戏资源. 获取图片资源 当你需要为 ...

  6. pygame动画精灵

    [1701H1][穆晨][180302]第143天总结 面向对象的游戏开发思维 pygame已经有了动画精灵的基类,我们可以直接使用 image球的样式 position球的位置 speed球的速度

  7. 第3课pygame图片精灵

    1.图片精灵 因为在这个游戏当中看到的都是很漂亮的图形或图片. 这个首先都是由美工给开发出来各种图像的资源. 导入资源图片,加载到精灵. 定义一个pygame.sprite.Sprite.init(s ...

  8. 实现子弹自动向前运动 定时器 移动精灵 精灵释放

    #import "cocos2d.h" #import "Bullet.h" @implementation Bullet // //-(id) init // ...

  9. pygame精灵组有哪些方法_pygame 的精灵使用

    pygame 的精灵使用 pygame.sprite.Sprite 是 pygame 中用来实现精灵的一个类,在使用时并不需要对它实例化,只需要继承它,然后按需写出自己的类,因此非常简单.使用. 1. ...

最新文章

  1. 在C#中如何在客户端接收信件
  2. 聊聊Dubbo - Dubbo可扩展机制源码解析
  3. 并发集合和普通集合以及安全集合的区别
  4. BASIC-6 杨辉三角形
  5. 怎样查看.a和so文件中的接口
  6. qt中继承pushbutton自定义控件设置按钮样式
  7. 【转载】Debian 6安装小记
  8. j2ee 现在已经改名为java ee_Java EE 已经正式更名为 Jakarta EE(雅加达)
  9. mysql var目录很快_mysql的这些坑你踩过吗?快来看看怎么优化mysql
  10. 学好英语对IT软件工程师的影响
  11. UE4项目的命名规则
  12. Oracle 客户端工具介绍
  13. GreenDotNet0 1 1发布 Net精简环境 及示例 Net在线漫画下载器
  14. 猜价格游戏java_猜商品价格游戏程序.java
  15. 看好699指纹手机暴露任泉的商业野心
  16. ChatGPT 如何获取API Key
  17. 中断服务程序(ISR)应遵循的高效原则
  18. ERP不规范,同事两行泪
  19. 无线智能风扇软件端APP设计
  20. [C/C++] 指针的原理和对指针的运用及理解(包括函数指针和多级指针)

热门文章

  1. 13个可以为网站创建360度全景视图的工具
  2. BAT、360、今日头条的小程序大战 谁会是最后的赢家?
  3. 恢复出厂设置和格式化SD卡
  4. 【原创】更相减损术 stein算法 欧几里得算法 拓展欧几里得算法 扩展欧几里得算法 逆元的计算与筛法 解模线性方程
  5. WXGA TFT和XGA TFT的区别
  6. 鸿蒙系统(HarmonyOS)应用开发入门篇
  7. 弘辽科技:如何提高淘宝收藏加购率?有哪些方法?
  8. 《快速上手ARM体系结构》网易公开课
  9. Android黄油刀插件使用记录
  10. 数值分析基础工具使用Matlab绘制双曲线