Я только что сделал космическую игру, в которой вещи падают на землю, и вам нужно избегать сбоев и т. Д.
Мне удалось создать 2 объекта, падающих одновременно, но я не могу заставить их делать это с разной скоростью.
Это первые атрибуты объекта.
thing_startx = random.randrange(0, display_width-100)
thing_starty = -700
thing_speed = 4
Теперь оно падает на
thing_starty += thing_speed
в каждой итерации цикла while.
Для следующего объекта я просто добавил случайные числа к исходным координатам X и Y, чтобы он занял другое положение. (см. функцию ниже, чтобы создать два прямоугольных объекта, если mult == True)
def things_mult(thingx, thingy, thingw, thingh, color, mult, xopt, yopt, wopt, col2):
if mult == False:
pygame.draw.rect(gameDisplay, color, [thingx, thingy, thingw, thingh])
else:
pygame.draw.rect(gameDisplay, color, [thingx, thingy, thingw , thingh])
pygame.draw.rect(gameDisplay, col2, [thingx + xopt, thingy + yopt, thingw + wopt, thingh])
Теперь я предполагаю, что мне просто нужно определить
thingy_new = thing_starty + thing_yopt
thingy_new = thingy_new + thing_speed* someconstant #(to make it faster or slower)
К сожалению, так не получается.
Может кто-нибудь объяснить мне, почему я так или иначе лишен этой простой логики?