Как в ursina добавить приседание и бег

Добрая ночь, я новичок в Python и вообще в программировании. И мне надо при нажатии на Shift чтобы у player ускорялась передвижение, это первая проблема, с которой я столкнулся.
Вторая - мне надо чтобы на расстоянии меньше 8 блоков player не мог ломать блоки, это я примерно понял как сделать, но не правильно.
И третье - тоже самое что и Shift, но Ctrl надо сделать приседание как в майнкрафт.
Очень буду благодарен получить быстро помощь.

Вот код:

from ursina import *
from ursina.prefabs.first_person_controller import FirstPersonController

app = Ursina()
window.title = 'MineTools'                # название окна
window.borderless = False               # менять разрешение
window.fullscreen = False               # полноэкранный режим
window.exit_button.visible = False      # Не показывать внутриигровой красный крестик, закрывающий окно
window.fps_counter.enabled = True      # показывать фпс

camera.orthographic = False #плавнасть


e = Entity()
e.model = 'cube'
e.color = color.random_color()
e.position = (16, 2, 16)
e.size = 10

class Block(Button):
    def init(self, position=(0, 0, 0)):
        super().init(
            parent = scene,
            position = position,
            model = "cube",
            urigin_y = 5,
            color= color.gray,
            highilight_color = color.black,
            )
    def input(self, key):
        if self.hovered:
            if key == 'right mouse down'  and position == position > 8:
                voxel = Block(position = self.position + mouse.normal)
            if key == 'left mouse down':
                destroy(self)
for z in range(16):
    for x in range(16):
        voxel = Block((x, 0, z))
for z in range(1):
    for x in range(1):
        voxel = Block((17, 0, 18))


def update():
    if player.position == (0, -5, 0):
        player.position = (0,10,0)
    

player = FirstPersonController(position =(0, 10, 0))

app.run()

Ответы (0 шт):