我有一个程序,其中有一个名称列表。我希望能够将每个这些名称列出到一个矩形中。我希望每个名称都创建自己的矩形。这个示例为列表中的每个标题创建一个矩形,我将''
放在列表的开头,因为我收到一条错误消息,说我无法通过添加''
来固定除以python中的零。 / p>
import pygame
width,height = 800,600
screen = pygame.display.set_mode((width,height))
mover = 0
games = ['','Space Invaders','Snake']
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
quit()
if event.type == pygame.MOUSEBUTTONDOWN:
if event.button == 4:
if mover > 0:
mover -= 15
if event.button == 5:
if mover < (height-120)-60:
mover += 15
screen.fill((47,79,79))
for game in games:
for num in range(len(games)):
if num != 0:
pygame.draw.rect(screen, (0,51,51), (100,((height-120)/num)-mover,width-200,20))
pygame.draw.rect(screen, (0,51,51), (width-30,100,25,height-120)) #SCROLL BAR
pygame.draw.rect(screen, (0,0,0), (width-29,mover+100,23,60)) #SCROLLING BAR
pygame.draw.line(screen, (0,0,0), (0,100),(width,100), 4)
pygame.display.flip()
我不确定如何使矩形靠得更近,因此每个矩形之间只有5到10个像素。我也觉得这样做有更好的方法。
答案 0 :(得分:1)
定义到屏幕顶部的距离。例如100.定义线之间的距离。一条线的高度是20。如果两条线之间的间距应该是10,则距离是30。因此,一条线的起点是110 + num*30 - mover
:
for num, game in enumerate(games):
pygame.draw.rect(screen, (0,51,51), (100, 110 + num*30 + mover, width-200, 20))
请注意,您可以使用enumerate
获取列表索引和列表元素的元组。