gpt4 book ai didi

python - Pygame:使用滚动级别更新 Rects

转载 作者:太空宇宙 更新时间:2023-11-04 06:29:58 26 4
gpt4 key购买 nike

我目前正在 PyGame 中制作一款 2D 横向卷轴奔跑跳跃平台游戏。大多数东西工作正常,事实上非常好——我正在利用快速的 pyGame Sprite 对象和组。

我想知道人们通常如何处理卷轴游戏的 Rect。我显然有一个比可见区域大得多的关卡,玩家、敌人、子弹等都有自己的 (x,y) 坐标,描述了它们在关卡中的位置。

但是现在,由于我们使用了“spriteGroup.draw(surface)”调用,它不会将它们显示在正确的位置,除非每个对象的 Rects 已经被调整以便正确的部分显示在屏幕上。换句话说,每次更新玩家/敌人/子弹/其他任何东西时,都需要传递 Camera 信息,以便更新它们的 Rect。

这是最好的使用方法吗?它有效,但我真的不喜欢在每次更新时将相机信息传递给每个对象以偏移 Rects。

显然,理想的方法(我认为)是使用具有“真实”坐标的 Rects,将所有内容 blit 到与关卡一样大的缓冲区,然后只将可见部分 blit 到屏幕,但实际上这会减慢游戏速度下降了很多。

如有任何意见/见解,我们将不胜感激。

谢谢

最佳答案

您可以扩展 de Sprite.Group 以便它接收相机信息。然后执行以下选项之一:A. 覆盖更新方法,更新每个 Sprite 的屏幕坐标。B. 覆盖 draw 方法,更新每个 Sprite 的屏幕坐标,然后调用其父 draw 方法。

我认为它更简单、更干净。

关于python - Pygame:使用滚动级别更新 Rects,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4073928/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com