как сделать "вытягивающуюся" платформу, как панельки серии игр "portal"
мне необходимо понять как можно реализовать свободно вытягиваемую платформу. Под словом "свободно" я имею в виду, что она может менять градус наклона любой её части как угодно и выглядело хорошо.
мне нужно, чтобы программа рассчитывала место куда вытягивать(чёрная точка), относительно центра платформы(красная точка)
Вот что я имел в виду как в portal'е
как мне можно это сделать? я использую python+pygame или godot engine, поэтому вы можете ответь на питоне или на godot.
Ответы (1 шт):
Автор решения: Danis
→ Ссылка
import pygame
import math
pygame.init()
win = pygame.display.set_mode((720, 720))
def ray(x, y, angle, size):
x += math.sin(angle) * size
y += math.cos(angle) * size
return x, y
class Platform():
def __init__(self, x, y, height):
self.size0 = height / 3
self.pos = [x, y]
self.size1 = height / 3 * 2
self.angle = math.pi / 2
def draw(self, win):
x0, y0 = ray(*self.pos, self.angle, self.size0)
x1, y1 = ray(x0, y0, -self.angle, self.size1)
pygame.draw.line(win, (255, 255, 255), self.pos, (x0, y0))
pygame.draw.line(win, (255, 255, 255),(x0, y0), (x1, y1))
platform = Platform(360, 720, 720)
while True:
win.fill((0, 0, 0))
platform.draw(win)
platform.angle += .01
pygame.display.update()
