From 3c9a6f68ef5854050b6ffa9d381e559e592c2f9b Mon Sep 17 00:00:00 2001 From: ObaniGemini Date: Sun, 19 Nov 2017 22:16:44 +0100 Subject: [PATCH] When commit messages are funny legend says they aren't pro - Added an idle animation for coins - Added in and out animations for the game --- assets/items/coin.gd | 9 +++ assets/items/coin.tscn | 30 +++++++- assets/misc/square.png | Bin 0 -> 144 bytes assets/swords/sword.tscn | 1 + main.gd | 4 +- main.tscn | 66 +++++++++++++++++- main_menu.gd | 5 +- main_menu.tscn | 145 ++++++++++++++++++++++++++++++++++++--- 8 files changed, 244 insertions(+), 16 deletions(-) create mode 100644 assets/misc/square.png diff --git a/assets/items/coin.gd b/assets/items/coin.gd index 78cb215..af6c08d 100644 --- a/assets/items/coin.gd +++ b/assets/items/coin.gd @@ -1,6 +1,15 @@ extends Area2D +onready var idle = get_node("idle").get_animation("idle").duplicate() + func _ready(): + var angle = deg2rad(randi() % 360) + idle.track_set_key_value(0, 0, Vector2(4*cos(angle), 4*sin(angle))) + idle.track_set_key_value(0, 1, Vector2(-4*cos(angle), -4*sin(angle))) + idle.track_set_key_value(0, 2, Vector2(4*cos(angle), 4*sin(angle))) + get_node("idle").add_animation("idle_bis", idle) + get_node("idle").set_speed(rand_range(0.5, 0.75)) + get_node("idle").play("idle_bis") set_fixed_process(true) func _fixed_process(delta): diff --git a/assets/items/coin.tscn b/assets/items/coin.tscn index 207726b..798e7b5 100644 --- a/assets/items/coin.tscn +++ b/assets/items/coin.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=6 format=1] +[gd_scene load_steps=7 format=1] [ext_resource path="res://assets/items/coin.gd" type="Script" id=1] [ext_resource path="res://assets/items/coinGold.png" type="Texture" id=2] @@ -72,6 +72,23 @@ tracks/2/keys = { "values": [ -360.0, 0.0 ] } +[sub_resource type="Animation" id=4] + +resource/name = "idle" +length = 1.0 +loop = true +step = 0.1 +tracks/0/type = "value" +tracks/0/path = NodePath("Sprite:transform/pos") +tracks/0/interp = 1 +tracks/0/imported = false +tracks/0/keys = { +"times": FloatArray( 0, 0.5, 1 ), +"transitions": FloatArray( 1, 1, 1 ), +"update": 0, +"values": [ Vector2( -4, 0 ), Vector2( 4, 0 ), Vector2( -4, 0 ) ] +} + [node name="coin" type="Area2D"] input/pickable = true @@ -135,6 +152,17 @@ playback/speed = 1.0 blend_times = [ ] autoplay = "" +[node name="idle" type="AnimationPlayer" parent="."] + +playback/process_mode = 1 +playback/default_blend_time = 0.0 +root/root = NodePath("..") +anims/idle = SubResource( 4 ) +playback/active = true +playback/speed = 1.0 +blend_times = [ ] +autoplay = "" + [connection signal="area_enter" from="." to="." method="_on_coin_area_enter"] [connection signal="body_enter" from="." to="." method="_on_coin_body_enter"] diff --git a/assets/misc/square.png b/assets/misc/square.png new file mode 100644 index 0000000000000000000000000000000000000000..a37cb9873df2a0dc81e22bbfafd76b64f259b4f9 GIT binary patch literal 144 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx1|;Q0k8}blmSQK*5Dp-y;YjHK@;M7UB8!3Q zuY)k7lg8`{prB-lYeY$Kep*R+Vo@qXd3m{BW?pu2a$-TMUVc&f>~}U&Kt;TsE{-7_ gGn0S(|Np<9f%7->Uyh3}zopr0IH)V!vFvP literal 0 HcmV?d00001 diff --git a/assets/swords/sword.tscn b/assets/swords/sword.tscn index 8b8b9df..b5ad44c 100644 --- a/assets/swords/sword.tscn +++ b/assets/swords/sword.tscn @@ -165,6 +165,7 @@ _update_shape_index = 0 config/amount = 32 config/lifetime = 0.1 +config/emitting = false config/process_mode = 1 config/local_space = false config/texture = ExtResource( 2 ) diff --git a/main.gd b/main.gd index bb7a0e8..d819b3e 100644 --- a/main.gd +++ b/main.gd @@ -78,7 +78,9 @@ func create_random(): add_child(tile_new) func _on_restart_pressed(): - get_tree().reload_current_scene() + get_node("gui/restart").set_disabled(true) + get_node("CanvasLayer/AnimationPlayer").connect("finished", get_tree(), "reload_current_scene") + get_node("CanvasLayer/AnimationPlayer").play("stop") func _on_random_tile_timeout(): diff --git a/main.tscn b/main.tscn index 7f1ab75..62f3273 100644 --- a/main.tscn +++ b/main.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=13 format=1] +[gd_scene load_steps=16 format=1] [ext_resource path="res://main.gd" type="Script" id=1] [ext_resource path="res://assets/knight/knight.tscn" type="PackedScene" id=2] @@ -9,6 +9,7 @@ [ext_resource path="res://assets/icons/jump.png" type="Texture" id=7] [ext_resource path="res://assets/icons/jump_cool.png" type="Texture" id=8] [ext_resource path="res://assets/fonts/amaranth_32_black.fnt" type="BitmapFont" id=9] +[ext_resource path="res://assets/misc/square.png" type="Texture" id=10] [sub_resource type="Animation" id=1] @@ -91,6 +92,40 @@ tracks/1/keys = { "values": [ Vector2( 1034, 0 ), Vector2( 1146, 12 ) ] } +[sub_resource type="Animation" id=4] + +resource/name = "start" +length = 0.7 +loop = false +step = 0.1 +tracks/0/type = "value" +tracks/0/path = NodePath("Sprite:transform/pos") +tracks/0/interp = 1 +tracks/0/imported = false +tracks/0/keys = { +"times": FloatArray( 0, 0.1, 0.7 ), +"transitions": FloatArray( 1, 0.25, 1 ), +"update": 0, +"values": [ Vector2( 0, 0 ), Vector2( 0, 0 ), Vector2( 1280, 0 ) ] +} + +[sub_resource type="Animation" id=5] + +resource/name = "stop" +length = 0.6 +loop = false +step = 0.1 +tracks/0/type = "value" +tracks/0/path = NodePath("Sprite:transform/pos") +tracks/0/interp = 1 +tracks/0/imported = false +tracks/0/keys = { +"times": FloatArray( 0, 0.6 ), +"transitions": FloatArray( 0.25, 1 ), +"update": 0, +"values": [ Vector2( -1280, 0 ), Vector2( 0, 0 ) ] +} + [node name="main" type="Node2D"] script/script = ExtResource( 1 ) @@ -108,6 +143,7 @@ autostart = true [node name="ParallaxBackground" type="ParallaxBackground" parent="."] +editor/display_folded = true layer = -1 offset = Vector2( 0, 0 ) rotation = 0.0 @@ -133,6 +169,7 @@ centered = false [node name="gui" type="CanvasLayer" parent="."] +editor/display_folded = true layer = 1 offset = Vector2( 0, 0 ) rotation = 0.0 @@ -311,6 +348,33 @@ wait_time = 10.0 one_shot = true autostart = false +[node name="CanvasLayer" type="CanvasLayer" parent="."] + +editor/display_folded = true +layer = 2 +offset = Vector2( 0, 0 ) +rotation = 0.0 +scale = Vector2( 1, 1 ) + +[node name="AnimationPlayer" type="AnimationPlayer" parent="CanvasLayer"] + +playback/process_mode = 1 +playback/default_blend_time = 0.0 +root/root = NodePath("..") +anims/start = SubResource( 4 ) +anims/stop = SubResource( 5 ) +playback/active = true +playback/speed = 1.0 +blend_times = [ ] +autoplay = "start" + +[node name="Sprite" type="Sprite" parent="CanvasLayer"] + +transform/scale = Vector2( 1280, 720 ) +texture = ExtResource( 10 ) +centered = false +modulate = Color( 0, 0, 0, 1 ) + [connection signal="timeout" from="random_tile" to="." method="_on_random_tile_timeout"] [connection signal="pressed" from="gui/restart" to="." method="_on_restart_pressed"] diff --git a/main_menu.gd b/main_menu.gd index fc14d2f..a4e28d5 100644 --- a/main_menu.gd +++ b/main_menu.gd @@ -1,6 +1,5 @@ extends Node2D - func _ready(): var config = ConfigFile.new() config.load("user://settings.cfg") @@ -8,4 +7,6 @@ func _ready(): get_node("high_score").set_text(str(highscore)) func _on_play_pressed(): - get_tree().change_scene("res://main.tscn") + if not get_node("AnimationPlayer").is_playing(): + get_node("AnimationPlayer").connect("finished", get_tree(), "change_scene", ["res://main.tscn"]) + get_node("AnimationPlayer").play("start") \ No newline at end of file diff --git a/main_menu.tscn b/main_menu.tscn index 6568031..5e7d432 100644 --- a/main_menu.tscn +++ b/main_menu.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=9 format=1] +[gd_scene load_steps=12 format=1] [ext_resource path="res://main_menu.gd" type="Script" id=1] [ext_resource path="res://assets/bg/bg_2.png" type="Texture" id=2] @@ -6,15 +6,42 @@ [ext_resource path="res://assets/misc/main_menu.png" type="Texture" id=4] [ext_resource path="res://assets/misc/logo.png" type="Texture" id=5] [ext_resource path="res://assets/fonts/amaranth_32_real_black.fnt" type="BitmapFont" id=6] +[ext_resource path="res://assets/misc/square.png" type="Texture" id=7] -[sub_resource type="ColorRamp" id=2] +[sub_resource type="Animation" id=3] + +resource/name = "idle" +length = 8.0 +loop = true +step = 4.0 +tracks/0/type = "value" +tracks/0/path = NodePath(".:rect/scale") +tracks/0/interp = 1 +tracks/0/imported = false +tracks/0/keys = { +"times": FloatArray( 0, 4, 8 ), +"transitions": FloatArray( 0.5, 2, 1 ), +"update": 0, +"values": [ Vector2( 1, 1 ), Vector2( 1.05, 1.05 ), Vector2( 1, 1 ) ] +} +tracks/1/type = "value" +tracks/1/path = NodePath(".:rect/pos") +tracks/1/interp = 1 +tracks/1/imported = false +tracks/1/keys = { +"times": FloatArray( 0, 4, 8 ), +"transitions": FloatArray( 2, 0.5, 1 ), +"update": 0, +"values": [ Vector2( 850, 35 ), Vector2( 850, 32 ), Vector2( 850, 35 ) ] +} + +[sub_resource type="ColorRamp" id=1] offsets = FloatArray( 0, 1 ) colors = ColorArray( 1, 1, 1, 0.0980392, 1, 1, 1, 0 ) -[sub_resource type="Animation" id=1] +[sub_resource type="Animation" id=2] -resource/name = "enter" length = 0.6 loop = false step = 0.1 @@ -68,6 +95,83 @@ tracks/4/keys = { "update": 1, "values": [ true, false ] } +tracks/5/type = "value" +tracks/5/path = NodePath("Sprite:transform/pos") +tracks/5/interp = 1 +tracks/5/imported = false +tracks/5/keys = { +"times": FloatArray( 0, 0.6 ), +"transitions": FloatArray( 0.5, 1 ), +"update": 0, +"values": [ Vector2( 0, 0 ), Vector2( 0, -720 ) ] +} + +[sub_resource type="Animation" id=4] + +resource/name = "start" +length = 0.6 +loop = false +step = 0.1 +tracks/0/type = "value" +tracks/0/path = NodePath("logo:transform/pos") +tracks/0/interp = 1 +tracks/0/imported = false +tracks/0/keys = { +"times": FloatArray( 0, 0.4 ), +"transitions": FloatArray( 0.25, 1 ), +"update": 0, +"values": [ Vector2( 1000, 360 ), Vector2( 1600, 360 ) ] +} +tracks/1/type = "value" +tracks/1/path = NodePath("logo:transform/scale") +tracks/1/interp = 1 +tracks/1/imported = false +tracks/1/keys = { +"times": FloatArray( 0, 0.4 ), +"transitions": FloatArray( 0.25, 1 ), +"update": 0, +"values": [ Vector2( 1, 1 ), Vector2( 0.25, 1 ) ] +} +tracks/2/type = "value" +tracks/2/path = NodePath("logo/Particles2D:config/emitting") +tracks/2/interp = 1 +tracks/2/imported = false +tracks/2/keys = { +"times": FloatArray( 0 ), +"transitions": FloatArray( 1 ), +"update": 1, +"values": [ true ] +} +tracks/3/type = "value" +tracks/3/path = NodePath("mighty_knight:transform/pos") +tracks/3/interp = 1 +tracks/3/imported = false +tracks/3/keys = { +"times": FloatArray( 0, 0.4 ), +"transitions": FloatArray( 0.25, 1 ), +"update": 0, +"values": [ Vector2( 248, 414 ), Vector2( -256, 414 ) ] +} +tracks/4/type = "value" +tracks/4/path = NodePath("mighty_knight/Particles2D:config/emitting") +tracks/4/interp = 1 +tracks/4/imported = false +tracks/4/keys = { +"times": FloatArray( 0, 0.5 ), +"transitions": FloatArray( 0.5, 1 ), +"update": 1, +"values": [ true, false ] +} +tracks/5/type = "value" +tracks/5/path = NodePath("Sprite:transform/pos") +tracks/5/interp = 1 +tracks/5/imported = false +tracks/5/keys = { +"times": FloatArray( 0, 0.6 ), +"transitions": FloatArray( 0.25, 1 ), +"update": 0, +"values": [ Vector2( -1280, 0 ), Vector2( 0, 0 ) ] +} [node name="main_menu" type="Node2D"] @@ -84,18 +188,28 @@ focus/ignore_mouse = true focus/stop_mouse = true size_flags/horizontal = 2 size_flags/vertical = 0 -margin/left = 858.0 +margin/left = 850.0 margin/top = 35.0 -margin/right = 1234.0 -margin/bottom = 172.0 +margin/right = 1226.0 +margin/bottom = 173.0 custom_fonts/font = ExtResource( 3 ) text = "0" align = 2 -valign = 1 percent_visible = 1.0 lines_skipped = 0 max_lines_visible = -1 +[node name="AnimationPlayer" type="AnimationPlayer" parent="high_score"] + +playback/process_mode = 1 +playback/default_blend_time = 0.0 +root/root = NodePath("..") +anims/idle = SubResource( 3 ) +playback/active = true +playback/speed = 1.0 +blend_times = [ ] +autoplay = "idle" + [node name="mighty_knight" type="Sprite" parent="."] transform/pos = Vector2( -256, 414 ) @@ -106,6 +220,7 @@ texture = ExtResource( 4 ) visibility/behind_parent = true config/amount = 16 config/lifetime = 0.2 +config/emitting = false config/process_mode = 1 config/local_space = false config/texture = ExtResource( 4 ) @@ -125,7 +240,7 @@ params/final_size = 1.0 params/hue_variation = 0.0 params/anim_speed_scale = 1.0 params/anim_initial_pos = 0.0 -color/color_ramp = SubResource( 2 ) +color/color_ramp = SubResource( 1 ) [node name="logo" type="Sprite" parent="."] @@ -159,7 +274,7 @@ params/anim_speed_scale = 1.0 params/anim_initial_pos = 0.0 randomness/direction = 1.0 randomness/spread = 1.0 -color/color_ramp = SubResource( 2 ) +color/color_ramp = SubResource( 1 ) [node name="open_url" type="TextureButton" parent="."] @@ -199,12 +314,20 @@ flat = false playback/process_mode = 1 playback/default_blend_time = 0.0 root/root = NodePath("..") -anims/enter = SubResource( 1 ) +anims/enter = SubResource( 2 ) +anims/start = SubResource( 4 ) playback/active = true playback/speed = 1.0 blend_times = [ ] autoplay = "enter" +[node name="Sprite" type="Sprite" parent="."] + +transform/scale = Vector2( 1280, 720 ) +texture = ExtResource( 7 ) +centered = false +modulate = Color( 0, 0, 0, 1 ) + [connection signal="pressed" from="open_url" to="." method="_on_open_url_pressed"] [connection signal="pressed" from="play" to="." method="_on_play_pressed"]