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

Персонаж заходит за экран Godot

15.02.2024, 23:43. Показов 250. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Столкнулся проблемой того что персонаж заходит за экран, подскажите пожалуйста как это исправить (Использую Godot 3.5.3)

Код
extends Area2D
#signal hit
export var speed = 400.0

var screen_size = Vector2.ZERO #размер экрана
var animating = false #двигается ли игрок
var last_direction = Vector2.ZERO #последнее направление игрока 

func _ready():
	screen_size = get_viewport_rect().size
	$AnimatedSprite.connect("animation_finished", self, "_on_animation_finished")

func _process(delta):
	var direction = Vector2.ZERO
	#передвижения на лево или на право
	if Input.is_action_pressed("move_right"):
		direction.x += 1
	if Input.is_action_pressed("move_left"):
		direction.x -= 1

	#бег персонажа
	if direction.length() > 0:
		direction = direction.normalized()
		if not animating:
			animating = true
			last_direction = direction
			if direction.x > 0:
				$AnimatedSprite.play("run_right")
			else:
				$AnimatedSprite.play("run_left")
	else:
		#персонаж стоит
		if animating:
			animating = false
			if $AnimatedSprite.animation != "idel_left" and $AnimatedSprite.animation != "idel_right":
				$AnimatedSprite.stop()
				if last_direction.x > 0:
					$AnimatedSprite.play("idel_right")
				else:
					$AnimatedSprite.play("idel_left")

	# Ограничение перемещения в пределах экрана
	position += direction * speed * delta
	position.x = clamp(position.x, 0, screen_size.x)
	position.y = clamp(position.y, 0, screen_size.y)


func _on_animation_finished(anim_name):
	if anim_name == "run_right" or anim_name == "run_left":
		if last_direction.x > 0:
			$AnimatedSprite.play("idel_right")
		else:
			$AnimatedSprite.play("idel_left")
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.02.2024, 23:43
Ответы с готовыми решениями:

Персонаж немного заходит в стену
Всем привет, я новичок в юнити и сегодня у меня случилась такая проблема, что персонаж немного...

При нажатии пробела персонаж прыгает, но если зажать пробел то персонаж взлетает, как исправить?
using System.Collections; using System.Collections.Generic; using UnityEngine; public class...

Не работает скрипт камеры для персонажа. Выдает пустой экран и персонаж с объектами пропадает
Скрипт написан, чтобы камера следовала за персонажем

Не заходит в BIOS (чёрный экран на биосе)
Не как не зайти в BIOS, вообщем есть мать Gigabyte H510M H(rev 1.0), начал прошивать до версии F14,...

Черный экран на ноутбуке, не заходит в биос
Принесли новый ноут Asus X540Y. После установки на него вин7 х64 он показал рабочий стол, моргнул и...

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

Не включается экран, не заходит в bios. Lenovo z565
Вчера почистил и сменил термопасту. Еще заменил кронштейн матрицы. Собрал, не проверил. Теперь не...

Не заходит в BIOS (черный экран) на Asus Maximus V Formula
Компьютер работает нормально. За исключением того что не заходит в биос. Нажимаю del, f2 при...

Не заходит ни на один сайт,пишет на весь экран 'ошибка'.
логин и пароль в норме, уже 2й день немогу в инете сидеть

Не загружается дальше, чем стартовый экран, не заходит в BIOS при подключенном ЖД (IDE)
Здравствуйте. Перелопатил уйму тем, ничего подобного не нашел, по этому пишу сюда, попытаюсь...

Не заходит на сайты, но в Мэйл Агент заходит
Здравствуйте! Возникла проблема с подключением к инету на Висте. подключаюсь к интернету все путем...


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

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

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