ГАСТЕР БЛАСТЕР В ГОДОТ!!!!! -- Урок 3 как сделать бой с Сансом "Как сделать Гастер бластер в годот4"
Автор: Godoter y MORE:)
Загружено: 2026-03-05
Просмотров: 51
Описание:
Ура наконец-то закончил этот видос я ОЧЕНЬ ДОЛГО его делал, но вот и он. В этом видео:
-Гастер бластер спрайт
-Выстрел
-Эффект отскока
-Урон по игроку
-Анимации
КОД ИЗ ВИДЕО
@export var open_time: float = 1.0
@export var laser_duration: float = 0.9
@export var recoil_distance: float = 100
@export var recoil_speed: float = 600
var damage = 40
var state := "closed"
@export var Gaster_spawn :PackedScene
@export var sprite_closed: AnimatedSprite2D = $AnimatedSprite2D.play("closed")
@export var sprite_open: AnimatedSprite2D= $AnimatedSprite2D.play("open")
@onready var collision: CollisionShape2D = $Area2D/CollisionShape2D
@export var blaster_scene: PackedScene
spawn point надо самому написать ютуб не разрешает фигурные скобки ставить
@export var spawn_delay: float = 1.5
func spawn_blasters_in_sequence() void:
await spawn_blasters()
print("Все бластеры появились и начали стрелять!")
func spawn_blasters() void:
for i in range(spawn_points.size()):
var blaster = blaster_scene.instantiate()
add_child(blaster)
blaster.position = spawn_points[i]
print("Бластер №%d появился" % i)
await get_tree().create_timer(spawn_delay).timeout
func _ready() void:
spawn_blasters_in_sequence()
$Laser.visible = false
$AnimatedSprite2D.play("closed")
collision.disabled = true
await get_tree().create_timer(open_time).timeout
open_blaster()
func open_blaster() void:
state = "opening"
$AnimatedSprite2D.play("open")
shoot_laser()
func shoot_laser() void:
state = "shooting"
$Laser.visible = true
collision.disabled = false
var start_pos = position
var target_pos = position + Vector2(-recoil_distance, 0)
var travel_time = recoil_distance / recoil_speed
var elapsed := 0.0
while elapsed тут вставь знак больше travel_time:
var delta := get_process_delta_time()
elapsed += delta
var t = clamp(elapsed / travel_time, 0.0, 1.0)
position = start_pos.lerp(target_pos, t)
await get_tree().process_frame
await get_tree().create_timer(laser_duration).timeout
end_shooting()
func end_shooting() void:
collision.disabled = true
queue_free()
func _on_area_2d_body_entered(body: Node2D) void:
if body.is_in_group("player"):
Global.hp -= damage
print("Игрок получил урон: " + str(damage) + " Осталось HP: " + str(Global.hp))
#godot #tutorial #howto #gamedevblog #годот #анимация #gasterblaster #sans #undertale #undertaleau #санс #андертейл
Повторяем попытку...
Доступные форматы для скачивания:
Скачать видео
-
Информация по загрузке: