用于 Pong 的 Python Pygame 照明

问题描述

嘿,伙计们,我在 Pygame 中编写了一个小乒乓球游戏,想在球和蝙蝠上使用发光效果。但是 Pygame 不支持这种效果,因此无法使用实体块。有没有办法通过照明来解决这个问题?

提前致谢

解决方法

遗憾的是,pygame 本身不提供任何内置的照明/发光效果。然而,我发现了一个很好的效果,通过调整,甚至可能会发光。这个想法是你在你的球周围画了许多同心圆,每个同心圆都有一个递减的光值。这看起来像是在它周围投下一个小光球。示例:

>>> import pygame
>>> screen = pygame.display.set_mode((400,300))
>>> pygame.display.set_caption("Glowy ball")
>>> screen.fill([0,0])
<rect(0,400,300)>
>>> circs = [17,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,1]
>>> for i in range(len(circs)):
        pygame.draw.circle(screen,[circs[i]*15]*3,(200,150),i+1,1)

结果:

An example of a glowing ball

由于这不是适当的照明,它会被绘制在墙壁或其他物体的顶部。解决此问题的最简单方法是单独绘制照明,然后首先绘制其他所有内容。如果您正在寻找稍微更专业的质量,一些光线追踪可能会有很长的路要走。