如何使用python中的pygame设置静态背景?
我正在用python编写pygame的演示,希望在静态背景上绘制一个移动对象。但是我不想更新静态背景 首先,我想画两个图层,一个用于静态背景,另一个用于移动对象。但是,我找不到任何类似层的属性(就像photoshop中的层)。那我该怎么处理呢 这是我的密码:如何使用python中的pygame设置静态背景?,python,pygame,pygame-clock,Python,Pygame,Pygame Clock,我正在用python编写pygame的演示,希望在静态背景上绘制一个移动对象。但是我不想更新静态背景 首先,我想画两个图层,一个用于静态背景,另一个用于移动对象。但是,我找不到任何类似层的属性(就像photoshop中的层)。那我该怎么处理呢 这是我的密码: # -*- coding: utf-8 -*- import sys from settings import Settings import pygame import math def run_game(): #
# -*- coding: utf-8 -*-
import sys
from settings import Settings
import pygame
import math
def run_game():
#
pygame.init()
ai_settings = Settings()
screen = pygame.display.set_mode((ai_settings.screen_width, ai_settings.screen_height))
pygame.display.set_caption("Catch Me If You CAN")
radius = 10
#
while True:
#
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()
#
screen.fill(ai_settings.bg_color)
pygame.draw.rect(screen, [0, 0, 0], [math.cos(radius)*100+300, math.sin(radius)*50+200, 10, 10], 4)
radius = radius + 0.1
#
pygame.display.flip()
run_game()
我想要实现的是在开始时绘制背景,而不需要重置背景
那是不可能的。当你把东西画到屏幕表面时,它就在那里。为了摆脱它,你必须画一些新的东西
最简单的方法是,在主循环的每次迭代中,用纯色填充屏幕,或将背景表面闪烁到屏幕上
还有一种更先进的技术(比如仅用另一个曲面覆盖的背景重新绘制屏幕区域),pygames以不同的组
类的形式提供了一些抽象。例如,有一个功能可以从组
的任何精灵中“清除”屏幕(并通过使用提供的曲面重新绘制这些区域来实现)
首先,我想画两个图层,一个用于静态背景,另一个用于移动对象。但是,我找不到任何类似层的属性
您正在查找该类,该类将按照其\u层
-属性的顺序绘制其精灵
如果您是pygame新手,您应该研究如何使用pygame的和类,它们可以满足您的需要,并且在99%的情况下都足够好
tl;医生: 你的选择是: 1) 在游戏循环的每次迭代中填充屏幕表面
2) 在游戏循环的每次迭代中使用精灵和
组及其清除功能
3) 使用精灵和LayeredUpdates
-组并添加背景精灵是的,此方法可以在曲面中绘制背景,但主循环将更新曲面,我需要重置背景,它不是静态背景。我想要实现的是在开始时绘制背景,而不需要重置背景