出於某種原因,我得到了矩形的不平坦邊框。如果我使用寬度的偶數值,那麼邊界看起來像是另一個較厚的部分。如果我使用寬度的奇數值,那麼邊框看起來是正確的。有什麼我做錯了嗎?下面是代碼:爲什麼矩形邊框在pygame中的大小不一樣?
import pygame
import sys
SCREEN_SIZE = SCREEN_WIDTH, SCREEN_HEIGHT = 800, 600
SCREEN_COLOR = pygame.Color("white")
SCREEN = pygame.display.set_mode(SCREEN_SIZE)
FRAME_RATE = 30
class Vehicle(object):
INNER_COLOR = (0, 0, 0, 127)
RIM_COLOR = pygame.Color("black")
def __init__(self, x, y):
self.x = x
self.y = y
surface = pygame.Surface((40, 80), pygame.SRCALPHA, 32)
surface = surface.convert_alpha()
self.rect = surface.get_rect()
pygame.draw.rect(
surface,
self.INNER_COLOR,
self.rect,
)
pygame.draw.rect(
surface,
self.RIM_COLOR,
self.rect,
4
)
self.surface = surface
def display(self):
SCREEN.blit(self.surface, (self.x - 20, self.y - 40))
def main():
clock = pygame.time.Clock()
v = Vehicle(SCREEN_WIDTH/2, SCREEN_HEIGHT/2)
while True:
clock.tick(FRAME_RATE)
for event in pygame.event.get():
if event.type == pygame.QUIT: sys.exit()
SCREEN.fill(SCREEN_COLOR)
v.display()
pygame.display.flip()
if '__main__' == __name__:
main()