关于精灵和精灵组
视频里面讲的不清不楚,
已经看了多遍,发现视频里面的老师讲的挺差的,是真的很差
请老师详解一下什么是精灵和精灵组 以及它们怎么用的,谢谢
正在回答 回答被采纳积分+1
同学你好:

同学可以按照上面的顺序去设置游戏界面的位置。
SDL_VIDEO_WINDOW_POS:设置相对于系统屏幕的位置。
使用python获得系统的信息时,使用os.environ()
environ是一个字符串所对应环境的映像对象;
os.environ['HOMEPATH']:当前用户主目录。
os.environ['TEMP']:临时目录路径。
os.environ[PATHEXT']:可执行文件。
os.environ['LOGONSERVER']:机器名。
os.environ['PROMPT']:设置提示符。
os.environ['SYSTEMROOT']:系统主目录。

同学可以依次输出一下,看看具体对应的是什么。
如果我解决了同学的问题,请采纳!学习愉快^_^。
同学你好:
Pygame 提供了两个类(精灵和精灵组)
pygame.sprite.Sprite —— 存储 图像数据 image 和 位置 rect 的 对象
pygame.sprite.Group
精灵:
在游戏开发中,通常把 显示图像的对象 叫做精灵 Sprite
精灵 需要 有 两个重要的属性:
image 要显示的图像
rect 图像要显示在屏幕的位置
默认的 update() 方法什么事情也没做
子类可以重写此方法,在每次刷新屏幕时,更新精灵位置
注意:pygame.sprite.Sprite 并没有提供 image 和 rect 两个属性
需要程序员从 pygame.sprite.Sprite 派生子类(继承 pygame.sprite.Sprite的类)并在子类的初始化方法中,设置 image 和 rect 属性
精灵组:
一个 精灵组可以包含多个精灵对象
调用精灵组对象的update() 方法可以自动调用组内每一个精灵的update() 方法
调用精灵组对象的draw(屏幕对象) 方法可以将组内每一个精灵 image绘制在rect位置
注意:仍然需要调用 pygame.display.update() 才能在屏幕看到最终结果。
例如:
import pygame
# 自定义的派生精灵子类,继承pygame.sprite.Sprite
class GameSprite(pygame.sprite.Sprite):
"""游戏精灵基类"""
def __init__(self, image_path, speed=1):
# 调用父类的初始化方法
super().__init__()
# 加载图像
self.image = pygame.image.load(image_path)
# 设置尺寸; get_rect()可以获取图像的原始大小
self.rect = self.image.get_rect()
# 记录速度
self.speed = speed
def update(self, *args):
# 默认在垂直方向移动
self.rect.y += self.speed
if __name__ == '__main__':
# 游戏的初始化
pygame.init()
# 创建游戏主窗口 480 * 700
screen = pygame.display.set_mode((480, 700))
# 创建clock对象 (可以控制游戏循环频率)
clock = pygame.time.Clock()
# 创建敌机的精灵
enemy = GameSprite("./hero1.png")
enemy1 = GameSprite("./hero2.png", 2)
# 创建敌机的精灵组
enemy_group = pygame.sprite.Group(enemy, enemy1)
# 游戏循环 -> 意味着游戏的正式开始!
while True:
# 通过时钟对象指定循环频率
clock.tick(60) # 每秒循环60次
# 监听用户事件
for event in pygame.event.get():
# 判断用户是否点击了关闭按钮
if event.type == pygame.QUIT:
print("游戏退出...")
pygame.quit() # 卸载所有pygame模块
exit() # 直接终止当前正在执行的Python程序
# 让精灵组调用两个方法
# update -- 让组中的所有精灵更新位置
enemy_group.update()
# draw -- 在screen上绘制组中所有的精灵
enemy_group.draw(screen)
pygame.display.update() # 更新屏幕显示
pygame.quit()同学可以参考上面的代码,图片的路径需要同学去更改。在后面的学习中同学会在实战中学习精灵和精灵组的用法。
如果我解决了同学的问题,请采纳!学习愉快^_^。
- 参与学习 人
- 提交作业 2727 份
- 解答问题 8160 个
想要进入Python Web、爬虫、人工智能等高薪领域,你需要掌握本阶段的Python基础知识,课程安排带你高效学习轻松入门,学完你也能听得懂Python工程师的行业梗。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星