Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python pygame绘图函数_Python_Pygame - Fatal编程技术网

Python pygame绘图函数

Python pygame绘图函数,python,pygame,Python,Pygame,如果这是一个简单的修复,我会提前道歉,但我找不到任何东西。我对pygame还比较陌生,但我不明白为什么当我运行这个程序时,第一个被画的条总是一半被切断。对我来说,不管怎样,我应该从0400开始,从0开始画40,然后再向上画。如果不是这样,请启发一颗好奇的心 from pygame import * import pygame, sys, random pygame.init() screen = pygame.display.set_mode((1000,400)) colour = (0,

如果这是一个简单的修复,我会提前道歉,但我找不到任何东西。我对pygame还比较陌生,但我不明白为什么当我运行这个程序时,第一个被画的条总是一半被切断。对我来说,不管怎样,我应该从0400开始,从0开始画40,然后再向上画。如果不是这样,请启发一颗好奇的心

from pygame import *
import pygame, sys, random

pygame.init()
screen = pygame.display.set_mode((1000,400))
colour = (0, 255, 0)
array = []
x, y, z, b = -80, 0, 0, 0
flag = True
for c in range(5):
    array.append(random.randint(100, 400));

for c in array:
    print c

while True:

    for event in pygame.event.get():
        if event.type == QUIT:
            pygame.quit()
            sys.exit()

    if len(array) == z:
        flag = False

    if flag == True:
        b = array[z]
        x += 80
        z += 1

    pygame.draw.line(screen, colour, (x, 400), (x, (400-b)), 40)

    pygame.display.update()
pygame正在绘制一条从(0400)到(0400-b)的线,线的厚度为40

以下是一种移动线条的方法,以使每条线条完全可见:

for i, b in enumerate(array):
    x = i*80 + 20  # <-- add 20 to shift by half the linewidth
    pygame.draw.line(screen, colour, (x, 400), (x, (400-b)), 40)
pygame正在绘制一条从(0400)到(0400-b)的线,线的厚度为40

以下是一种移动线条的方法,以使每条线条完全可见:

for i, b in enumerate(array):
    x = i*80 + 20  # <-- add 20 to shift by half the linewidth
    pygame.draw.line(screen, colour, (x, 400), (x, (400-b)), 40)

如果目标是填充矩形,那么如果目标是填充矩形,那么感谢repley@unutbu for循环是一种更干净的创建条形图的方法,但是我仍然不明白为什么“pygame.draw.line(screen,color,(start,400),(start,200))”(start=0):)然后加上说400开始这仍然画“一半”第二行与坐标<代码>(start,400)相比,该线表示线中间的一个点,而不是由线绘制的矩形块的左下角。Pygame绘制的这条线的线宽为40,这意味着在
(开始,400)
的左侧和右侧分别加厚了20个像素和20个像素。感谢repley@unutbu,for循环是一种更干净的创建条形图的方法,但我仍然不明白为什么“Pygame.draw.line”(屏幕,颜色,(开始,400),(开始,200))“(start=0):)然后添加400表示开始,它仍然画出“半”行,与第二行的绘制相比,坐标<代码>(start,400)< /c>表示线中间的一个点,而不是由线绘制的矩形块的左下角。Pygame以40的线宽绘制这条线,这意味着该线在
(开始,400)
的左侧和右侧分别加厚了20个像素和20个像素。