关于精灵和精灵组
视频里面讲的不清不楚,
已经看了多遍,发现视频里面的老师讲的挺差的,是真的很差
请老师详解一下什么是精灵和精灵组 以及它们怎么用的,谢谢
正在回答 回答被采纳积分+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 星