From fa98822a569c1efa2bebc705073c3921b9ae4217 Mon Sep 17 00:00:00 2001 From: David Luevano Alvarado Date: Sat, 4 Jun 2022 03:46:31 -0600 Subject: added progress bar as well as tongue to the snake --- src/entities/actors/snake/scenes/Head.tscn | 31 +++++++++++++++++- src/entities/actors/snake/scripts/head.gd | 17 ++++++++++ src/entities/actors/snake/sprites/tongue.png | Bin 0 -> 99 bytes .../actors/snake/sprites/tongue.png.import | 35 +++++++++++++++++++++ 4 files changed, 82 insertions(+), 1 deletion(-) create mode 100644 src/entities/actors/snake/sprites/tongue.png create mode 100644 src/entities/actors/snake/sprites/tongue.png.import (limited to 'src/entities') diff --git a/src/entities/actors/snake/scenes/Head.tscn b/src/entities/actors/snake/scenes/Head.tscn index 336265b..a08197b 100644 --- a/src/entities/actors/snake/scenes/Head.tscn +++ b/src/entities/actors/snake/scenes/Head.tscn @@ -1,7 +1,32 @@ -[gd_scene load_steps=4 format=2] +[gd_scene load_steps=10 format=2] [ext_resource path="res://entities/actors/snake/sprites/head.png" type="Texture" id=1] [ext_resource path="res://entities/actors/snake/scripts/head.gd" type="Script" id=2] +[ext_resource path="res://entities/actors/snake/sprites/tongue.png" type="Texture" id=3] + +[sub_resource type="AtlasTexture" id=2] +atlas = ExtResource( 3 ) +region = Rect2( 0, 0, 4, 4 ) + +[sub_resource type="AtlasTexture" id=3] +atlas = ExtResource( 3 ) +region = Rect2( 4, 0, 4, 4 ) + +[sub_resource type="AtlasTexture" id=4] +atlas = ExtResource( 3 ) +region = Rect2( 8, 0, 4, 4 ) + +[sub_resource type="AtlasTexture" id=5] +atlas = ExtResource( 3 ) +region = Rect2( 12, 0, 4, 4 ) + +[sub_resource type="SpriteFrames" id=6] +animations = [ { +"frames": [ SubResource( 2 ), SubResource( 3 ), SubResource( 4 ), SubResource( 5 ) ], +"loop": false, +"name": "default", +"speed": 15.0 +} ] [sub_resource type="CircleShape2D" id=1] radius = 2.0 @@ -10,6 +35,10 @@ radius = 2.0 collision_mask = 262 script = ExtResource( 2 ) +[node name="Tongue" type="AnimatedSprite" parent="."] +position = Vector2( 0, -5 ) +frames = SubResource( 6 ) + [node name="Sprite" type="Sprite" parent="."] texture = ExtResource( 1 ) diff --git a/src/entities/actors/snake/scripts/head.gd b/src/entities/actors/snake/scripts/head.gd index 117f461..1e17b18 100644 --- a/src/entities/actors/snake/scripts/head.gd +++ b/src/entities/actors/snake/scripts/head.gd @@ -5,12 +5,19 @@ enum { RIGHT=1 } +onready var tongue_sprite: AnimatedSprite = $Tongue + var _initial_speed: float = Global.SNAKE_SPEED var velocity: Vector2 = Vector2.ZERO var _direction: Vector2 = Vector2.UP var _time_elapsed: float = 0.0 +func _ready() -> void: + Event.connect("food_eaten", self, "_on_food_eaten") + tongue_sprite.visible = false + + func _physics_process(delta: float) -> void: if Input.is_action_pressed("move_left"): _rotate_to(LEFT) @@ -36,3 +43,13 @@ func _handle_time_elapsed(delta: float) -> void: Event.emit_signal("snake_path_new_point", global_position) _time_elapsed = 0.0 _time_elapsed += delta + + +func _on_food_eaten(properties: Dictionary) -> void: + print("tongue food eaten") + if not tongue_sprite.visible: + tongue_sprite.visible = true + tongue_sprite.play() + yield(tongue_sprite, "animation_finished") + tongue_sprite.stop() + tongue_sprite.frame = 0 diff --git a/src/entities/actors/snake/sprites/tongue.png b/src/entities/actors/snake/sprites/tongue.png new file mode 100644 index 0000000..be74c66 Binary files /dev/null and b/src/entities/actors/snake/sprites/tongue.png differ diff --git a/src/entities/actors/snake/sprites/tongue.png.import b/src/entities/actors/snake/sprites/tongue.png.import new file mode 100644 index 0000000..6899fff --- /dev/null +++ b/src/entities/actors/snake/sprites/tongue.png.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/tongue.png-0200be53e2fea7c532d2e177715af415.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://entities/actors/snake/sprites/tongue.png" +dest_files=[ "res://.import/tongue.png-0200be53e2fea7c532d2e177715af415.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=false +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=false +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 -- cgit v1.2.3