Случайный в Pygame - PullRequest
       0

Случайный в Pygame

1 голос
/ 27 октября 2019

Я хочу рандомизировать, где появляется определенная форма с условием, что она находится где-нибудь вдоль 500 на оси y в pygame. Как мне это сделать?

Я импортировал random модуль, но я не знал, куда идти дальше.

Это то, что я хочу рандомизировать вдоль 500 на оси y, когда оно отображается, но обе фигуры должны находиться в одном и том же выравнивании.

pygame.draw.ellipse(screen, ORANGE, (110, 500, 70, 45))
pygame.draw.arc(screen, GREEN, (140,485, 10, 30), math.pi / 2 , 3*math.pi/2, 5)

НадеюсьНе нужно рандомизировать одну фигуру слева и одну справа, они должны находиться в одном и том же месте, но в другом месте.

1 Ответ

0 голосов
/ 28 октября 2019

Используйте Python «случайный» модуль для генерации Y-позиции. Похоже, формы эллипса и дуги должны поддерживать постоянную разницу в -15 пикселей в координате Y. Таким образом, это может быть сохранено как константа в коде, а не как какое-то безымянное различие в вычислениях.

import random

ARC_OFFSET = -15

...

y_pos = random.randint( 0, 500 )
pygame.draw.ellipse(screen, ORANGE, (110, y_pos, 70, 45))
pygame.draw.arc(screen, GREEN, (140, y_pos + ARC_OFFSET, 10, 30), math.pi / 2 , 3*math.pi/2, 5)

Кажется, также есть постоянное смещение X. Лучше всего написать функцию для рисования этой составной фигуры

import random

...

def drawShape( screen, x_pos, y_pos ):
    ARC_OFFSET_X = 30
    ARC_OFFSET_Y = -15

    pygame.draw.ellipse( screen, ORANGE, ( x_pos, y_pos, 70, 45 ) )

    arc_x = x_pos + ARC_OFFSET_X
    arc_y = y_pos + ARC_OFFSET_Y
    pygame.draw.arc( screen, GREEN, ( arc_x, arc_y, 10, 30 ), math.pi/2 , 3*math.pi/2, 5 )

...

y_pos = random.randint( 0, 500 )
drawShape( screen, 110, y_pos )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...