1

これが単純な修正である場合は事前にお詫びしますが、何も見つかりませんでした。私はpygameに比較的慣れていませんが、これを実行すると最初に描画されるバーが常に半分カットされる理由がわかりません。とにかく、私は 0,400 から始めて、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()
4

1 に答える 1

1

pygame(0,400) から (0, 400-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)

import sys
import random
import pygame

pygame.init()
screen = pygame.display.set_mode((1000,400))
colour = (0, 255, 0)
array = [random.randint(100, 400) for c in range(5)]

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

    linewidth = 40
    for i, b in enumerate(array):
        x = i*linewidth*2 + linewidth//2
        pygame.draw.line(screen, colour, (x, 400), (x, (400-b)), linewidth)

    pygame.display.update()
于 2013-09-21T14:55:16.360 に答える