Tough_Crowd/godot/scenes/Tim.gd

44 lines
1.5 KiB
GDScript3
Raw Normal View History

2024-01-26 20:01:22 +00:00
extends Node2D
@export var move_speed = 100
@export var boundary: Boundary
2024-01-26 20:22:33 +00:00
@export var tim_sprite : Sprite2D
2024-01-27 12:08:34 +00:00
@export var transmitter_area: Area2D
2024-01-26 20:01:22 +00:00
2024-01-27 19:34:39 +00:00
var default_texture: Texture2D = load("res://sprites/tim_side.png")
var ducking_texture: Texture2D = load("res://sprites/tim_ducking.svg")
2024-01-26 20:01:22 +00:00
# Called when the node enters the scene tree for the first time.
func _ready():
2024-01-27 19:34:39 +00:00
Signals.hit_tim.connect(ouch)
2024-01-26 20:01:22 +00:00
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta):
2024-01-27 19:34:39 +00:00
if Input.is_action_pressed("move_right"):
tim_sprite.flip_h = true
global_position += Vector2.RIGHT * delta * move_speed
if global_position.x > boundary.get_most_right_position():
global_position = Vector2(boundary.get_most_right_position(), global_position.y)
if Input.is_action_pressed("move_left"):
tim_sprite.flip_h = false
global_position += Vector2.LEFT * delta * move_speed
if global_position.x < boundary.get_most_left_position():
global_position = Vector2(boundary.get_most_left_position(), global_position.y)
2024-01-27 11:36:06 +00:00
func _on_joke_button_button_pressed(joke):
2024-01-27 19:34:39 +00:00
$AnimationPlayer.play("talking")
for body in transmitter_area.get_overlapping_bodies():
var person = body.find_parent("Person")
if not (person is AudienceMember):
continue
person.on_joke(joke)
func ouch():
$Sprite2D.texture = ducking_texture
await get_tree().create_timer(1).timeout
$Sprite2D.texture = default_texture