1 / 1 / 0
Регистрация: 02.12.2020
Сообщений: 83
1

Godot. Движение игрока

12.12.2021, 22:23. Показов 1560. Ответов 0

Author24 — интернет-сервис помощи студентам
Добрый вечер всем. Пытаюсь сейчас делать движение персонажа. Передвижение вправо срабатывает как надо, а вот если делаю ровно то же самое но с движение влево - не срабатывает. Для удобства создавал две отдельные анимации ходьбы влево и вправо. При нажатой ui_right включается walk_right, соответственно при ui_left включается walk_left. Но это не срабатывает. По факту делаю первую игру, так что мало в чем разбираюсь
Код
extends KinematicBody2D
export var movement_speed : float = 400.0
export var jump_force:float=-900
onready var anim_sprite=$playerspryte
onready var anim_sprite1=$playerspryte
var  velocity: Vector2 = Vector2()
onready var platform_detector:Node = $platfdet
func _physics_process(delta : float) -> void:
	velocity.y +=Constants.gravity*delta
	var horiz_throw:float=Input.get_action_strength("ui_right") - Input.get_action_strength("ui_left")
	velocity.x=horiz_throw*movement_speed
	if Input.is_action_just_pressed("ui_up"):
		if is_on_floor():
			velocity.y=jump_force
	if Input.is_action_pressed("ui_right"):
		anim_sprite.play("walk_right")
	else:
		anim_sprite.play("front")
	if Input.is_action_pressed("ui_left"):
		anim_sprite.play("walk_left")
	else:
		anim_sprite.play("front")
	

	var snap_vector: Vector2=Vector2.DOWN*Constants.FLOOR_DETECT_DISTANCE if velocity.y==0.0 else Vector2.ZERO
	var is_on_platform:bool = platform_detector.is_colliding()
	velocity=move_and_slide(velocity,Vector2.UP)
Добавлено через 7 минут
Поторопился видимо. Нашел конструкцию нужную. Так что вопрос решен.
Код
	if Input.is_action_pressed("ui_right"):
		anim_sprite.play("walk_right")
	elif Input.is_action_pressed("ui_left"):
		anim_sprite.play("walk_left")
	else:
		anim_sprite.play("front")
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.12.2021, 22:23
Ответы с готовыми решениями:

Движение игрока
Доброго времени суток. Подскажите, пожалуйста, почему персонаж не передвигается управляя клавишами...

Движение игрока вперёд
Добрый день! Пишу игру на unity 2d и столкнулся с парочкой проблем. 1) Как можно реализовать прыжок...

Движение игрока - Rigidbody
Здравствуйте! Есть простой скрипт с 2 вариантами движения игрока: using System.Collections;...

Движение объекта в сторону игрока
Доброе утро! И снова неумёхе нужна помощь. Не знаю как сделать, чтобы объекты летели в сторону...

0
12.12.2021, 22:23
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.12.2021, 22:23
Помогаю со студенческими работами здесь

Движение игрока по маршруту из точек и развилок
Доброго времени суток. Пытаюсь придумать для своей игры скрипт или способ для того чтобы создавать...

Движение игрока от одной точке к другой(бесконечно)
Всем привет!подскажите есть два объекта и игрок,нужно что бы игрок двигался к одному объекту потом ...

Непрерывное движение игрока, пока кнопка нажата
Привет, есть вопрос: я хочу чтобы при нажатии на кнопку, игрок двигался пока я её не отпущу, я...

Как реализовать движение префаба игрока через кнопки на экране?
У меня игрок появляется на карте через Instantiate, т.е. создается клон, мне нужно управлять им...

Силует след за персонажем в GODOT
При перетаскивании с помощью мыши на сцене есть след Trail (Particles2D) силует за персонажем. А...

Движение игрока по клику мыши на С++ builder
Движение игрока по клику мыши.

Как сделать движение для игрока JavaScript
Здравствуйте. Создал игрока и стилизовал его, не знаю как сделать движение для игрока. Подскажете?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru