Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Как сделать управление на W A S D и A D в godot?

Максим Исаев Ученик (69), на голосовании 3 месяца назад
Как сделать чтобы игрок двигался на W (Вверх) A (Влево) S (Вниз) D (Вправо) Whitespace и A (Влево) D (Вправо) Whitespace (Прыжок) в godot?
Голосование за лучший ответ
MvC Просветленный (36650) 4 месяца назад
Уж легче на юнити сделать -через New Input System
Татьяна Просветленный (36374) 4 месяца назад
Для управления движением игрока на W, A, S, D в Godot, а также прыжками на пробел, мы можем использовать встроенную систему ввода и обработки ввода в GDScript. Приведенный ниже код демонстрирует, как это сделать, и мы постараемся сделать его максимально чистым и профессиональным, следуя стандартам.

Настройка ввода в Godot:

Откройте проект Godot.
Перейдите в Project -> Project Settings -> Input Map.
Добавьте новые действия: move_up, move_down, move_left, move_right, jump.
Назначьте соответствующие клавиши (W, A, S, D для движения и Пробел для прыжка).
Код для управления движением и прыжками:

 extends KinematicBody2D 

# Скорость движения и прыжка
export var move_speed := 200
export var jump_force := -400
export var gravity := 20

# Вектор скорости
var velocity := Vector2.ZERO

func _ready():
pass

func _physics_process(delta):
# Обработка гравитации
velocity.y += gravity

# Сброс горизонтальной скорости
velocity.x = 0

# Управление движением
if Input.is_action_pressed("move_up"):
move_up()
if Input.is_action_pressed("move_down"):
move_down()
if Input.is_action_pressed("move_left"):
move_left()
if Input.is_action_pressed("move_right"):
move_right()

# Прыжок
if Input.is_action_just_pressed("jump") and is_on_floor():
jump()

# Движение игрока
velocity = move_and_slide(velocity, Vector2.UP)

# Функции для движения
func move_up():
velocity.y = -move_speed

func move_down():
velocity.y = move_speed

func move_left():
velocity.x = -move_speed

func move_right():
velocity.x = move_speed

func jump():
velocity.y = jump_force
Максим ИсаевУченик (69) 4 месяца назад
А как на русском переводится Input Map
Максим ИсаевУченик (69) 4 месяца назад
У меня тут почему-то ошибка
Максим Исаев, поставьте у каждой переменны в начале @
Похожие вопросы