Форум программистов, компьютерный форум, киберфорум
Игровые движки
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
9 / 7 / 2
Регистрация: 06.09.2022
Сообщений: 308
1

GODOT 4.2 Движение спрайта через управление

20.06.2024, 13:05. Показов 505. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Я не понимаю почему скрипт вытащенный
из CharacterBody 2D перестает работать
если его вставить в спрайт ?

Python
1
2
3
4
5
6
7
8
9
10
11
extends Sprite2D
const SPEED = 300.0
const JUMP_VELOCITY = -400.0
var gravity = ProjectSettings.get_setting("physics/2d/default_gravity")
func _physics_process(delta):
    var direction = Input.get_axis("left", "right")
    if direction:
        velocity.x = direction * SPEED
    else:
        velocity.x = move_toward(velocity.x, 0, SPEED)
    move_and_slide()
Выдает ошибку Identifier Velosity no declared in the current scope

Добавлено через 14 минут
Если брать вариант из Godot 3.5

Python
1
2
3
4
5
6
7
8
extends Sprite2D
func _physics_process(delta):
    var direction = Vector3.ZERO
 
    if Input.is_action_pressed("right"):
        direction.x += 1
    if Input.is_action_pressed("left"):
        direction.x -= 1
Ошибки не выдает - но и движения не происходит

Добавлено через 5 минут
Движение без управления тоже ошибку выдает

Python
1
2
3
4
5
6
7
8
9
extends Sprite2D
 
func _physics_process(delta):
    var direction = Vector2.ZERO
 
    
           direction.x += 1
        if direction.x>500
           direction.x=0
Пишет Mixed use of Tab
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.06.2024, 13:05
Ответы с готовыми решениями:

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

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

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

Движение спрайта по синусоиде
Подскажите, пожалуйста, как реализовать движение спрайта по синусоиде? Сейчас движется только...

5
6340 / 3511 / 1427
Регистрация: 07.02.2019
Сообщений: 8,977
20.06.2024, 14:29 2
Лучший ответ Сообщение было отмечено Mr_den как решение

Решение

Цитата Сообщение от Mr_den Посмотреть сообщение
Я не понимаю почему скрипт вытащенный
из CharacterBody 2D перестает работать
если его вставить в спрайт ?
Потому что у спрайта нет свойства velocity и метода move_and_slide
Цитата Сообщение от Mr_den Посмотреть сообщение
Если брать вариант из Godot 3.5
Ошибки не выдает - но и движения не происходит
Чтобы двигать, нужно как-то менять свойство position
Цитата Сообщение от Mr_den Посмотреть сообщение
Движение без управления тоже ошибку выдает
Пишет Mixed use of Tab
Аккуратнее нужно быть с форматированием, отступы(tab) являются частью синтаксиса.
1
9 / 7 / 2
Регистрация: 06.09.2022
Сообщений: 308
20.06.2024, 15:04  [ТС] 3
Ну хорошо это я понял, у меня теперь только 1 ошибка \
на строке УСЛОВИЯ IF оно пишет Unexpected "if " in class body !
Что оно хочет ?
Python
1
2
3
4
5
6
7
8
extends Sprite2D
var speed = 3
 
func _physics_process(delta):
    var direction = Vector3.ZERO
    position.x += 1 * speed
if position.x > 500
position.x = 0
0
Эксперт .NET
12309 / 8678 / 1310
Регистрация: 21.01.2016
Сообщений: 32,605
20.06.2024, 15:06 4
Цитата Сообщение от Mr_den Посмотреть сообщение
Что оно хочет ?
Чтобы оператор if был в теле метода, а не теле класса.
1
6340 / 3511 / 1427
Регистрация: 07.02.2019
Сообщений: 8,977
20.06.2024, 15:26 5
Mr_den, я ж писал, отступы часть синтаксиса. Если в С/С++, например, для фрмирования блоков кода используются фигурные скобки, то в gdscript(как и в питоне) для этого используются отступы:
C++
1
2
3
4
5
6
7
int foo() {
    if (a > b) {
        int c = a + b;
        return c * 2;
    }
    return 0;
}
Код
func foo() -> int:
	if a > b:
		var c = a + b
		return c * 2
	return 0
0
9 / 7 / 2
Регистрация: 06.09.2022
Сообщений: 308
20.06.2024, 17:59  [ТС] 6
Да в том то и дело что в отличие от С ++ тут
мне пришлось сначала писать условие, а потом функцию которая должна
обеспечить это условие ! Всё наоборот короче - не ну это бред конечно
GODOT 4.2 Движение спрайта через управление
0
20.06.2024, 17:59
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.06.2024, 17:59
Помогаю со студенческими работами здесь

Движение и поворот спрайта
начал писать скрипт на юнити для ходьбы и поворота спрайта и оно выдаёт ошибку CS1002 expected, а...

Исправить движение спрайта
Помогите пожалуйста, что нужно сделать чтобы анимация спрайта была корректна? У персонажа...

Движение повернутого спрайта
У меня есть игра в которой есть спрайт кораблика который движется вверх при нажатии на кнопку 'w',...

Движение спрайта по вектору
Доброго времени суток. :) Делаю движение солнца вокруг центра экрана. Возник один вопрос - я...

Движение спрайта (pictureBox)
Моя задача, реализовать движение спрайта по карте с конкретной скоростью (может меняться). После...

Движение спрайта по разрисованному паинтбоксу.
Доброго времени суток, господа! Снова обращаюсь за помощью к гуру, дабы найти информацию по...


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

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