var is_shooting: bool = false #состояние стрельбы, стреляем или не стреляем) создаём таймер, можно из сцены используя onready. func _ready(): timer.wait_time = fire_rate # Устанавливаем интервал стрельбы timer.connect("timeout", self, "_on_Timer_timeout") func _input(event): if event is InputEventMouseButton: if event.button_index == MouseButton.LEFT: if event.pressed: # Если кнопка зажата, то мы просто запускаем таймер is_shooting = True timer.start() else: # еесли кнопка отпущена, останавливаем таймер is_shooting = False timer.stop() func _on_Timer_timeout(): if is_shooting: shoot() #стреляем по окончанию таймера. Вроде это всё что нужно
Скорее всего, ты установил смену позиции у игрока, а не пули. b.transform = $GunCast2D/Marker2D.global_transform Если ты забудешь, написать 'b', то персонаж будет телепортироваться, а не пуля.
@@vorongo 1. Спасибо, кажется понял, но не до конца. Почему спрашиваю, просто, то что относится к синтаксису годот подсвечивается синим, красным, зеленым, желтым цветами.. а название переменных и др. белым текстом и не всегда понятно, owner, transform и тд. в других роликах тоже, это название переменной, название сцены, плеера или это относится к встроенному языку годот. 1.1 получается owner создает копию объекта внутри текущей сцены, но скрипт ты крепишь к плееру, а не к ружью, пуля вылетает из маркера, выходит owner привязан к маркеру? если я удалю маркер, то будет ли пуля вылетать из центра персонажа или же нужно крепить маркер к персонажу, чтобы из него вылетал объект? 2. при нажатии кнопки ты написал shoot(), после вызвал туже функцию. эта функция встроена уже по дефолту в движок, или это ты ее создал, назвал и задал ей параметры. В других роликах вижу функции shot(), Death() и тд. они вшиты в годот, как ready(), process(), не совсем понимаю как они работают, тогда (типо, реди готов к исполнению, процесс - ежесекундно выполняется, а шут как работает?), или создаются новые функции человеком?
1. если удалить маркер у оружие, то пуля будет появляться из центра персонажа или центра оружия, смотря как настроено. 2. функция shoot() не вшита в godot, такие функции требуют активации, в других функциях, например в ready(), но как я знаю, между вшитыми функциями есть различие в частоте их активации, а точнее их приоритете.
В сцене Bullet используется transform.x, то есть заставляем пулю лететь, а в игрока мы лишь спавним копии и назнвчаем направление, а если честно я вообще не понял, откуда у тебя это ошибка...
я смог настроить удаление пуль при прикосновение к стенам и слаймам:
if "slime" in body.name:
удалить
elif body.name == "TileMap":
удалить
прошу указать что пулька будет работать только на левале иначе крашит
Мужик починил микрофон, но ничего не слышно.
Мужик, большое тебе спасибо!!!
всегда пожалуйста)
Спасибо, брат!
Рад помочь)
Я не понимаю почему этот гайд такой не популярный
Так решил боженька Ютуб 💀
@@vorongo я его уже 4 раз смотрю
Спасибо большое, можешь подсказать как сделать стрельбу зажимая мышь, чтобы патроны вылетали быстр, а не кликать по 100 раз?
var is_shooting: bool = false #состояние стрельбы, стреляем или не стреляем)
создаём таймер, можно из сцены используя onready.
func _ready():
timer.wait_time = fire_rate # Устанавливаем интервал стрельбы
timer.connect("timeout", self, "_on_Timer_timeout")
func _input(event):
if event is InputEventMouseButton:
if event.button_index == MouseButton.LEFT:
if event.pressed:
# Если кнопка зажата, то мы просто запускаем таймер
is_shooting = True
timer.start()
else:
# еесли кнопка отпущена, останавливаем таймер
is_shooting = False
timer.stop()
func _on_Timer_timeout():
if is_shooting:
shoot() #стреляем по окончанию таймера.
Вроде это всё что нужно
вопрос у меня при нажатии клавиши за стрельбу по траектории движется персонаж а не стреляется пуля
P.S код полностью скопировал
Скорее всего, ты установил смену позиции у игрока, а не пули.
b.transform = $GunCast2D/Marker2D.global_transform
Если ты забудешь, написать 'b', то персонаж будет телепортироваться, а не пуля.
@@vorongo с этим я сам разобрался, но спасибо за твою отзывчивость)
у меня выдаёт ошибку Cannot cal methood 'ad_child' on a nul value как фиксить?
всё я пофиксил
Это на какой версии движка?
4
4.2.1 стабилка на видео ведь видно.
Что делать если пистолет стреляет как миниган(как сделать так чтобы пистолет стрелял единожды)
сменить тип нажатия, там после Input.action_presed или action_just_presed
@@vorongo Спасибо🙏
Пуля летит не с оружия а с неба что делать?
за поворот пули отвечает строчка b.transform = 'наш маркер'.global_transform
@@vorongo что можно сделать чтобы такого не было?
пожалуйста помогите пуля просто не появляется(сделал все как в ролике)
скорее всего небыло активирована функция "Shoot" напиши её активацию пр нажатии кнопки в функции init() или другой функции
или сцена пули не сохранена
@@vorongo спасибо
Если оно моментально исчезает, то оно бьётся об игрока
Или z индекс слишком мал
что такое owner? owner.add....
он позволяет узнать к какой сцене относится узел, по сути он просто создаёт копию сцены(пули) в сцене(игрока).
@@vorongo 1. Спасибо, кажется понял, но не до конца. Почему спрашиваю, просто, то что относится к синтаксису годот подсвечивается синим, красным, зеленым, желтым цветами.. а название переменных и др. белым текстом и не всегда понятно, owner, transform и тд. в других роликах тоже, это название переменной, название сцены, плеера или это относится к встроенному языку годот.
1.1 получается owner создает копию объекта внутри текущей сцены, но скрипт ты крепишь к плееру, а не к ружью, пуля вылетает из маркера, выходит owner привязан к маркеру? если я удалю маркер, то будет ли пуля вылетать из центра персонажа или же нужно крепить маркер к персонажу, чтобы из него вылетал объект?
2. при нажатии кнопки ты написал shoot(), после вызвал туже функцию. эта функция встроена уже по дефолту в движок, или это ты ее создал, назвал и задал ей параметры. В других роликах вижу функции shot(), Death() и тд. они вшиты в годот, как ready(), process(), не совсем понимаю как они работают, тогда (типо, реди готов к исполнению, процесс - ежесекундно выполняется, а шут как работает?), или создаются новые функции человеком?
1. если удалить маркер у оружие, то пуля будет появляться из центра персонажа или центра оружия, смотря как настроено.
2. функция shoot() не вшита в godot, такие функции требуют активации, в других функциях, например в ready(), но как я знаю, между вшитыми функциями есть различие в частоте их активации, а точнее их приоритете.
@@vorongo я понял, Спасибо
Тихо слышно
F, звук уменьшен на 50%, так как снимал ночью и забыл добавить до рендера
нормально слышно, звук у себя добавь
@@delast1772я звук на максимум добавлял, че думаешь, не догадаюсь
Пишет ошибку Invalid set index ‘transform’ (on base: 'Area2D (bullet.gd)’) with value of type 'Vector2’. Мол у Area2D нет индекса transform
В сцене Bullet используется transform.x, то есть заставляем пулю лететь, а в игрока мы лишь спавним копии и назнвчаем направление, а если честно я вообще не понял, откуда у тебя это ошибка...