mirror of
https://github.com/godotengine/godot-demo-projects.git
synced 2026-01-06 07:50:22 +01:00
Convert demos to Godot 4 using regular expressions in a script
This commit is contained in:
@@ -1,8 +1,8 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/cloud_1.png-03c0ad8be397b731df0dd38fa3c87727.stex"
|
||||
type="StreamTexture2D"
|
||||
path="res://.godot/imported/cloud_1.png-03c0ad8be397b731df0dd38fa3c87727.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
@@ -10,7 +10,7 @@ metadata={
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/art/background/cloud_1.png"
|
||||
dest_files=[ "res://.import/cloud_1.png-03c0ad8be397b731df0dd38fa3c87727.stex" ]
|
||||
dest_files=["res://.godot/imported/cloud_1.png-03c0ad8be397b731df0dd38fa3c87727.stex"]
|
||||
|
||||
[params]
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/cloud_2.png-4ddf8c5bceca4aa07a8bc86d7d788e02.stex"
|
||||
type="StreamTexture2D"
|
||||
path="res://.godot/imported/cloud_2.png-4ddf8c5bceca4aa07a8bc86d7d788e02.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
@@ -10,7 +10,7 @@ metadata={
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/art/background/cloud_2.png"
|
||||
dest_files=[ "res://.import/cloud_2.png-4ddf8c5bceca4aa07a8bc86d7d788e02.stex" ]
|
||||
dest_files=["res://.godot/imported/cloud_2.png-4ddf8c5bceca4aa07a8bc86d7d788e02.stex"]
|
||||
|
||||
[params]
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/cloud_3.png-a1b7dc71aa84bea9cb4f78f585dcc65d.stex"
|
||||
type="StreamTexture2D"
|
||||
path="res://.godot/imported/cloud_3.png-a1b7dc71aa84bea9cb4f78f585dcc65d.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
@@ -10,7 +10,7 @@ metadata={
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/art/background/cloud_3.png"
|
||||
dest_files=[ "res://.import/cloud_3.png-a1b7dc71aa84bea9cb4f78f585dcc65d.stex" ]
|
||||
dest_files=["res://.godot/imported/cloud_3.png-a1b7dc71aa84bea9cb4f78f585dcc65d.stex"]
|
||||
|
||||
[params]
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/distant_platforms_1.png-7286fe6c8587b96abbbe0bc4a8cbc510.stex"
|
||||
type="StreamTexture2D"
|
||||
path="res://.godot/imported/distant_platforms_1.png-7286fe6c8587b96abbbe0bc4a8cbc510.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
@@ -10,7 +10,7 @@ metadata={
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/art/background/distant_platforms_1.png"
|
||||
dest_files=[ "res://.import/distant_platforms_1.png-7286fe6c8587b96abbbe0bc4a8cbc510.stex" ]
|
||||
dest_files=["res://.godot/imported/distant_platforms_1.png-7286fe6c8587b96abbbe0bc4a8cbc510.stex"]
|
||||
|
||||
[params]
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/distant_platforms_2.png-ba010b30987da6d74062ce964ab450ef.stex"
|
||||
type="StreamTexture2D"
|
||||
path="res://.godot/imported/distant_platforms_2.png-ba010b30987da6d74062ce964ab450ef.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
@@ -10,7 +10,7 @@ metadata={
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/art/background/distant_platforms_2.png"
|
||||
dest_files=[ "res://.import/distant_platforms_2.png-ba010b30987da6d74062ce964ab450ef.stex" ]
|
||||
dest_files=["res://.godot/imported/distant_platforms_2.png-ba010b30987da6d74062ce964ab450ef.stex"]
|
||||
|
||||
[params]
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/sky.png-c175b712c46edc17f2b5fc55b9de3c49.stex"
|
||||
type="StreamTexture2D"
|
||||
path="res://.godot/imported/sky.png-c175b712c46edc17f2b5fc55b9de3c49.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
@@ -10,7 +10,7 @@ metadata={
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/art/background/sky.png"
|
||||
dest_files=[ "res://.import/sky.png-c175b712c46edc17f2b5fc55b9de3c49.stex" ]
|
||||
dest_files=["res://.godot/imported/sky.png-c175b712c46edc17f2b5fc55b9de3c49.stex"]
|
||||
|
||||
[params]
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/coin.png-87689993f83db6056500d4fa153313d8.stex"
|
||||
type="StreamTexture2D"
|
||||
path="res://.godot/imported/coin.png-87689993f83db6056500d4fa153313d8.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
@@ -10,7 +10,7 @@ metadata={
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/art/coin/coin.png"
|
||||
dest_files=[ "res://.import/coin.png-87689993f83db6056500d4fa153313d8.stex" ]
|
||||
dest_files=["res://.godot/imported/coin.png-87689993f83db6056500d4fa153313d8.stex"]
|
||||
|
||||
[params]
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/enemy.png-c2f48b2558d3b68a547452306041a310.stex"
|
||||
type="StreamTexture2D"
|
||||
path="res://.godot/imported/enemy.png-c2f48b2558d3b68a547452306041a310.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
@@ -10,7 +10,7 @@ metadata={
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/art/enemy/enemy.png"
|
||||
dest_files=[ "res://.import/enemy.png-c2f48b2558d3b68a547452306041a310.stex" ]
|
||||
dest_files=["res://.godot/imported/enemy.png-c2f48b2558d3b68a547452306041a310.stex"]
|
||||
|
||||
[params]
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/moving_platform.png-479aa8f802d1a4964b138893ada8d372.stex"
|
||||
type="StreamTexture2D"
|
||||
path="res://.godot/imported/moving_platform.png-479aa8f802d1a4964b138893ada8d372.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
@@ -10,7 +10,7 @@ metadata={
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/art/platforms/moving_platform.png"
|
||||
dest_files=[ "res://.import/moving_platform.png-479aa8f802d1a4964b138893ada8d372.stex" ]
|
||||
dest_files=["res://.godot/imported/moving_platform.png-479aa8f802d1a4964b138893ada8d372.stex"]
|
||||
|
||||
[params]
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/one_way_platform.png-aaf0179c7171228f27cb489e99e339bd.stex"
|
||||
type="StreamTexture2D"
|
||||
path="res://.godot/imported/one_way_platform.png-aaf0179c7171228f27cb489e99e339bd.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
@@ -10,7 +10,7 @@ metadata={
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/art/platforms/one_way_platform.png"
|
||||
dest_files=[ "res://.import/one_way_platform.png-aaf0179c7171228f27cb489e99e339bd.stex" ]
|
||||
dest_files=["res://.godot/imported/one_way_platform.png-aaf0179c7171228f27cb489e99e339bd.stex"]
|
||||
|
||||
[params]
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/bullet.png-a148438922f3743d5615622ef8134c9f.stex"
|
||||
type="StreamTexture2D"
|
||||
path="res://.godot/imported/bullet.png-a148438922f3743d5615622ef8134c9f.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
@@ -10,7 +10,7 @@ metadata={
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/art/player/bullet/bullet.png"
|
||||
dest_files=[ "res://.import/bullet.png-a148438922f3743d5615622ef8134c9f.stex" ]
|
||||
dest_files=["res://.godot/imported/bullet.png-a148438922f3743d5615622ef8134c9f.stex"]
|
||||
|
||||
[params]
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/robot_demo.png-cd7cbcf6d0c47d4a233ea7ce93b142c2.stex"
|
||||
type="StreamTexture2D"
|
||||
path="res://.godot/imported/robot_demo.png-cd7cbcf6d0c47d4a233ea7ce93b142c2.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
@@ -10,7 +10,7 @@ metadata={
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/art/player/robot_demo.png"
|
||||
dest_files=[ "res://.import/robot_demo.png-cd7cbcf6d0c47d4a233ea7ce93b142c2.stex" ]
|
||||
dest_files=["res://.godot/imported/robot_demo.png-cd7cbcf6d0c47d4a233ea7ce93b142c2.stex"]
|
||||
|
||||
[params]
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/tiles_demo.png-f720a7de2b60b01f690cfa3cb881996b.stex"
|
||||
type="StreamTexture2D"
|
||||
path="res://.godot/imported/tiles_demo.png-f720a7de2b60b01f690cfa3cb881996b.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
@@ -10,7 +10,7 @@ metadata={
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/art/tileset/tiles_demo.png"
|
||||
dest_files=[ "res://.import/tiles_demo.png-f720a7de2b60b01f690cfa3cb881996b.stex" ]
|
||||
dest_files=["res://.godot/imported/tiles_demo.png-f720a7de2b60b01f690cfa3cb881996b.stex"]
|
||||
|
||||
[params]
|
||||
|
||||
|
||||
@@ -1,42 +1,42 @@
|
||||
[gd_resource type="TileSet" load_steps=14 format=2]
|
||||
|
||||
[ext_resource path="res://assets/art/tileset/tiles_demo.png" type="Texture" id=1]
|
||||
[ext_resource path="res://assets/art/tileset/tiles_demo.png" type="Texture2D" id=1]
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=1]
|
||||
points = PoolVector2Array( 0, 6, 32, 6, 32, 32, 0, 32 )
|
||||
points = PackedVector2Array( 0, 6, 32, 6, 32, 32, 0, 32 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=2]
|
||||
points = PoolVector2Array( 0, 6, 28, 6, 28, 32, 0, 32 )
|
||||
points = PackedVector2Array( 0, 6, 28, 6, 28, 32, 0, 32 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=3]
|
||||
points = PoolVector2Array( 0, 0, 32, 0, 32, 32, 0, 32 )
|
||||
points = PackedVector2Array( 0, 0, 32, 0, 32, 32, 0, 32 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=4]
|
||||
points = PoolVector2Array( 0, 6, 32, 6, 32, 32, 0, 32 )
|
||||
points = PackedVector2Array( 0, 6, 32, 6, 32, 32, 0, 32 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=5]
|
||||
points = PoolVector2Array( 32, 38, 32, 64, 0, 64, 0, 6 )
|
||||
points = PackedVector2Array( 32, 38, 32, 64, 0, 64, 0, 6 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=6]
|
||||
points = PoolVector2Array( 0, 0, 28, 0, 28, 32, 0, 32 )
|
||||
points = PackedVector2Array( 0, 0, 28, 0, 28, 32, 0, 32 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=7]
|
||||
points = PoolVector2Array( 28, 6, 32, 6, 32, 32, 0, 32, 0, 0, 28, 0 )
|
||||
points = PackedVector2Array( 28, 6, 32, 6, 32, 32, 0, 32, 0, 0, 28, 0 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=8]
|
||||
points = PoolVector2Array( 0, 6, 32, 6, 32, 32, 0, 32 )
|
||||
points = PackedVector2Array( 0, 6, 32, 6, 32, 32, 0, 32 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=9]
|
||||
points = PoolVector2Array( 0, 6, 28, 6, 28, 32, 0, 32 )
|
||||
points = PackedVector2Array( 0, 6, 28, 6, 28, 32, 0, 32 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=10]
|
||||
points = PoolVector2Array( 0, 0, 32, 0, 32, 32, 0, 32 )
|
||||
points = PackedVector2Array( 0, 0, 32, 0, 32, 32, 0, 32 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=11]
|
||||
points = PoolVector2Array( 0, 0, 32, 0, 32, 24, 0, 24 )
|
||||
points = PackedVector2Array( 0, 0, 32, 0, 32, 24, 0, 24 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=12]
|
||||
points = PoolVector2Array( 0, 0, 28, 0, 28, 24, 0, 24 )
|
||||
points = PackedVector2Array( 0, 0, 28, 0, 28, 24, 0, 24 )
|
||||
|
||||
[resource]
|
||||
0/name = "ground"
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/touch_button_fire.png-8b72c42a8cb252207ce8948d4b623690.stex"
|
||||
type="StreamTexture2D"
|
||||
path="res://.godot/imported/touch_button_fire.png-8b72c42a8cb252207ce8948d4b623690.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
@@ -10,7 +10,7 @@ metadata={
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/art/ui/touch_button_fire.png"
|
||||
dest_files=[ "res://.import/touch_button_fire.png-8b72c42a8cb252207ce8948d4b623690.stex" ]
|
||||
dest_files=["res://.godot/imported/touch_button_fire.png-8b72c42a8cb252207ce8948d4b623690.stex"]
|
||||
|
||||
[params]
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/touch_button_jump.png-f72afeb370538aa951853dbc52052250.stex"
|
||||
type="StreamTexture2D"
|
||||
path="res://.godot/imported/touch_button_jump.png-f72afeb370538aa951853dbc52052250.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
@@ -10,7 +10,7 @@ metadata={
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/art/ui/touch_button_jump.png"
|
||||
dest_files=[ "res://.import/touch_button_jump.png-f72afeb370538aa951853dbc52052250.stex" ]
|
||||
dest_files=["res://.godot/imported/touch_button_jump.png-f72afeb370538aa951853dbc52052250.stex"]
|
||||
|
||||
[params]
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/touch_button_left.png-e48f16cfdaae98fdc92a21f20c157c53.stex"
|
||||
type="StreamTexture2D"
|
||||
path="res://.godot/imported/touch_button_left.png-e48f16cfdaae98fdc92a21f20c157c53.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
@@ -10,7 +10,7 @@ metadata={
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/art/ui/touch_button_left.png"
|
||||
dest_files=[ "res://.import/touch_button_left.png-e48f16cfdaae98fdc92a21f20c157c53.stex" ]
|
||||
dest_files=["res://.godot/imported/touch_button_left.png-e48f16cfdaae98fdc92a21f20c157c53.stex"]
|
||||
|
||||
[params]
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/touch_button_right.png-74bf87a3a0fa663fbb3574844de31372.stex"
|
||||
type="StreamTexture2D"
|
||||
path="res://.godot/imported/touch_button_right.png-74bf87a3a0fa663fbb3574844de31372.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
@@ -10,7 +10,7 @@ metadata={
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/art/ui/touch_button_right.png"
|
||||
dest_files=[ "res://.import/touch_button_right.png-74bf87a3a0fa663fbb3574844de31372.stex" ]
|
||||
dest_files=["res://.godot/imported/touch_button_right.png-74bf87a3a0fa663fbb3574844de31372.stex"]
|
||||
|
||||
[params]
|
||||
|
||||
|
||||
@@ -2,12 +2,12 @@
|
||||
|
||||
importer="ogg_vorbis"
|
||||
type="AudioStreamOGGVorbis"
|
||||
path="res://.import/music.ogg-e27216112531ea490cdad574860a53a5.oggstr"
|
||||
path="res://.godot/imported/music.ogg-e27216112531ea490cdad574860a53a5.oggstr"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/audio/music/music.ogg"
|
||||
dest_files=[ "res://.import/music.ogg-e27216112531ea490cdad574860a53a5.oggstr" ]
|
||||
dest_files=["res://.godot/imported/music.ogg-e27216112531ea490cdad574860a53a5.oggstr"]
|
||||
|
||||
[params]
|
||||
|
||||
|
||||
@@ -2,12 +2,12 @@
|
||||
|
||||
importer="wav"
|
||||
type="AudioStreamSample"
|
||||
path="res://.import/coin_pickup.wav-69d455f3063e30fd994846647c281aea.sample"
|
||||
path="res://.godot/imported/coin_pickup.wav-69d455f3063e30fd994846647c281aea.sample"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/audio/sfx/coin_pickup.wav"
|
||||
dest_files=[ "res://.import/coin_pickup.wav-69d455f3063e30fd994846647c281aea.sample" ]
|
||||
dest_files=["res://.godot/imported/coin_pickup.wav-69d455f3063e30fd994846647c281aea.sample"]
|
||||
|
||||
[params]
|
||||
|
||||
|
||||
@@ -2,12 +2,12 @@
|
||||
|
||||
importer="wav"
|
||||
type="AudioStreamSample"
|
||||
path="res://.import/explode.wav-302a3de6d016432bf47477d337a4d553.sample"
|
||||
path="res://.godot/imported/explode.wav-302a3de6d016432bf47477d337a4d553.sample"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/audio/sfx/explode.wav"
|
||||
dest_files=[ "res://.import/explode.wav-302a3de6d016432bf47477d337a4d553.sample" ]
|
||||
dest_files=["res://.godot/imported/explode.wav-302a3de6d016432bf47477d337a4d553.sample"]
|
||||
|
||||
[params]
|
||||
|
||||
|
||||
@@ -2,12 +2,12 @@
|
||||
|
||||
importer="wav"
|
||||
type="AudioStreamSample"
|
||||
path="res://.import/hit.wav-27e178036f6cee6545e9f025a3865a36.sample"
|
||||
path="res://.godot/imported/hit.wav-27e178036f6cee6545e9f025a3865a36.sample"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/audio/sfx/hit.wav"
|
||||
dest_files=[ "res://.import/hit.wav-27e178036f6cee6545e9f025a3865a36.sample" ]
|
||||
dest_files=["res://.godot/imported/hit.wav-27e178036f6cee6545e9f025a3865a36.sample"]
|
||||
|
||||
[params]
|
||||
|
||||
|
||||
@@ -2,12 +2,12 @@
|
||||
|
||||
importer="wav"
|
||||
type="AudioStreamSample"
|
||||
path="res://.import/jump.wav-127418ac4fc0b61a7fed0684053202c7.sample"
|
||||
path="res://.godot/imported/jump.wav-127418ac4fc0b61a7fed0684053202c7.sample"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/audio/sfx/jump.wav"
|
||||
dest_files=[ "res://.import/jump.wav-127418ac4fc0b61a7fed0684053202c7.sample" ]
|
||||
dest_files=["res://.godot/imported/jump.wav-127418ac4fc0b61a7fed0684053202c7.sample"]
|
||||
|
||||
[params]
|
||||
|
||||
|
||||
@@ -2,12 +2,12 @@
|
||||
|
||||
importer="wav"
|
||||
type="AudioStreamSample"
|
||||
path="res://.import/shoot.wav-f3ce9b4ae60220ecd3cf78df7278a10f.sample"
|
||||
path="res://.godot/imported/shoot.wav-f3ce9b4ae60220ecd3cf78df7278a10f.sample"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/audio/sfx/shoot.wav"
|
||||
dest_files=[ "res://.import/shoot.wav-f3ce9b4ae60220ecd3cf78df7278a10f.sample" ]
|
||||
dest_files=["res://.godot/imported/shoot.wav-f3ce9b4ae60220ecd3cf78df7278a10f.sample"]
|
||||
|
||||
[params]
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
[gd_resource type="DynamicFontData" format=2]
|
||||
[gd_resource type="FontData" format=2]
|
||||
|
||||
[resource]
|
||||
antialiased = false
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
[gd_resource type="Theme" load_steps=8 format=2]
|
||||
|
||||
[ext_resource path="res://assets/theme/fonts/kenney_mini_square.tres" type="DynamicFontData" id=1]
|
||||
[ext_resource path="res://assets/theme/fonts/kenney_mini_square.tres" type="FontData" id=1]
|
||||
|
||||
[sub_resource type="StyleBoxFlat" id=1]
|
||||
content_margin_left = 6.0
|
||||
@@ -62,7 +62,7 @@ border_width_right = 1
|
||||
border_width_bottom = 1
|
||||
border_color = Color( 0.41, 0.61, 0.91, 1 )
|
||||
|
||||
[sub_resource type="DynamicFont" id=6]
|
||||
[sub_resource type="Font" id=6]
|
||||
size = 30
|
||||
font_data = ExtResource( 1 )
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex"
|
||||
type="StreamTexture2D"
|
||||
path="res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
@@ -10,7 +10,7 @@ metadata={
|
||||
[deps]
|
||||
|
||||
source_file="res://icon.png"
|
||||
dest_files=[ "res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" ]
|
||||
dest_files=["res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.stex"]
|
||||
|
||||
[params]
|
||||
|
||||
|
||||
@@ -8,37 +8,37 @@
|
||||
|
||||
config_version=4
|
||||
|
||||
_global_script_classes=[ {
|
||||
"base": "KinematicBody2D",
|
||||
"class": "Actor",
|
||||
"language": "GDScript",
|
||||
_global_script_classes=[{
|
||||
"base": "CharacterBody2D",
|
||||
"class": &"Actor",
|
||||
"language": &"GDScript",
|
||||
"path": "res://src/Actors/Actor.gd"
|
||||
}, {
|
||||
"base": "RigidBody2D",
|
||||
"class": "Bullet",
|
||||
"language": "GDScript",
|
||||
"class": &"Bullet",
|
||||
"language": &"GDScript",
|
||||
"path": "res://src/Objects/Bullet.gd"
|
||||
}, {
|
||||
"base": "Area2D",
|
||||
"class": "Coin",
|
||||
"language": "GDScript",
|
||||
"class": &"Coin",
|
||||
"language": &"GDScript",
|
||||
"path": "res://src/Objects/Coin.gd"
|
||||
}, {
|
||||
"base": "Actor",
|
||||
"class": "Enemy",
|
||||
"language": "GDScript",
|
||||
"class": &"Enemy",
|
||||
"language": &"GDScript",
|
||||
"path": "res://src/Actors/Enemy.gd"
|
||||
}, {
|
||||
"base": "Position2D",
|
||||
"class": "Gun",
|
||||
"language": "GDScript",
|
||||
"class": &"Gun",
|
||||
"language": &"GDScript",
|
||||
"path": "res://src/Actors/Gun.gd"
|
||||
}, {
|
||||
"base": "Actor",
|
||||
"class": "Player",
|
||||
"language": "GDScript",
|
||||
"class": &"Player",
|
||||
"language": &"GDScript",
|
||||
"path": "res://src/Actors/Player.gd"
|
||||
} ]
|
||||
}]
|
||||
_global_script_class_icons={
|
||||
"Actor": "",
|
||||
"Bullet": "",
|
||||
@@ -82,7 +82,7 @@ stretch/mode="2d"
|
||||
|
||||
[gdnative]
|
||||
|
||||
singletons=[ ]
|
||||
singletons=[]
|
||||
|
||||
[image_loader]
|
||||
|
||||
@@ -115,107 +115,107 @@ texture={
|
||||
|
||||
jump={
|
||||
"deadzone": 0.5,
|
||||
"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777232,"physical_scancode":0,"unicode":0,"echo":false,"script":null)
|
||||
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777232,"physical_keycode":0,"unicode":0,"echo":false,"script":null)
|
||||
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":0,"pressure":0.0,"pressed":false,"script":null)
|
||||
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":87,"physical_scancode":0,"unicode":0,"echo":false,"script":null)
|
||||
]
|
||||
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":87,"physical_keycode":0,"unicode":0,"echo":false,"script":null)
|
||||
]
|
||||
}
|
||||
move_left={
|
||||
"deadzone": 0.5,
|
||||
"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777231,"physical_scancode":0,"unicode":0,"echo":false,"script":null)
|
||||
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777231,"physical_keycode":0,"unicode":0,"echo":false,"script":null)
|
||||
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":14,"pressure":0.0,"pressed":false,"script":null)
|
||||
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":65,"physical_scancode":0,"unicode":0,"echo":false,"script":null)
|
||||
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":65,"physical_keycode":0,"unicode":0,"echo":false,"script":null)
|
||||
, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":-1.0,"script":null)
|
||||
]
|
||||
]
|
||||
}
|
||||
move_right={
|
||||
"deadzone": 0.5,
|
||||
"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777233,"physical_scancode":0,"unicode":0,"echo":false,"script":null)
|
||||
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777233,"physical_keycode":0,"unicode":0,"echo":false,"script":null)
|
||||
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":15,"pressure":0.0,"pressed":false,"script":null)
|
||||
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":68,"physical_scancode":0,"unicode":0,"echo":false,"script":null)
|
||||
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":68,"physical_keycode":0,"unicode":0,"echo":false,"script":null)
|
||||
, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":1.0,"script":null)
|
||||
]
|
||||
]
|
||||
}
|
||||
shoot={
|
||||
"deadzone": 0.5,
|
||||
"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":32,"physical_scancode":0,"unicode":0,"echo":false,"script":null)
|
||||
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":32,"physical_keycode":0,"unicode":0,"echo":false,"script":null)
|
||||
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":2,"pressure":0.0,"pressed":false,"script":null)
|
||||
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":90,"physical_scancode":0,"unicode":0,"echo":false,"script":null)
|
||||
, Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"button_mask":0,"position":Vector2( 0, 0 ),"global_position":Vector2( 0, 0 ),"factor":1.0,"button_index":1,"pressed":false,"doubleclick":false,"script":null)
|
||||
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777350,"physical_scancode":0,"unicode":0,"echo":false,"script":null)
|
||||
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777238,"physical_scancode":0,"unicode":0,"echo":false,"script":null)
|
||||
]
|
||||
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":90,"physical_keycode":0,"unicode":0,"echo":false,"script":null)
|
||||
, Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"button_mask":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":1,"pressed":false,"double_click":false,"script":null)
|
||||
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777350,"physical_keycode":0,"unicode":0,"echo":false,"script":null)
|
||||
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777238,"physical_keycode":0,"unicode":0,"echo":false,"script":null)
|
||||
]
|
||||
}
|
||||
toggle_fullscreen={
|
||||
"deadzone": 0.5,
|
||||
"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777254,"physical_scancode":0,"unicode":0,"echo":false,"script":null)
|
||||
]
|
||||
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777254,"physical_keycode":0,"unicode":0,"echo":false,"script":null)
|
||||
]
|
||||
}
|
||||
toggle_pause={
|
||||
"deadzone": 0.5,
|
||||
"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777217,"physical_scancode":0,"unicode":0,"echo":false,"script":null)
|
||||
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777217,"physical_keycode":0,"unicode":0,"echo":false,"script":null)
|
||||
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":11,"pressure":0.0,"pressed":false,"script":null)
|
||||
]
|
||||
]
|
||||
}
|
||||
jump_p1={
|
||||
"deadzone": 0.5,
|
||||
"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":87,"physical_scancode":0,"unicode":0,"echo":false,"script":null)
|
||||
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":87,"physical_keycode":0,"unicode":0,"echo":false,"script":null)
|
||||
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":0,"pressure":0.0,"pressed":false,"script":null)
|
||||
]
|
||||
]
|
||||
}
|
||||
move_left_p1={
|
||||
"deadzone": 0.5,
|
||||
"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":65,"physical_scancode":0,"unicode":0,"echo":false,"script":null)
|
||||
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":65,"physical_keycode":0,"unicode":0,"echo":false,"script":null)
|
||||
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":14,"pressure":0.0,"pressed":false,"script":null)
|
||||
, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":-1.0,"script":null)
|
||||
]
|
||||
]
|
||||
}
|
||||
move_right_p1={
|
||||
"deadzone": 0.5,
|
||||
"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":68,"physical_scancode":0,"unicode":0,"echo":false,"script":null)
|
||||
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":68,"physical_keycode":0,"unicode":0,"echo":false,"script":null)
|
||||
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":15,"pressure":0.0,"pressed":false,"script":null)
|
||||
, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":1.0,"script":null)
|
||||
]
|
||||
]
|
||||
}
|
||||
shoot_p1={
|
||||
"deadzone": 0.5,
|
||||
"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":90,"physical_scancode":0,"unicode":0,"echo":false,"script":null)
|
||||
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":32,"physical_scancode":0,"unicode":0,"echo":false,"script":null)
|
||||
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":90,"physical_keycode":0,"unicode":0,"echo":false,"script":null)
|
||||
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":32,"physical_keycode":0,"unicode":0,"echo":false,"script":null)
|
||||
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":2,"pressure":0.0,"pressed":false,"script":null)
|
||||
]
|
||||
]
|
||||
}
|
||||
jump_p2={
|
||||
"deadzone": 0.5,
|
||||
"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777232,"physical_scancode":0,"unicode":0,"echo":false,"script":null)
|
||||
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777232,"physical_keycode":0,"unicode":0,"echo":false,"script":null)
|
||||
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":1,"button_index":0,"pressure":0.0,"pressed":false,"script":null)
|
||||
]
|
||||
]
|
||||
}
|
||||
move_left_p2={
|
||||
"deadzone": 0.5,
|
||||
"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777231,"physical_scancode":0,"unicode":0,"echo":false,"script":null)
|
||||
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777231,"physical_keycode":0,"unicode":0,"echo":false,"script":null)
|
||||
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":1,"button_index":14,"pressure":0.0,"pressed":false,"script":null)
|
||||
, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":1,"axis":0,"axis_value":-1.0,"script":null)
|
||||
]
|
||||
]
|
||||
}
|
||||
move_right_p2={
|
||||
"deadzone": 0.5,
|
||||
"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777233,"physical_scancode":0,"unicode":0,"echo":false,"script":null)
|
||||
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777233,"physical_keycode":0,"unicode":0,"echo":false,"script":null)
|
||||
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":1,"button_index":15,"pressure":0.0,"pressed":false,"script":null)
|
||||
, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":1,"axis":0,"axis_value":1.0,"script":null)
|
||||
]
|
||||
]
|
||||
}
|
||||
shoot_p2={
|
||||
"deadzone": 0.5,
|
||||
"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777350,"physical_scancode":0,"unicode":0,"echo":false,"script":null)
|
||||
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777238,"physical_scancode":0,"unicode":0,"echo":false,"script":null)
|
||||
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777350,"physical_keycode":0,"unicode":0,"echo":false,"script":null)
|
||||
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777238,"physical_keycode":0,"unicode":0,"echo":false,"script":null)
|
||||
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":1,"button_index":2,"pressure":0.0,"pressed":false,"script":null)
|
||||
]
|
||||
]
|
||||
}
|
||||
splitscreen={
|
||||
"deadzone": 0.5,
|
||||
"events": [ Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":10,"pressure":0.0,"pressed":false,"script":null)
|
||||
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777218,"physical_scancode":0,"unicode":0,"echo":false,"script":null)
|
||||
]
|
||||
"events": [Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":10,"pressure":0.0,"pressed":false,"script":null)
|
||||
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777218,"physical_keycode":0,"unicode":0,"echo":false,"script":null)
|
||||
]
|
||||
}
|
||||
|
||||
[layer_names]
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
class_name Actor
|
||||
extends KinematicBody2D
|
||||
extends CharacterBody2D
|
||||
|
||||
# Both the Player and Enemy inherit this scene as they have shared behaviours
|
||||
# such as speed and are affected by gravity.
|
||||
|
||||
|
||||
export var speed = Vector2(150.0, 350.0)
|
||||
onready var gravity = ProjectSettings.get("physics/2d/default_gravity")
|
||||
@export var speed = Vector2(150.0, 350.0)
|
||||
@onready var gravity = ProjectSettings.get("physics/2d/default_gravity")
|
||||
|
||||
const FLOOR_NORMAL = Vector2.UP
|
||||
|
||||
|
||||
@@ -9,11 +9,11 @@ enum State {
|
||||
|
||||
var _state = State.WALKING
|
||||
|
||||
onready var platform_detector = $PlatformDetector
|
||||
onready var floor_detector_left = $FloorDetectorLeft
|
||||
onready var floor_detector_right = $FloorDetectorRight
|
||||
onready var sprite = $Sprite
|
||||
onready var animation_player = $AnimationPlayer
|
||||
@onready var platform_detector = $PlatformDetector
|
||||
@onready var floor_detector_left = $FloorDetectorLeft
|
||||
@onready var floor_detector_right = $FloorDetectorRight
|
||||
@onready var sprite = $Sprite2D
|
||||
@onready var animation_player = $AnimationPlayer
|
||||
|
||||
# This function is called when the scene enters the scene tree.
|
||||
# We can initialize variables here.
|
||||
@@ -46,9 +46,10 @@ func _physics_process(_delta):
|
||||
_velocity.x *= -1
|
||||
|
||||
# We only update the y value of _velocity as we want to handle the horizontal movement ourselves.
|
||||
_velocity.y = move_and_slide(_velocity, FLOOR_NORMAL).y
|
||||
# TODO: This information should be set to the CharacterBody properties instead of arguments.
|
||||
move_and_slide(_velocity, FLOOR_NORMAL).y
|
||||
|
||||
# We flip the Sprite depending on which way the enemy is moving.
|
||||
# We flip the Sprite2D depending on which way the enemy is moving.
|
||||
if _velocity.x > 0:
|
||||
sprite.scale.x = 1
|
||||
else:
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
[gd_scene load_steps=13 format=2]
|
||||
|
||||
[ext_resource path="res://assets/art/player/bullet/bullet.png" type="Texture" id=1]
|
||||
[ext_resource path="res://assets/art/player/bullet/bullet.png" type="Texture2D" id=1]
|
||||
[ext_resource path="res://assets/audio/sfx/explode.wav" type="AudioStream" id=2]
|
||||
[ext_resource path="res://assets/audio/sfx/hit.wav" type="AudioStream" id=3]
|
||||
[ext_resource path="res://assets/art/enemy/enemy.png" type="Texture" id=4]
|
||||
[ext_resource path="res://assets/art/enemy/enemy.png" type="Texture2D" id=4]
|
||||
[ext_resource path="res://src/Actors/Enemy.gd" type="Script" id=5]
|
||||
|
||||
[sub_resource type="CanvasItemMaterial" id=1]
|
||||
@@ -12,40 +12,40 @@
|
||||
resource_name = "destroy"
|
||||
length = 1.5
|
||||
tracks/0/type = "value"
|
||||
tracks/0/path = NodePath("Sprite:frame")
|
||||
tracks/0/path = NodePath("Sprite2D:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/keys = {
|
||||
"times": PoolRealArray( 0 ),
|
||||
"transitions": PoolRealArray( 1 ),
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [ 7 ]
|
||||
"values": [7]
|
||||
}
|
||||
tracks/1/type = "value"
|
||||
tracks/1/path = NodePath("Sprite:rotation_degrees")
|
||||
tracks/1/path = NodePath("Sprite2D:rotation_degrees")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/keys = {
|
||||
"times": PoolRealArray( 0, 0.8 ),
|
||||
"transitions": PoolRealArray( 0.0796601, 1 ),
|
||||
"times": PackedFloat32Array(0, 0.8),
|
||||
"transitions": PackedFloat32Array(0.0796601, 1),
|
||||
"update": 0,
|
||||
"values": [ 0.0, 180.0 ]
|
||||
"values": [0.0, 180.0]
|
||||
}
|
||||
tracks/2/type = "value"
|
||||
tracks/2/path = NodePath("Sprite:self_modulate")
|
||||
tracks/2/path = NodePath("Sprite2D:self_modulate")
|
||||
tracks/2/interp = 1
|
||||
tracks/2/loop_wrap = true
|
||||
tracks/2/imported = false
|
||||
tracks/2/enabled = true
|
||||
tracks/2/keys = {
|
||||
"times": PoolRealArray( 0, 0.5, 1.1 ),
|
||||
"transitions": PoolRealArray( 1, 1, 1 ),
|
||||
"times": PackedFloat32Array(0, 0.5, 1.1),
|
||||
"transitions": PackedFloat32Array(1, 1, 1),
|
||||
"update": 0,
|
||||
"values": [ Color( 1, 1, 1, 1 ), Color( 1, 1, 1, 1 ), Color( 1, 1, 1, 0 ) ]
|
||||
"values": [Color(1, 1, 1, 1), Color(1, 1, 1, 1), Color(1, 1, 1, 0)]
|
||||
}
|
||||
tracks/3/type = "value"
|
||||
tracks/3/path = NodePath("Explosion:emitting")
|
||||
@@ -54,10 +54,10 @@ tracks/3/loop_wrap = true
|
||||
tracks/3/imported = false
|
||||
tracks/3/enabled = true
|
||||
tracks/3/keys = {
|
||||
"times": PoolRealArray( 0, 1 ),
|
||||
"transitions": PoolRealArray( 1, 1 ),
|
||||
"times": PackedFloat32Array(0, 1),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"update": 1,
|
||||
"values": [ false, true ]
|
||||
"values": [false, true]
|
||||
}
|
||||
tracks/4/type = "value"
|
||||
tracks/4/path = NodePath("Explosion:process_material:scale")
|
||||
@@ -66,10 +66,10 @@ tracks/4/loop_wrap = true
|
||||
tracks/4/imported = false
|
||||
tracks/4/enabled = true
|
||||
tracks/4/keys = {
|
||||
"times": PoolRealArray( 0.6, 1 ),
|
||||
"transitions": PoolRealArray( 1, 1 ),
|
||||
"times": PackedFloat32Array(0.6, 1),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"update": 0,
|
||||
"values": [ 1.0, 4.0 ]
|
||||
"values": [1.0, 4.0]
|
||||
}
|
||||
tracks/5/type = "value"
|
||||
tracks/5/path = NodePath("Hit:playing")
|
||||
@@ -78,10 +78,10 @@ tracks/5/loop_wrap = true
|
||||
tracks/5/imported = false
|
||||
tracks/5/enabled = true
|
||||
tracks/5/keys = {
|
||||
"times": PoolRealArray( 0.00999999 ),
|
||||
"transitions": PoolRealArray( 1 ),
|
||||
"times": PackedFloat32Array(0.00999999),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [ true ]
|
||||
"values": [true]
|
||||
}
|
||||
tracks/6/type = "value"
|
||||
tracks/6/path = NodePath("Explode:playing")
|
||||
@@ -90,10 +90,10 @@ tracks/6/loop_wrap = true
|
||||
tracks/6/imported = false
|
||||
tracks/6/enabled = true
|
||||
tracks/6/keys = {
|
||||
"times": PoolRealArray( 0.8 ),
|
||||
"transitions": PoolRealArray( 1 ),
|
||||
"times": PackedFloat32Array(0.8),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [ true ]
|
||||
"values": [true]
|
||||
}
|
||||
tracks/7/type = "method"
|
||||
tracks/7/path = NodePath(".")
|
||||
@@ -102,12 +102,12 @@ tracks/7/loop_wrap = true
|
||||
tracks/7/imported = false
|
||||
tracks/7/enabled = true
|
||||
tracks/7/keys = {
|
||||
"times": PoolRealArray( 1.5 ),
|
||||
"transitions": PoolRealArray( 1 ),
|
||||
"values": [ {
|
||||
"args": [ ],
|
||||
"times": PackedFloat32Array(1.5),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"values": [{
|
||||
"args": [],
|
||||
"method": "queue_free"
|
||||
} ]
|
||||
}]
|
||||
}
|
||||
tracks/8/type = "value"
|
||||
tracks/8/path = NodePath(".:collision_layer")
|
||||
@@ -116,22 +116,22 @@ tracks/8/loop_wrap = true
|
||||
tracks/8/imported = false
|
||||
tracks/8/enabled = true
|
||||
tracks/8/keys = {
|
||||
"times": PoolRealArray( 0 ),
|
||||
"transitions": PoolRealArray( 1 ),
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [ 0 ]
|
||||
"values": [0]
|
||||
}
|
||||
tracks/9/type = "value"
|
||||
tracks/9/path = NodePath("Sprite:position")
|
||||
tracks/9/path = NodePath("Sprite2D:position")
|
||||
tracks/9/interp = 1
|
||||
tracks/9/loop_wrap = true
|
||||
tracks/9/imported = false
|
||||
tracks/9/enabled = true
|
||||
tracks/9/keys = {
|
||||
"times": PoolRealArray( 0, 0.2, 0.4 ),
|
||||
"transitions": PoolRealArray( 2.2974, 0.183011, 1 ),
|
||||
"times": PackedFloat32Array(0, 0.2, 0.4),
|
||||
"transitions": PackedFloat32Array(2.2974, 0.183011, 1),
|
||||
"update": 0,
|
||||
"values": [ Vector2( 0, 0 ), Vector2( 0, -32 ), Vector2( 0, 0 ) ]
|
||||
"values": [Vector2(0, 0), Vector2(0, -32), Vector2(0, 0)]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id=3]
|
||||
@@ -139,16 +139,16 @@ length = 6.75
|
||||
loop = true
|
||||
step = 0.25
|
||||
tracks/0/type = "value"
|
||||
tracks/0/path = NodePath("Sprite:frame")
|
||||
tracks/0/path = NodePath("Sprite2D:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/keys = {
|
||||
"times": PoolRealArray( 0, 0.75, 1.5, 2.25, 3, 3.75, 4.5, 5.25, 6, 6.75 ),
|
||||
"transitions": PoolRealArray( 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ),
|
||||
"times": PackedFloat32Array(0, 0.75, 1.5, 2.25, 3, 3.75, 4.5, 5.25, 6, 6.75),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1),
|
||||
"update": 1,
|
||||
"values": [ 5, 6, 5, 6, 5, 6, 7, 6, 7, 5 ]
|
||||
"values": [5, 6, 5, 6, 5, 6, 7, 6, 7, 5]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id=4]
|
||||
@@ -156,16 +156,16 @@ length = 1.25
|
||||
loop = true
|
||||
step = 0.25
|
||||
tracks/0/type = "value"
|
||||
tracks/0/path = NodePath("Sprite:frame")
|
||||
tracks/0/path = NodePath("Sprite2D:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/keys = {
|
||||
"times": PoolRealArray( 0, 0.25, 0.5, 0.75, 1, 1.25 ),
|
||||
"transitions": PoolRealArray( 1, 1, 1, 1, 1, 1 ),
|
||||
"times": PackedFloat32Array(0, 0.25, 0.5, 0.75, 1, 1.25),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1),
|
||||
"update": 1,
|
||||
"values": [ 0, 1, 2, 3, 4, 0 ]
|
||||
"values": [0, 1, 2, 3, 4, 0]
|
||||
}
|
||||
|
||||
[sub_resource type="CapsuleShape2D" id=5]
|
||||
@@ -176,34 +176,34 @@ height = 7.0
|
||||
blend_mode = 1
|
||||
|
||||
[sub_resource type="Gradient" id=7]
|
||||
offsets = PoolRealArray( 0.5, 1 )
|
||||
colors = PoolColorArray( 1, 1, 1, 1, 0, 0, 0, 1 )
|
||||
offsets = PackedFloat32Array(0.5, 1)
|
||||
colors = PackedColorArray(1, 1, 1, 1, 0, 0, 0, 1)
|
||||
|
||||
[node name="Enemy" type="KinematicBody2D"]
|
||||
[node name="Enemy" type="CharacterBody2D"]
|
||||
collision_layer = 2
|
||||
collision_mask = 24
|
||||
script = ExtResource( 5 )
|
||||
speed = Vector2( 75, 250 )
|
||||
speed = Vector2(75, 250)
|
||||
|
||||
[node name="PlatformDetector" type="RayCast2D" parent="."]
|
||||
position = Vector2( 0, 6 )
|
||||
position = Vector2(0, 6)
|
||||
enabled = true
|
||||
cast_to = Vector2( 0, 8 )
|
||||
cast_to = Vector2(0, 8)
|
||||
collision_mask = 8
|
||||
|
||||
[node name="FloorDetectorLeft" type="RayCast2D" parent="."]
|
||||
position = Vector2( -15, -4 )
|
||||
position = Vector2(-15, -4)
|
||||
enabled = true
|
||||
cast_to = Vector2( 0, 35 )
|
||||
cast_to = Vector2(0, 35)
|
||||
collision_mask = 24
|
||||
|
||||
[node name="FloorDetectorRight" type="RayCast2D" parent="."]
|
||||
position = Vector2( 15.5, -3 )
|
||||
position = Vector2(15.5, -3)
|
||||
enabled = true
|
||||
cast_to = Vector2( 0, 35 )
|
||||
cast_to = Vector2(0, 35)
|
||||
collision_mask = 24
|
||||
|
||||
[node name="Sprite" type="Sprite" parent="."]
|
||||
[node name="Sprite2D" type="Sprite2D" parent="."]
|
||||
material = SubResource( 1 )
|
||||
texture = ExtResource( 4 )
|
||||
flip_h = true
|
||||
@@ -220,7 +220,7 @@ rotation = -1.5708
|
||||
shape = SubResource( 5 )
|
||||
|
||||
[node name="Explosion" type="CPUParticles2D" parent="."]
|
||||
self_modulate = Color( 1, 1, 1, 0.12 )
|
||||
self_modulate = Color(1, 1, 1, 0.12)
|
||||
material = SubResource( 6 )
|
||||
emitting = false
|
||||
amount = 32
|
||||
@@ -233,7 +233,7 @@ texture = ExtResource( 1 )
|
||||
emission_shape = 1
|
||||
emission_sphere_radius = 8.0
|
||||
spread = 180.0
|
||||
gravity = Vector2( 0, 250 )
|
||||
gravity = Vector2(0, 250)
|
||||
initial_velocity = 120.0
|
||||
initial_velocity_random = 0.5
|
||||
angle_random = 1.0
|
||||
|
||||
@@ -7,19 +7,19 @@ extends Position2D
|
||||
const BULLET_VELOCITY = 500.0
|
||||
const Bullet = preload("res://src/Objects/Bullet.tscn")
|
||||
|
||||
onready var sound_shoot = $Shoot
|
||||
onready var timer = $Cooldown
|
||||
@onready var sound_shoot = $Shoot
|
||||
@onready var timer = $Cooldown
|
||||
|
||||
|
||||
# This method is only called by Player.gd.
|
||||
func shoot(direction = 1):
|
||||
if not timer.is_stopped():
|
||||
return false
|
||||
var bullet = Bullet.instance()
|
||||
var bullet = Bullet.instantiate()
|
||||
bullet.global_position = global_position
|
||||
bullet.linear_velocity = Vector2(direction * BULLET_VELOCITY, 0)
|
||||
|
||||
bullet.set_as_toplevel(true)
|
||||
bullet.set_as_top_level(true)
|
||||
add_child(bullet)
|
||||
sound_shoot.play()
|
||||
timer.start()
|
||||
|
||||
@@ -7,28 +7,28 @@ signal collect_coin()
|
||||
|
||||
const FLOOR_DETECT_DISTANCE = 20.0
|
||||
|
||||
export(String) var action_suffix = ""
|
||||
@export var action_suffix: String = ""
|
||||
|
||||
onready var platform_detector = $PlatformDetector
|
||||
onready var animation_player = $AnimationPlayer
|
||||
onready var shoot_timer = $ShootAnimation
|
||||
onready var sprite = $Sprite
|
||||
onready var sound_jump = $Jump
|
||||
onready var gun = sprite.get_node(@"Gun")
|
||||
@onready var platform_detector = $PlatformDetector
|
||||
@onready var animation_player = $AnimationPlayer
|
||||
@onready var shoot_timer = $ShootAnimation
|
||||
@onready var sprite = $Sprite2D
|
||||
@onready var sound_jump = $Jump
|
||||
@onready var gun = sprite.get_node(^"Gun")
|
||||
|
||||
|
||||
func _ready():
|
||||
# Static types are necessary here to avoid warnings.
|
||||
var camera: Camera2D = $Camera
|
||||
var camera: Camera2D = $Camera3D
|
||||
if action_suffix == "_p1":
|
||||
camera.custom_viewport = $"../.."
|
||||
yield(get_tree(), "idle_frame")
|
||||
await get_tree().process_frame
|
||||
camera.make_current()
|
||||
elif action_suffix == "_p2":
|
||||
var viewport: Viewport = $"../../../../ViewportContainer2/Viewport2"
|
||||
viewport.world_2d = ($"../.." as Viewport).world_2d
|
||||
var viewport: SubViewport = $"../../../../ViewportContainer2/Viewport2"
|
||||
viewport.world_2d = ($"../.." as SubViewport).world_2d
|
||||
camera.custom_viewport = viewport
|
||||
yield(get_tree(), "idle_frame")
|
||||
await get_tree().process_frame
|
||||
camera.make_current()
|
||||
|
||||
|
||||
@@ -64,11 +64,12 @@ func _physics_process(_delta):
|
||||
if direction.y == 0.0:
|
||||
snap_vector = Vector2.DOWN * FLOOR_DETECT_DISTANCE
|
||||
var is_on_platform = platform_detector.is_colliding()
|
||||
_velocity = move_and_slide_with_snap(
|
||||
# TODO: This information should be set to the CharacterBody properties instead of arguments.
|
||||
move_and_slide(
|
||||
_velocity, snap_vector, FLOOR_NORMAL, not is_on_platform, 4, 0.9, false
|
||||
)
|
||||
|
||||
# When the character’s direction changes, we want to to scale the Sprite accordingly to flip it.
|
||||
# When the character’s direction changes, we want to to scale the Sprite2D accordingly to flip it.
|
||||
# This will make Robi face left or right depending on the direction you move.
|
||||
if direction.x != 0:
|
||||
if direction.x > 0:
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
[gd_scene load_steps=21 format=2]
|
||||
|
||||
[ext_resource path="res://src/Actors/Player.gd" type="Script" id=1]
|
||||
[ext_resource path="res://assets/art/player/robot_demo.png" type="Texture" id=2]
|
||||
[ext_resource path="res://assets/art/player/robot_demo.png" type="Texture2D" id=2]
|
||||
[ext_resource path="res://assets/audio/sfx/jump.wav" type="AudioStream" id=3]
|
||||
[ext_resource path="res://assets/audio/sfx/shoot.wav" type="AudioStream" id=4]
|
||||
[ext_resource path="res://assets/art/ui/touch_button_left.png" type="Texture" id=5]
|
||||
[ext_resource path="res://assets/art/ui/touch_button_right.png" type="Texture" id=6]
|
||||
[ext_resource path="res://assets/art/ui/touch_button_jump.png" type="Texture" id=7]
|
||||
[ext_resource path="res://assets/art/ui/touch_button_fire.png" type="Texture" id=8]
|
||||
[ext_resource path="res://assets/art/ui/touch_button_left.png" type="Texture2D" id=5]
|
||||
[ext_resource path="res://assets/art/ui/touch_button_right.png" type="Texture2D" id=6]
|
||||
[ext_resource path="res://assets/art/ui/touch_button_jump.png" type="Texture2D" id=7]
|
||||
[ext_resource path="res://assets/art/ui/touch_button_fire.png" type="Texture2D" id=8]
|
||||
[ext_resource path="res://src/Actors/Gun.gd" type="Script" id=9]
|
||||
|
||||
[sub_resource type="Animation" id=1]
|
||||
@@ -16,16 +16,16 @@ length = 0.01
|
||||
loop = true
|
||||
step = 0.25
|
||||
tracks/0/type = "value"
|
||||
tracks/0/path = NodePath("Sprite:frame")
|
||||
tracks/0/path = NodePath("Sprite2D:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/keys = {
|
||||
"times": PoolRealArray( 0 ),
|
||||
"transitions": PoolRealArray( 1 ),
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [ 22 ]
|
||||
"values": [22]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id=2]
|
||||
@@ -34,16 +34,16 @@ length = 0.01
|
||||
loop = true
|
||||
step = 0.25
|
||||
tracks/0/type = "value"
|
||||
tracks/0/path = NodePath("Sprite:frame")
|
||||
tracks/0/path = NodePath("Sprite2D:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/keys = {
|
||||
"times": PoolRealArray( 0 ),
|
||||
"transitions": PoolRealArray( 1 ),
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [ 21 ]
|
||||
"values": [21]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id=3]
|
||||
@@ -52,16 +52,16 @@ length = 0.5
|
||||
loop = true
|
||||
step = 0.25
|
||||
tracks/0/type = "value"
|
||||
tracks/0/path = NodePath("Sprite:frame")
|
||||
tracks/0/path = NodePath("Sprite2D:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/keys = {
|
||||
"times": PoolRealArray( 0 ),
|
||||
"transitions": PoolRealArray( 1 ),
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [ 26 ]
|
||||
"values": [26]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id=4]
|
||||
@@ -69,16 +69,16 @@ length = 7.0
|
||||
loop = true
|
||||
step = 0.25
|
||||
tracks/0/type = "value"
|
||||
tracks/0/path = NodePath("Sprite:frame")
|
||||
tracks/0/path = NodePath("Sprite2D:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/keys = {
|
||||
"times": PoolRealArray( 0, 1.25, 1.5, 2, 4.5, 4.75, 5, 5.25 ),
|
||||
"transitions": PoolRealArray( 1, 1, 1, 1, 1, 1, 1, 1 ),
|
||||
"times": PackedFloat32Array(0, 1.25, 1.5, 2, 4.5, 4.75, 5, 5.25),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1),
|
||||
"update": 1,
|
||||
"values": [ 16, 17, 18, 16, 19, 20, 19, 16 ]
|
||||
"values": [16, 17, 18, 16, 19, 20, 19, 16]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id=5]
|
||||
@@ -86,16 +86,16 @@ length = 0.5
|
||||
loop = true
|
||||
step = 0.25
|
||||
tracks/0/type = "value"
|
||||
tracks/0/path = NodePath("Sprite:frame")
|
||||
tracks/0/path = NodePath("Sprite2D:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/keys = {
|
||||
"times": PoolRealArray( 0 ),
|
||||
"transitions": PoolRealArray( 1 ),
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [ 25 ]
|
||||
"values": [25]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id=6]
|
||||
@@ -103,16 +103,16 @@ length = 0.5
|
||||
loop = true
|
||||
step = 0.25
|
||||
tracks/0/type = "value"
|
||||
tracks/0/path = NodePath("Sprite:frame")
|
||||
tracks/0/path = NodePath("Sprite2D:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/keys = {
|
||||
"times": PoolRealArray( 0, 0.25, 0.5 ),
|
||||
"transitions": PoolRealArray( 1, 1, 1 ),
|
||||
"times": PackedFloat32Array(0, 0.25, 0.5),
|
||||
"transitions": PackedFloat32Array(1, 1, 1),
|
||||
"update": 1,
|
||||
"values": [ 23, 24, 23 ]
|
||||
"values": [23, 24, 23]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id=7]
|
||||
@@ -120,16 +120,16 @@ length = 0.5
|
||||
loop = true
|
||||
step = 0.25
|
||||
tracks/0/type = "value"
|
||||
tracks/0/path = NodePath("Sprite:frame")
|
||||
tracks/0/path = NodePath("Sprite2D:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/keys = {
|
||||
"times": PoolRealArray( 0 ),
|
||||
"transitions": PoolRealArray( 1 ),
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [ 26 ]
|
||||
"values": [26]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id=8]
|
||||
@@ -137,16 +137,16 @@ length = 1.25
|
||||
loop = true
|
||||
step = 0.25
|
||||
tracks/0/type = "value"
|
||||
tracks/0/path = NodePath("Sprite:frame")
|
||||
tracks/0/path = NodePath("Sprite2D:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/keys = {
|
||||
"times": PoolRealArray( 0, 0.25, 0.5, 0.75, 1, 1.25 ),
|
||||
"transitions": PoolRealArray( 1, 1, 1, 1, 1, 1 ),
|
||||
"times": PackedFloat32Array(0, 0.25, 0.5, 0.75, 1, 1.25),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1),
|
||||
"update": 1,
|
||||
"values": [ 0, 1, 2, 3, 4, 0 ]
|
||||
"values": [0, 1, 2, 3, 4, 0]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id=9]
|
||||
@@ -154,16 +154,16 @@ length = 1.25
|
||||
loop = true
|
||||
step = 0.25
|
||||
tracks/0/type = "value"
|
||||
tracks/0/path = NodePath("Sprite:frame")
|
||||
tracks/0/path = NodePath("Sprite2D:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/keys = {
|
||||
"times": PoolRealArray( 0, 0.25, 0.5, 0.75, 1, 1.25 ),
|
||||
"transitions": PoolRealArray( 1, 1, 1, 1, 1, 1 ),
|
||||
"times": PackedFloat32Array(0, 0.25, 0.5, 0.75, 1, 1.25),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1),
|
||||
"update": 1,
|
||||
"values": [ 5, 6, 7, 8, 9, 5 ]
|
||||
"values": [5, 6, 7, 8, 9, 5]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id=10]
|
||||
@@ -171,22 +171,22 @@ length = 1.25
|
||||
loop = true
|
||||
step = 0.25
|
||||
tracks/0/type = "value"
|
||||
tracks/0/path = NodePath("Sprite:frame")
|
||||
tracks/0/path = NodePath("Sprite2D:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/keys = {
|
||||
"times": PoolRealArray( 0, 0.25, 0.5, 0.75, 1, 1.25 ),
|
||||
"transitions": PoolRealArray( 1, 1, 1, 1, 1, 1 ),
|
||||
"times": PackedFloat32Array(0, 0.25, 0.5, 0.75, 1, 1.25),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1),
|
||||
"update": 1,
|
||||
"values": [ 10, 11, 12, 13, 14, 5 ]
|
||||
"values": [10, 11, 12, 13, 14, 5]
|
||||
}
|
||||
|
||||
[sub_resource type="RectangleShape2D" id=11]
|
||||
extents = Vector2( 10, 14 )
|
||||
extents = Vector2(10, 14)
|
||||
|
||||
[node name="Player" type="KinematicBody2D"]
|
||||
[node name="Player" type="CharacterBody2D"]
|
||||
collision_mask = 30
|
||||
script = ExtResource( 1 )
|
||||
|
||||
@@ -197,25 +197,25 @@ one_shot = true
|
||||
|
||||
[node name="PlatformDetector" type="RayCast2D" parent="."]
|
||||
enabled = true
|
||||
cast_to = Vector2( 0, 6 )
|
||||
cast_to = Vector2(0, 6)
|
||||
collision_mask = 8
|
||||
|
||||
[node name="Sprite" type="Sprite" parent="."]
|
||||
position = Vector2( 0, -14 )
|
||||
[node name="Sprite2D" type="Sprite2D" parent="."]
|
||||
position = Vector2(0, -14)
|
||||
texture = ExtResource( 2 )
|
||||
hframes = 16
|
||||
vframes = 2
|
||||
frame = 16
|
||||
|
||||
[node name="Gun" type="Position2D" parent="Sprite"]
|
||||
position = Vector2( 14, 1 )
|
||||
[node name="Gun" type="Position2D" parent="Sprite2D"]
|
||||
position = Vector2(14, 1)
|
||||
script = ExtResource( 9 )
|
||||
|
||||
[node name="Shoot" type="AudioStreamPlayer2D" parent="Sprite/Gun"]
|
||||
position = Vector2( -30.6589, -6.13176 )
|
||||
[node name="Shoot" type="AudioStreamPlayer2D" parent="Sprite2D/Gun"]
|
||||
position = Vector2(-30.6589, -6.13176)
|
||||
stream = ExtResource( 4 )
|
||||
|
||||
[node name="Cooldown" type="Timer" parent="Sprite/Gun"]
|
||||
[node name="Cooldown" type="Timer" parent="Sprite2D/Gun"]
|
||||
process_mode = 0
|
||||
wait_time = 0.3
|
||||
one_shot = true
|
||||
@@ -233,14 +233,14 @@ anims/run = SubResource( 8 )
|
||||
anims/run_weapon = SubResource( 9 )
|
||||
anims/standing_weapon_ready = SubResource( 10 )
|
||||
|
||||
[node name="Camera" type="Camera2D" parent="."]
|
||||
position = Vector2( 0, -28 )
|
||||
[node name="Camera3D" type="Camera2D" parent="."]
|
||||
position = Vector2(0, -28)
|
||||
current = true
|
||||
zoom = Vector2( 0.5, 0.5 )
|
||||
zoom = Vector2(0.5, 0.5)
|
||||
process_mode = 0
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
|
||||
position = Vector2( 0, -14 )
|
||||
position = Vector2(0, -14)
|
||||
shape = SubResource( 11 )
|
||||
|
||||
[node name="Jump" type="AudioStreamPlayer2D" parent="."]
|
||||
@@ -250,31 +250,31 @@ stream = ExtResource( 3 )
|
||||
layer = 0
|
||||
|
||||
[node name="Left" type="TouchScreenButton" parent="UI"]
|
||||
position = Vector2( 27.7593, 360.87 )
|
||||
scale = Vector2( 1.49157, 1.46265 )
|
||||
position = Vector2(27.7593, 360.87)
|
||||
scale = Vector2(1.49157, 1.46265)
|
||||
normal = ExtResource( 5 )
|
||||
passby_press = true
|
||||
action = "move_left"
|
||||
visibility_mode = 1
|
||||
|
||||
[node name="Right" type="TouchScreenButton" parent="UI"]
|
||||
position = Vector2( 121.542, 361.415 )
|
||||
scale = Vector2( 1.49157, 1.46265 )
|
||||
position = Vector2(121.542, 361.415)
|
||||
scale = Vector2(1.49157, 1.46265)
|
||||
normal = ExtResource( 6 )
|
||||
passby_press = true
|
||||
action = "move_right"
|
||||
visibility_mode = 1
|
||||
|
||||
[node name="Jump" type="TouchScreenButton" parent="UI"]
|
||||
position = Vector2( 666.224, 359.02 )
|
||||
scale = Vector2( 1.49157, 1.46265 )
|
||||
position = Vector2(666.224, 359.02)
|
||||
scale = Vector2(1.49157, 1.46265)
|
||||
normal = ExtResource( 7 )
|
||||
action = "jump"
|
||||
visibility_mode = 1
|
||||
|
||||
[node name="Fire" type="TouchScreenButton" parent="UI"]
|
||||
position = Vector2( 668.073, 262.788 )
|
||||
scale = Vector2( 1.49157, 1.46265 )
|
||||
position = Vector2(668.073, 262.788)
|
||||
scale = Vector2(1.49157, 1.46265)
|
||||
normal = ExtResource( 8 )
|
||||
action = "shoot"
|
||||
visibility_mode = 1
|
||||
|
||||
@@ -8,7 +8,7 @@ const LIMIT_BOTTOM = 690
|
||||
func _ready():
|
||||
for child in get_children():
|
||||
if child is Player:
|
||||
var camera = child.get_node("Camera")
|
||||
var camera = child.get_node(^"Camera3D")
|
||||
camera.limit_left = LIMIT_LEFT
|
||||
camera.limit_top = LIMIT_TOP
|
||||
camera.limit_right = LIMIT_RIGHT
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -2,7 +2,7 @@ extends AudioStreamPlayer
|
||||
|
||||
const DOUBLE_VOLUME_DB = 6 # Do not change. Represents doubling of sound pressure.
|
||||
|
||||
export(int) var base_volume_db = -14
|
||||
@export var base_volume_db: int = -14
|
||||
|
||||
func _ready():
|
||||
# To avoid AudioStreamPlayer2D sounds playing on top of each other and
|
||||
|
||||
@@ -1,174 +1,174 @@
|
||||
[gd_scene load_steps=7 format=2]
|
||||
|
||||
[ext_resource path="res://assets/art/background/distant_platforms_2.png" type="Texture" id=1]
|
||||
[ext_resource path="res://assets/art/background/sky.png" type="Texture" id=2]
|
||||
[ext_resource path="res://assets/art/background/cloud_1.png" type="Texture" id=3]
|
||||
[ext_resource path="res://assets/art/background/cloud_2.png" type="Texture" id=4]
|
||||
[ext_resource path="res://assets/art/background/cloud_3.png" type="Texture" id=5]
|
||||
[ext_resource path="res://assets/art/background/distant_platforms_1.png" type="Texture" id=6]
|
||||
[ext_resource path="res://assets/art/background/distant_platforms_2.png" type="Texture2D" id=1]
|
||||
[ext_resource path="res://assets/art/background/sky.png" type="Texture2D" id=2]
|
||||
[ext_resource path="res://assets/art/background/cloud_1.png" type="Texture2D" id=3]
|
||||
[ext_resource path="res://assets/art/background/cloud_2.png" type="Texture2D" id=4]
|
||||
[ext_resource path="res://assets/art/background/cloud_3.png" type="Texture2D" id=5]
|
||||
[ext_resource path="res://assets/art/background/distant_platforms_1.png" type="Texture2D" id=6]
|
||||
|
||||
[node name="ParallaxBackground" type="ParallaxBackground"]
|
||||
scroll_base_scale = Vector2( 0.4, 0 )
|
||||
scroll_base_scale = Vector2(0.4, 0)
|
||||
|
||||
[node name="Sky" type="ParallaxLayer" parent="."]
|
||||
motion_mirroring = Vector2( 400, 0 )
|
||||
motion_mirroring = Vector2(400, 0)
|
||||
|
||||
[node name="Sprite" type="Sprite" parent="Sky"]
|
||||
scale = Vector2( 64, 0.94 )
|
||||
[node name="Sprite2D" type="Sprite2D" parent="Sky"]
|
||||
scale = Vector2(64, 0.94)
|
||||
texture = ExtResource( 2 )
|
||||
centered = false
|
||||
|
||||
[node name="Clouds" type="ParallaxLayer" parent="."]
|
||||
motion_scale = Vector2( 0.1, 1 )
|
||||
motion_offset = Vector2( -550, 0 )
|
||||
motion_scale = Vector2(0.1, 1)
|
||||
motion_offset = Vector2(-550, 0)
|
||||
|
||||
[node name="CloudGroup1" type="Node2D" parent="Clouds"]
|
||||
position = Vector2( -780, 0 )
|
||||
position = Vector2(-780, 0)
|
||||
|
||||
[node name="Sprite1" type="Sprite" parent="Clouds/CloudGroup1"]
|
||||
position = Vector2( -200, 120 )
|
||||
[node name="Sprite1" type="Sprite2D" parent="Clouds/CloudGroup1"]
|
||||
position = Vector2(-200, 120)
|
||||
texture = ExtResource( 3 )
|
||||
centered = false
|
||||
|
||||
[node name="Sprite2" type="Sprite" parent="Clouds/CloudGroup1"]
|
||||
position = Vector2( 100, 10 )
|
||||
[node name="Sprite2" type="Sprite2D" parent="Clouds/CloudGroup1"]
|
||||
position = Vector2(100, 10)
|
||||
texture = ExtResource( 3 )
|
||||
centered = false
|
||||
|
||||
[node name="Sprite3" type="Sprite" parent="Clouds/CloudGroup1"]
|
||||
position = Vector2( -60, 40 )
|
||||
[node name="Sprite3" type="Sprite2D" parent="Clouds/CloudGroup1"]
|
||||
position = Vector2(-60, 40)
|
||||
texture = ExtResource( 4 )
|
||||
centered = false
|
||||
|
||||
[node name="Sprite4" type="Sprite" parent="Clouds/CloudGroup1"]
|
||||
position = Vector2( 150, 65 )
|
||||
[node name="Sprite4" type="Sprite2D" parent="Clouds/CloudGroup1"]
|
||||
position = Vector2(150, 65)
|
||||
texture = ExtResource( 4 )
|
||||
centered = false
|
||||
|
||||
[node name="Sprite5" type="Sprite" parent="Clouds/CloudGroup1"]
|
||||
position = Vector2( 15, 75 )
|
||||
[node name="Sprite5" type="Sprite2D" parent="Clouds/CloudGroup1"]
|
||||
position = Vector2(15, 75)
|
||||
texture = ExtResource( 5 )
|
||||
centered = false
|
||||
|
||||
[node name="Sprite6" type="Sprite" parent="Clouds/CloudGroup1"]
|
||||
position = Vector2( 225, 35 )
|
||||
[node name="Sprite6" type="Sprite2D" parent="Clouds/CloudGroup1"]
|
||||
position = Vector2(225, 35)
|
||||
texture = ExtResource( 5 )
|
||||
centered = false
|
||||
|
||||
[node name="CloudGroup2" type="Node2D" parent="Clouds"]
|
||||
|
||||
[node name="Sprite1" type="Sprite" parent="Clouds/CloudGroup2"]
|
||||
position = Vector2( -200, 120 )
|
||||
[node name="Sprite1" type="Sprite2D" parent="Clouds/CloudGroup2"]
|
||||
position = Vector2(-200, 120)
|
||||
texture = ExtResource( 3 )
|
||||
centered = false
|
||||
|
||||
[node name="Sprite2" type="Sprite" parent="Clouds/CloudGroup2"]
|
||||
position = Vector2( 100, 10 )
|
||||
[node name="Sprite2" type="Sprite2D" parent="Clouds/CloudGroup2"]
|
||||
position = Vector2(100, 10)
|
||||
texture = ExtResource( 3 )
|
||||
centered = false
|
||||
|
||||
[node name="Sprite3" type="Sprite" parent="Clouds/CloudGroup2"]
|
||||
position = Vector2( -60, 40 )
|
||||
[node name="Sprite3" type="Sprite2D" parent="Clouds/CloudGroup2"]
|
||||
position = Vector2(-60, 40)
|
||||
texture = ExtResource( 4 )
|
||||
centered = false
|
||||
|
||||
[node name="Sprite4" type="Sprite" parent="Clouds/CloudGroup2"]
|
||||
position = Vector2( 150, 65 )
|
||||
[node name="Sprite4" type="Sprite2D" parent="Clouds/CloudGroup2"]
|
||||
position = Vector2(150, 65)
|
||||
texture = ExtResource( 4 )
|
||||
centered = false
|
||||
|
||||
[node name="Sprite5" type="Sprite" parent="Clouds/CloudGroup2"]
|
||||
position = Vector2( 15, 75 )
|
||||
[node name="Sprite5" type="Sprite2D" parent="Clouds/CloudGroup2"]
|
||||
position = Vector2(15, 75)
|
||||
texture = ExtResource( 5 )
|
||||
centered = false
|
||||
|
||||
[node name="Sprite6" type="Sprite" parent="Clouds/CloudGroup2"]
|
||||
position = Vector2( 225, 35 )
|
||||
[node name="Sprite6" type="Sprite2D" parent="Clouds/CloudGroup2"]
|
||||
position = Vector2(225, 35)
|
||||
texture = ExtResource( 5 )
|
||||
centered = false
|
||||
|
||||
[node name="CloudGroup3" type="Node2D" parent="Clouds"]
|
||||
position = Vector2( 390, 0 )
|
||||
position = Vector2(390, 0)
|
||||
|
||||
[node name="Sprite1" type="Sprite" parent="Clouds/CloudGroup3"]
|
||||
position = Vector2( -200, 120 )
|
||||
[node name="Sprite1" type="Sprite2D" parent="Clouds/CloudGroup3"]
|
||||
position = Vector2(-200, 120)
|
||||
texture = ExtResource( 3 )
|
||||
centered = false
|
||||
|
||||
[node name="Sprite2" type="Sprite" parent="Clouds/CloudGroup3"]
|
||||
position = Vector2( 100, 10 )
|
||||
[node name="Sprite2" type="Sprite2D" parent="Clouds/CloudGroup3"]
|
||||
position = Vector2(100, 10)
|
||||
texture = ExtResource( 3 )
|
||||
centered = false
|
||||
|
||||
[node name="Sprite3" type="Sprite" parent="Clouds/CloudGroup3"]
|
||||
position = Vector2( -60, 40 )
|
||||
[node name="Sprite3" type="Sprite2D" parent="Clouds/CloudGroup3"]
|
||||
position = Vector2(-60, 40)
|
||||
texture = ExtResource( 4 )
|
||||
centered = false
|
||||
|
||||
[node name="Sprite4" type="Sprite" parent="Clouds/CloudGroup3"]
|
||||
position = Vector2( 150, 65 )
|
||||
[node name="Sprite4" type="Sprite2D" parent="Clouds/CloudGroup3"]
|
||||
position = Vector2(150, 65)
|
||||
texture = ExtResource( 4 )
|
||||
centered = false
|
||||
|
||||
[node name="Sprite5" type="Sprite" parent="Clouds/CloudGroup3"]
|
||||
position = Vector2( 15, 75 )
|
||||
[node name="Sprite5" type="Sprite2D" parent="Clouds/CloudGroup3"]
|
||||
position = Vector2(15, 75)
|
||||
texture = ExtResource( 5 )
|
||||
centered = false
|
||||
|
||||
[node name="Sprite6" type="Sprite" parent="Clouds/CloudGroup3"]
|
||||
position = Vector2( 225, 35 )
|
||||
[node name="Sprite6" type="Sprite2D" parent="Clouds/CloudGroup3"]
|
||||
position = Vector2(225, 35)
|
||||
texture = ExtResource( 5 )
|
||||
centered = false
|
||||
|
||||
[node name="CloudGroup4" type="Node2D" parent="Clouds"]
|
||||
position = Vector2( 780, 0 )
|
||||
position = Vector2(780, 0)
|
||||
|
||||
[node name="Sprite1" type="Sprite" parent="Clouds/CloudGroup4"]
|
||||
position = Vector2( -200, 120 )
|
||||
[node name="Sprite1" type="Sprite2D" parent="Clouds/CloudGroup4"]
|
||||
position = Vector2(-200, 120)
|
||||
texture = ExtResource( 3 )
|
||||
centered = false
|
||||
|
||||
[node name="Sprite2" type="Sprite" parent="Clouds/CloudGroup4"]
|
||||
position = Vector2( 100, 10 )
|
||||
[node name="Sprite2" type="Sprite2D" parent="Clouds/CloudGroup4"]
|
||||
position = Vector2(100, 10)
|
||||
texture = ExtResource( 3 )
|
||||
centered = false
|
||||
|
||||
[node name="Sprite3" type="Sprite" parent="Clouds/CloudGroup4"]
|
||||
position = Vector2( -60, 40 )
|
||||
[node name="Sprite3" type="Sprite2D" parent="Clouds/CloudGroup4"]
|
||||
position = Vector2(-60, 40)
|
||||
texture = ExtResource( 4 )
|
||||
centered = false
|
||||
|
||||
[node name="Sprite4" type="Sprite" parent="Clouds/CloudGroup4"]
|
||||
position = Vector2( 150, 65 )
|
||||
[node name="Sprite4" type="Sprite2D" parent="Clouds/CloudGroup4"]
|
||||
position = Vector2(150, 65)
|
||||
texture = ExtResource( 4 )
|
||||
centered = false
|
||||
|
||||
[node name="Sprite5" type="Sprite" parent="Clouds/CloudGroup4"]
|
||||
position = Vector2( 15, 75 )
|
||||
[node name="Sprite5" type="Sprite2D" parent="Clouds/CloudGroup4"]
|
||||
position = Vector2(15, 75)
|
||||
texture = ExtResource( 5 )
|
||||
centered = false
|
||||
|
||||
[node name="Sprite6" type="Sprite" parent="Clouds/CloudGroup4"]
|
||||
position = Vector2( 225, 35 )
|
||||
[node name="Sprite6" type="Sprite2D" parent="Clouds/CloudGroup4"]
|
||||
position = Vector2(225, 35)
|
||||
texture = ExtResource( 5 )
|
||||
centered = false
|
||||
|
||||
[node name="Mountains2" type="ParallaxLayer" parent="."]
|
||||
position = Vector2( 0, 243 )
|
||||
motion_scale = Vector2( 0.2, 1 )
|
||||
position = Vector2(0, 243)
|
||||
motion_scale = Vector2(0.2, 1)
|
||||
|
||||
[node name="Sprite" type="Sprite" parent="Mountains2"]
|
||||
position = Vector2( 0, -64 )
|
||||
[node name="Sprite2D" type="Sprite2D" parent="Mountains2"]
|
||||
position = Vector2(0, -64)
|
||||
texture = ExtResource( 1 )
|
||||
region_enabled = true
|
||||
region_rect = Rect2( 0, 0, 2048, 128 )
|
||||
region_rect = Rect2(0, 0, 2048, 128)
|
||||
|
||||
[node name="Mountains1" type="ParallaxLayer" parent="."]
|
||||
position = Vector2( 0, 246 )
|
||||
motion_scale = Vector2( 0.4, 1 )
|
||||
position = Vector2(0, 246)
|
||||
motion_scale = Vector2(0.4, 1)
|
||||
|
||||
[node name="Sprite" type="Sprite" parent="Mountains1"]
|
||||
position = Vector2( 0, -64 )
|
||||
[node name="Sprite2D" type="Sprite2D" parent="Mountains1"]
|
||||
position = Vector2(0, -64)
|
||||
texture = ExtResource( 6 )
|
||||
region_enabled = true
|
||||
region_rect = Rect2( 0, 0, 2048, 128 )
|
||||
region_rect = Rect2(0, 0, 2048, 128)
|
||||
|
||||
@@ -5,7 +5,7 @@ extends Node
|
||||
|
||||
# The "_" prefix is a convention to indicate that variables are private,
|
||||
# that is to say, another node or script should not access them.
|
||||
onready var _pause_menu = $InterfaceLayer/PauseMenu
|
||||
@onready var _pause_menu = $InterfaceLayer/PauseMenu
|
||||
|
||||
|
||||
func _init():
|
||||
@@ -15,7 +15,7 @@ func _init():
|
||||
|
||||
func _notification(what):
|
||||
if what == NOTIFICATION_WM_QUIT_REQUEST:
|
||||
# We need to clean up a little bit first to avoid Viewport errors.
|
||||
# We need to clean up a little bit first to avoid SubViewport errors.
|
||||
if name == "Splitscreen":
|
||||
$Black/SplitContainer/ViewportContainer1.free()
|
||||
$Black.queue_free()
|
||||
@@ -40,7 +40,7 @@ func _unhandled_input(event):
|
||||
|
||||
elif event.is_action_pressed("splitscreen"):
|
||||
if name == "Splitscreen":
|
||||
# We need to clean up a little bit first to avoid Viewport errors.
|
||||
# We need to clean up a little bit first to avoid SubViewport errors.
|
||||
$Black/SplitContainer/ViewportContainer1.free()
|
||||
$Black.queue_free()
|
||||
# warning-ignore:return_value_discarded
|
||||
|
||||
@@ -6,13 +6,13 @@
|
||||
[ext_resource path="res://src/Actors/Player.tscn" type="PackedScene" id=4]
|
||||
|
||||
[node name="Game" type="Node"]
|
||||
pause_mode = 2
|
||||
process_mode = 3
|
||||
script = ExtResource( 2 )
|
||||
|
||||
[node name="Level" parent="." instance=ExtResource( 3 )]
|
||||
|
||||
[node name="Player" parent="Level" instance=ExtResource( 4 )]
|
||||
position = Vector2( 90, 546 )
|
||||
position = Vector2(90, 546)
|
||||
|
||||
[node name="InterfaceLayer" type="CanvasLayer" parent="."]
|
||||
layer = 100
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
[ext_resource path="res://src/Level/ParallaxBackground.tscn" type="PackedScene" id=5]
|
||||
|
||||
[node name="Splitscreen" type="Node"]
|
||||
pause_mode = 2
|
||||
process_mode = 3
|
||||
script = ExtResource( 2 )
|
||||
|
||||
[node name="InterfaceLayer" type="CanvasLayer" parent="."]
|
||||
@@ -18,9 +18,9 @@ layer = 100
|
||||
[node name="Black" type="ColorRect" parent="."]
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
margin_right = 6.10352e-05
|
||||
margin_bottom = 3.05176e-05
|
||||
color = Color( 0, 0, 0, 1 )
|
||||
offset_right = 6.10352e-05
|
||||
offset_bottom = 3.05176e-05
|
||||
color = Color(0, 0, 0, 1)
|
||||
|
||||
[node name="SplitContainer" type="HSplitContainer" parent="Black"]
|
||||
anchor_right = 1.0
|
||||
@@ -30,9 +30,9 @@ __meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
|
||||
[node name="ViewportContainer1" type="ViewportContainer" parent="Black/SplitContainer"]
|
||||
margin_right = 394.0
|
||||
margin_bottom = 480.0
|
||||
[node name="ViewportContainer1" type="SubViewportContainer" parent="Black/SplitContainer"]
|
||||
offset_right = 394.0
|
||||
offset_bottom = 480.0
|
||||
size_flags_horizontal = 3
|
||||
size_flags_vertical = 3
|
||||
stretch = true
|
||||
@@ -40,8 +40,8 @@ __meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
|
||||
[node name="Viewport1" type="Viewport" parent="Black/SplitContainer/ViewportContainer1"]
|
||||
size = Vector2( 394, 480 )
|
||||
[node name="Viewport1" type="SubViewport" parent="Black/SplitContainer/ViewportContainer1"]
|
||||
size = Vector2(394, 480)
|
||||
size_override_stretch = true
|
||||
handle_input_locally = false
|
||||
usage = 0
|
||||
@@ -51,17 +51,17 @@ audio_listener_enable_2d = true
|
||||
[node name="Level" parent="Black/SplitContainer/ViewportContainer1/Viewport1" instance=ExtResource( 3 )]
|
||||
|
||||
[node name="Player1" parent="Black/SplitContainer/ViewportContainer1/Viewport1/Level" instance=ExtResource( 4 )]
|
||||
position = Vector2( 90, 546 )
|
||||
position = Vector2(90, 546)
|
||||
action_suffix = "_p1"
|
||||
|
||||
[node name="Player2" parent="Black/SplitContainer/ViewportContainer1/Viewport1/Level" instance=ExtResource( 4 )]
|
||||
position = Vector2( 120, 546 )
|
||||
position = Vector2(120, 546)
|
||||
action_suffix = "_p2"
|
||||
|
||||
[node name="ViewportContainer2" type="ViewportContainer" parent="Black/SplitContainer"]
|
||||
margin_left = 406.0
|
||||
margin_right = 800.0
|
||||
margin_bottom = 480.0
|
||||
[node name="ViewportContainer2" type="SubViewportContainer" parent="Black/SplitContainer"]
|
||||
offset_left = 406.0
|
||||
offset_right = 800.0
|
||||
offset_bottom = 480.0
|
||||
size_flags_horizontal = 3
|
||||
size_flags_vertical = 3
|
||||
stretch = true
|
||||
@@ -69,8 +69,8 @@ __meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
|
||||
[node name="Viewport2" type="Viewport" parent="Black/SplitContainer/ViewportContainer2"]
|
||||
size = Vector2( 394, 480 )
|
||||
[node name="Viewport2" type="SubViewport" parent="Black/SplitContainer/ViewportContainer2"]
|
||||
size = Vector2(394, 480)
|
||||
size_override_stretch = true
|
||||
handle_input_locally = false
|
||||
usage = 0
|
||||
|
||||
@@ -2,7 +2,7 @@ class_name Bullet
|
||||
extends RigidBody2D
|
||||
|
||||
|
||||
onready var animation_player = $AnimationPlayer
|
||||
@onready var animation_player = $AnimationPlayer
|
||||
|
||||
|
||||
func destroy():
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
[gd_scene load_steps=8 format=2]
|
||||
|
||||
[ext_resource path="res://assets/art/player/bullet/bullet.png" type="Texture" id=1]
|
||||
[ext_resource path="res://assets/art/player/bullet/bullet.png" type="Texture2D" id=1]
|
||||
[ext_resource path="res://src/Objects/Bullet.gd" type="Script" id=2]
|
||||
|
||||
[sub_resource type="CanvasItemMaterial" id=1]
|
||||
@@ -23,36 +23,36 @@ tracks/0/loop_wrap = true
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/keys = {
|
||||
"times": PoolRealArray( 0.3 ),
|
||||
"transitions": PoolRealArray( 1 ),
|
||||
"values": [ {
|
||||
"args": [ ],
|
||||
"times": PackedFloat32Array(0.3),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"values": [{
|
||||
"args": [],
|
||||
"method": "queue_free"
|
||||
} ]
|
||||
}]
|
||||
}
|
||||
tracks/1/type = "value"
|
||||
tracks/1/path = NodePath("Sprite:self_modulate")
|
||||
tracks/1/path = NodePath("Sprite2D:self_modulate")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/keys = {
|
||||
"times": PoolRealArray( 0, 0.3 ),
|
||||
"transitions": PoolRealArray( 1, 1 ),
|
||||
"times": PackedFloat32Array(0, 0.3),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"update": 0,
|
||||
"values": [ Color( 1, 1, 1, 1 ), Color( 1, 1, 1, 0 ) ]
|
||||
"values": [Color(1, 1, 1, 1), Color(1, 1, 1, 0)]
|
||||
}
|
||||
tracks/2/type = "value"
|
||||
tracks/2/path = NodePath("Particles2D:self_modulate")
|
||||
tracks/2/path = NodePath("GPUParticles2D:self_modulate")
|
||||
tracks/2/interp = 1
|
||||
tracks/2/loop_wrap = true
|
||||
tracks/2/imported = false
|
||||
tracks/2/enabled = true
|
||||
tracks/2/keys = {
|
||||
"times": PoolRealArray( 0, 0.3 ),
|
||||
"transitions": PoolRealArray( 1, 1 ),
|
||||
"times": PackedFloat32Array(0, 0.3),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"update": 0,
|
||||
"values": [ Color( 1, 1, 1, 1 ), Color( 1, 1, 1, 0 ) ]
|
||||
"values": [Color(1, 1, 1, 1), Color(1, 1, 1, 0)]
|
||||
}
|
||||
|
||||
[node name="Bullet" type="RigidBody2D"]
|
||||
@@ -64,7 +64,7 @@ contacts_reported = 1
|
||||
contact_monitor = true
|
||||
script = ExtResource( 2 )
|
||||
|
||||
[node name="Particles2D" type="CPUParticles2D" parent="."]
|
||||
[node name="GPUParticles2D" type="CPUParticles2D" parent="."]
|
||||
material = SubResource( 2 )
|
||||
emitting = false
|
||||
lifetime = 0.3
|
||||
@@ -72,11 +72,11 @@ speed_scale = 3.0
|
||||
local_coords = false
|
||||
texture = ExtResource( 1 )
|
||||
spread = 0.0
|
||||
gravity = Vector2( 0, 0 )
|
||||
gravity = Vector2(0, 0)
|
||||
scale_amount = 0.8
|
||||
color = Color( 1, 1, 1, 0.705882 )
|
||||
color = Color(1, 1, 1, 0.705882)
|
||||
|
||||
[node name="Sprite" type="Sprite" parent="."]
|
||||
[node name="Sprite2D" type="Sprite2D" parent="."]
|
||||
material = SubResource( 3 )
|
||||
texture = ExtResource( 1 )
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@ class_name Coin
|
||||
extends Area2D
|
||||
# Collectible that disappears when the player touches it.
|
||||
|
||||
onready var animation_player = $AnimationPlayer
|
||||
@onready var animation_player = $AnimationPlayer
|
||||
|
||||
# The Coins only detects collisions with the Player thanks to its collision mask.
|
||||
# This prevents other characters such as enemies from picking up coins.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
[gd_scene load_steps=7 format=2]
|
||||
|
||||
[ext_resource path="res://assets/art/coin/coin.png" type="Texture" id=2]
|
||||
[ext_resource path="res://assets/art/coin/coin.png" type="Texture2D" id=2]
|
||||
[ext_resource path="res://assets/audio/sfx/coin_pickup.wav" type="AudioStream" id=3]
|
||||
[ext_resource path="res://src/Objects/Coin.gd" type="Script" id=4]
|
||||
|
||||
@@ -9,16 +9,16 @@ resource_name = "picked"
|
||||
length = 1.5
|
||||
step = 0.25
|
||||
tracks/0/type = "value"
|
||||
tracks/0/path = NodePath("Sprite:frame")
|
||||
tracks/0/path = NodePath("Sprite2D:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/keys = {
|
||||
"times": PoolRealArray( 0 ),
|
||||
"transitions": PoolRealArray( 1 ),
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [ 0 ]
|
||||
"values": [0]
|
||||
}
|
||||
tracks/1/type = "method"
|
||||
tracks/1/path = NodePath(".")
|
||||
@@ -27,24 +27,24 @@ tracks/1/loop_wrap = true
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/keys = {
|
||||
"times": PoolRealArray( 1 ),
|
||||
"transitions": PoolRealArray( 1 ),
|
||||
"values": [ {
|
||||
"args": [ ],
|
||||
"times": PackedFloat32Array(1),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"values": [{
|
||||
"args": [],
|
||||
"method": "queue_free"
|
||||
} ]
|
||||
}]
|
||||
}
|
||||
tracks/2/type = "value"
|
||||
tracks/2/path = NodePath("Sprite:self_modulate")
|
||||
tracks/2/path = NodePath("Sprite2D:self_modulate")
|
||||
tracks/2/interp = 1
|
||||
tracks/2/loop_wrap = true
|
||||
tracks/2/imported = false
|
||||
tracks/2/enabled = true
|
||||
tracks/2/keys = {
|
||||
"times": PoolRealArray( 0.25, 1.25 ),
|
||||
"transitions": PoolRealArray( 1, 1 ),
|
||||
"times": PackedFloat32Array(0.25, 1.25),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"update": 0,
|
||||
"values": [ Color( 1, 1, 1, 1 ), Color( 1, 1, 1, 0 ) ]
|
||||
"values": [Color(1, 1, 1, 1), Color(1, 1, 1, 0)]
|
||||
}
|
||||
tracks/3/type = "value"
|
||||
tracks/3/path = NodePath("Pickup:playing")
|
||||
@@ -53,10 +53,10 @@ tracks/3/loop_wrap = true
|
||||
tracks/3/imported = false
|
||||
tracks/3/enabled = true
|
||||
tracks/3/keys = {
|
||||
"times": PoolRealArray( 0 ),
|
||||
"transitions": PoolRealArray( 1 ),
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 2,
|
||||
"values": [ true ]
|
||||
"values": [true]
|
||||
}
|
||||
tracks/4/type = "value"
|
||||
tracks/4/path = NodePath(".:monitoring")
|
||||
@@ -65,22 +65,22 @@ tracks/4/loop_wrap = true
|
||||
tracks/4/imported = false
|
||||
tracks/4/enabled = true
|
||||
tracks/4/keys = {
|
||||
"times": PoolRealArray( 0 ),
|
||||
"transitions": PoolRealArray( 1 ),
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [ false ]
|
||||
"values": [false]
|
||||
}
|
||||
tracks/5/type = "value"
|
||||
tracks/5/path = NodePath("Sprite:position")
|
||||
tracks/5/path = NodePath("Sprite2D:position")
|
||||
tracks/5/interp = 1
|
||||
tracks/5/loop_wrap = true
|
||||
tracks/5/imported = false
|
||||
tracks/5/enabled = true
|
||||
tracks/5/keys = {
|
||||
"times": PoolRealArray( 0, 1.5 ),
|
||||
"transitions": PoolRealArray( 1, 1 ),
|
||||
"times": PackedFloat32Array(0, 1.5),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"update": 0,
|
||||
"values": [ Vector2( 0, 0 ), Vector2( 0, -42 ) ]
|
||||
"values": [Vector2(0, 0), Vector2(0, -42)]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id=2]
|
||||
@@ -88,40 +88,40 @@ length = 1.5
|
||||
loop = true
|
||||
step = 0.25
|
||||
tracks/0/type = "value"
|
||||
tracks/0/path = NodePath("Sprite:frame")
|
||||
tracks/0/path = NodePath("Sprite2D:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/keys = {
|
||||
"times": PoolRealArray( 0, 0.25, 0.5, 0.75, 1, 1.25, 1.5 ),
|
||||
"transitions": PoolRealArray( 1, 1, 1, 1, 1, 1, 1 ),
|
||||
"times": PackedFloat32Array(0, 0.25, 0.5, 0.75, 1, 1.25, 1.5),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1),
|
||||
"update": 1,
|
||||
"values": [ 0, 1, 2, 3, 2, 1, 0 ]
|
||||
"values": [0, 1, 2, 3, 2, 1, 0]
|
||||
}
|
||||
tracks/1/type = "value"
|
||||
tracks/1/path = NodePath("Sprite:position")
|
||||
tracks/1/path = NodePath("Sprite2D:position")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/keys = {
|
||||
"times": PoolRealArray( 0 ),
|
||||
"transitions": PoolRealArray( 1 ),
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 2,
|
||||
"values": [ Vector2( 0, 0 ) ]
|
||||
"values": [Vector2(0, 0)]
|
||||
}
|
||||
tracks/2/type = "value"
|
||||
tracks/2/path = NodePath("Sprite:self_modulate")
|
||||
tracks/2/path = NodePath("Sprite2D:self_modulate")
|
||||
tracks/2/interp = 1
|
||||
tracks/2/loop_wrap = true
|
||||
tracks/2/imported = false
|
||||
tracks/2/enabled = true
|
||||
tracks/2/keys = {
|
||||
"times": PoolRealArray( 0 ),
|
||||
"transitions": PoolRealArray( 1 ),
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 2,
|
||||
"values": [ Color( 1, 1, 1, 1 ) ]
|
||||
"values": [Color(1, 1, 1, 1)]
|
||||
}
|
||||
tracks/3/type = "value"
|
||||
tracks/3/path = NodePath(".:monitoring")
|
||||
@@ -130,10 +130,10 @@ tracks/3/loop_wrap = true
|
||||
tracks/3/imported = false
|
||||
tracks/3/enabled = true
|
||||
tracks/3/keys = {
|
||||
"times": PoolRealArray( 0 ),
|
||||
"transitions": PoolRealArray( 1 ),
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 2,
|
||||
"values": [ true ]
|
||||
"values": [true]
|
||||
}
|
||||
|
||||
[sub_resource type="CircleShape2D" id=3]
|
||||
@@ -145,7 +145,7 @@ monitoring = false
|
||||
monitorable = false
|
||||
script = ExtResource( 4 )
|
||||
|
||||
[node name="Sprite" type="Sprite" parent="."]
|
||||
[node name="Sprite2D" type="Sprite2D" parent="."]
|
||||
texture = ExtResource( 2 )
|
||||
hframes = 4
|
||||
|
||||
|
||||
@@ -1,21 +1,21 @@
|
||||
[gd_scene load_steps=3 format=2]
|
||||
|
||||
[ext_resource path="res://assets/art/platforms/moving_platform.png" type="Texture" id=2]
|
||||
[ext_resource path="res://assets/art/platforms/moving_platform.png" type="Texture2D" id=2]
|
||||
|
||||
[sub_resource type="RectangleShape2D" id=1]
|
||||
extents = Vector2( 47, 6 )
|
||||
extents = Vector2(47, 6)
|
||||
|
||||
[node name="Platform" type="KinematicBody2D"]
|
||||
[node name="Platform" type="CharacterBody2D"]
|
||||
z_index = -1
|
||||
collision_layer = 8
|
||||
collision_mask = 0
|
||||
collision/safe_margin = 0.12
|
||||
motion/sync_to_physics = true
|
||||
|
||||
[node name="Sprite" type="Sprite" parent="."]
|
||||
[node name="Sprite2D" type="Sprite2D" parent="."]
|
||||
texture = ExtResource( 2 )
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
|
||||
position = Vector2( 0, -4 )
|
||||
position = Vector2(0, -4)
|
||||
shape = SubResource( 1 )
|
||||
one_way_collision = true
|
||||
|
||||
@@ -2,22 +2,22 @@ extends Panel
|
||||
|
||||
var coins_collected = 0
|
||||
|
||||
onready var coins_label = $Label
|
||||
@onready var coins_label = $Label
|
||||
|
||||
|
||||
func _ready():
|
||||
coins_label.set_text(str(coins_collected))
|
||||
# Static types are necessary here to avoid warnings.
|
||||
var anim_sprite: AnimatedSprite = $AnimatedSprite
|
||||
var anim_sprite: AnimatedSprite2D = $AnimatedSprite2D
|
||||
anim_sprite.play()
|
||||
# Check if the game is in splitscreen mode by checking the scene root name.
|
||||
if get_tree().get_root().get_child(0).name == "Splitscreen":
|
||||
var _level_node = get_node(@"../../../../Black/SplitContainer/ViewportContainer1/Viewport1/Level")
|
||||
_level_node.get_node("Player1").connect("collect_coin", self, "_collect_coin")
|
||||
_level_node.get_node("Player2").connect("collect_coin", self, "_collect_coin")
|
||||
var _level_node = get_node(^"../../../../Black/SplitContainer/ViewportContainer1/Viewport1/Level")
|
||||
_level_node.get_node(^"Player1").connect(&"collect_coin", self._collect_coin)
|
||||
_level_node.get_node(^"Player2").connect(&"collect_coin", self._collect_coin)
|
||||
else:
|
||||
var _player_path = get_node(@"../../../../Level/Player")
|
||||
_player_path.connect("collect_coin", self, "_collect_coin")
|
||||
var _player_path = get_node(^"../../../../Level/Player")
|
||||
_player_path.connect(&"collect_coin", self._collect_coin)
|
||||
|
||||
|
||||
func _collect_coin():
|
||||
|
||||
@@ -1,42 +1,42 @@
|
||||
[gd_scene load_steps=10 format=2]
|
||||
|
||||
[ext_resource path="res://assets/theme/user_interface.tres" type="Theme" id=1]
|
||||
[ext_resource path="res://assets/art/coin/coin.png" type="Texture" id=2]
|
||||
[ext_resource path="res://assets/art/coin/coin.png" type="Texture2D" id=2]
|
||||
[ext_resource path="res://src/UserInterface/CoinsCounter.gd" type="Script" id=3]
|
||||
|
||||
[sub_resource type="StyleBoxFlat" id=1]
|
||||
bg_color = Color( 0, 0, 0, 0.5 )
|
||||
bg_color = Color(0, 0, 0, 0.5)
|
||||
|
||||
[sub_resource type="AtlasTexture" id=2]
|
||||
atlas = ExtResource( 2 )
|
||||
region = Rect2( 0, 0, 8, 8 )
|
||||
region = Rect2(0, 0, 8, 8)
|
||||
|
||||
[sub_resource type="AtlasTexture" id=3]
|
||||
atlas = ExtResource( 2 )
|
||||
region = Rect2( 8, 0, 8, 8 )
|
||||
region = Rect2(8, 0, 8, 8)
|
||||
|
||||
[sub_resource type="AtlasTexture" id=4]
|
||||
atlas = ExtResource( 2 )
|
||||
region = Rect2( 16, 0, 8, 8 )
|
||||
region = Rect2(16, 0, 8, 8)
|
||||
|
||||
[sub_resource type="AtlasTexture" id=5]
|
||||
atlas = ExtResource( 2 )
|
||||
region = Rect2( 24, 0, 8, 8 )
|
||||
region = Rect2(24, 0, 8, 8)
|
||||
|
||||
[sub_resource type="SpriteFrames" id=6]
|
||||
animations = [ {
|
||||
"frames": [ SubResource( 2 ), SubResource( 3 ), SubResource( 4 ), SubResource( 5 ), SubResource( 4 ), SubResource( 3 ) ],
|
||||
animations = [{
|
||||
"frames": [SubResource( 2 ), SubResource( 3 ), SubResource( 4 ), SubResource( 5 ), SubResource( 4 ), SubResource( 3 )],
|
||||
"loop": true,
|
||||
"name": "coin_spinning",
|
||||
"speed": 6.5
|
||||
} ]
|
||||
}]
|
||||
|
||||
[node name="CoinsCounter" type="Panel"]
|
||||
margin_left = 5.0
|
||||
margin_top = 5.0
|
||||
margin_right = 100.0
|
||||
margin_bottom = 45.0
|
||||
rect_min_size = Vector2( 100, 45 )
|
||||
offset_left = 5.0
|
||||
offset_top = 5.0
|
||||
offset_right = 100.0
|
||||
offset_bottom = 45.0
|
||||
rect_min_size = Vector2(100, 45)
|
||||
theme = ExtResource( 1 )
|
||||
custom_styles/panel = SubResource( 1 )
|
||||
script = ExtResource( 3 )
|
||||
@@ -47,7 +47,7 @@ __meta__ = {
|
||||
[node name="Label" type="Label" parent="."]
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
margin_right = -8.0
|
||||
offset_right = -8.0
|
||||
text = "100"
|
||||
align = 2
|
||||
valign = 1
|
||||
@@ -56,8 +56,8 @@ __meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
|
||||
[node name="AnimatedSprite" type="AnimatedSprite" parent="."]
|
||||
position = Vector2( 21.5, 22.5 )
|
||||
scale = Vector2( 4.375, 4.375 )
|
||||
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
|
||||
position = Vector2(21.5, 22.5)
|
||||
scale = Vector2(4.375, 4.375)
|
||||
frames = SubResource( 6 )
|
||||
animation = "coin_spinning"
|
||||
|
||||
@@ -1,17 +1,17 @@
|
||||
extends Control
|
||||
|
||||
|
||||
export(Vector2) var _start_position = Vector2(0, -20)
|
||||
export(Vector2) var _end_position = Vector2.ZERO
|
||||
export(float) var fade_in_duration = 0.3
|
||||
export(float) var fade_out_duration = 0.2
|
||||
@export var _start_position: Vector2 = Vector2(0, -20)
|
||||
@export var _end_position: Vector2 = Vector2.ZERO
|
||||
@export var fade_in_duration: float = 0.3
|
||||
@export var fade_out_duration: float = 0.2
|
||||
|
||||
onready var center_cont = $ColorRect/CenterContainer
|
||||
onready var resume_button = center_cont.get_node(@"VBoxContainer/ResumeButton")
|
||||
@onready var center_cont = $ColorRect/CenterContainer
|
||||
@onready var resume_button = center_cont.get_node(^"VBoxContainer/ResumeButton")
|
||||
|
||||
onready var root = get_tree().get_root()
|
||||
onready var scene_root = root.get_child(root.get_child_count() - 1)
|
||||
onready var tween = $Tween
|
||||
@onready var root = get_tree().get_root()
|
||||
@onready var scene_root = root.get_child(root.get_child_count() - 1)
|
||||
@onready var tween = $Tween
|
||||
|
||||
|
||||
func _ready():
|
||||
@@ -25,7 +25,7 @@ func close():
|
||||
# Tween duration, Transition type, Easing type, Optional delay)
|
||||
tween.interpolate_property(self, "modulate:a", 1.0, 0.0,
|
||||
fade_out_duration, Tween.TRANS_LINEAR, Tween.EASE_IN)
|
||||
tween.interpolate_property(center_cont, "rect_position",
|
||||
tween.interpolate_property(center_cont, "position",
|
||||
_end_position, _start_position, fade_out_duration,
|
||||
Tween.TRANS_CUBIC, Tween.EASE_OUT)
|
||||
tween.start()
|
||||
@@ -37,7 +37,7 @@ func open():
|
||||
|
||||
tween.interpolate_property(self, "modulate:a", 0.0, 1.0,
|
||||
fade_in_duration, Tween.TRANS_LINEAR, Tween.EASE_IN)
|
||||
tween.interpolate_property(center_cont, "rect_position",
|
||||
tween.interpolate_property(center_cont, "position",
|
||||
_start_position, _end_position, fade_in_duration,
|
||||
Tween.TRANS_CUBIC, Tween.EASE_OUT)
|
||||
tween.start()
|
||||
|
||||
@@ -2,15 +2,15 @@
|
||||
|
||||
[ext_resource path="res://assets/theme/user_interface.tres" type="Theme" id=1]
|
||||
[ext_resource path="res://src/UserInterface/PauseMenu.gd" type="Script" id=2]
|
||||
[ext_resource path="res://assets/theme/fonts/kenney_mini_square.tres" type="DynamicFontData" id=3]
|
||||
[ext_resource path="res://assets/theme/fonts/kenney_mini_square.tres" type="FontData" id=3]
|
||||
[ext_resource path="res://src/UserInterface/CoinsCounter.tscn" type="PackedScene" id=4]
|
||||
|
||||
[sub_resource type="DynamicFont" id=1]
|
||||
[sub_resource type="Font" id=1]
|
||||
size = 44
|
||||
font_data = ExtResource( 3 )
|
||||
|
||||
[node name="PauseMenu" type="Control"]
|
||||
pause_mode = 2
|
||||
process_mode = 3
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
theme = ExtResource( 1 )
|
||||
@@ -22,7 +22,7 @@ __meta__ = {
|
||||
[node name="ColorRect" type="ColorRect" parent="."]
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
color = Color( 0, 0, 0, 0.294118 )
|
||||
color = Color(0, 0, 0, 0.294118)
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
@@ -35,11 +35,11 @@ __meta__ = {
|
||||
}
|
||||
|
||||
[node name="VBoxContainer" type="VBoxContainer" parent="ColorRect/CenterContainer"]
|
||||
margin_left = 250.0
|
||||
margin_top = 140.0
|
||||
margin_right = 550.0
|
||||
margin_bottom = 340.0
|
||||
rect_min_size = Vector2( 300, 200 )
|
||||
offset_left = 250.0
|
||||
offset_top = 140.0
|
||||
offset_right = 550.0
|
||||
offset_bottom = 340.0
|
||||
rect_min_size = Vector2(300, 200)
|
||||
custom_constants/separation = 6
|
||||
alignment = 1
|
||||
__meta__ = {
|
||||
@@ -47,41 +47,41 @@ __meta__ = {
|
||||
}
|
||||
|
||||
[node name="Label" type="Label" parent="ColorRect/CenterContainer/VBoxContainer"]
|
||||
margin_top = 7.0
|
||||
margin_right = 300.0
|
||||
margin_bottom = 62.0
|
||||
offset_top = 7.0
|
||||
offset_right = 300.0
|
||||
offset_bottom = 62.0
|
||||
custom_fonts/font = SubResource( 1 )
|
||||
text = "Game Paused"
|
||||
align = 1
|
||||
valign = 1
|
||||
|
||||
[node name="MarginContainer" type="MarginContainer" parent="ColorRect/CenterContainer/VBoxContainer"]
|
||||
margin_top = 68.0
|
||||
margin_right = 300.0
|
||||
margin_bottom = 88.0
|
||||
rect_min_size = Vector2( 0, 20 )
|
||||
offset_top = 68.0
|
||||
offset_right = 300.0
|
||||
offset_bottom = 88.0
|
||||
rect_min_size = Vector2(0, 20)
|
||||
|
||||
[node name="ResumeButton" type="Button" parent="ColorRect/CenterContainer/VBoxContainer"]
|
||||
margin_left = 60.0
|
||||
margin_top = 94.0
|
||||
margin_right = 240.0
|
||||
margin_bottom = 140.0
|
||||
rect_min_size = Vector2( 180, 40 )
|
||||
offset_left = 60.0
|
||||
offset_top = 94.0
|
||||
offset_right = 240.0
|
||||
offset_bottom = 140.0
|
||||
rect_min_size = Vector2(180, 40)
|
||||
size_flags_horizontal = 4
|
||||
text = "Resume"
|
||||
|
||||
[node name="QuitButton" type="Button" parent="ColorRect/CenterContainer/VBoxContainer"]
|
||||
margin_left = 60.0
|
||||
margin_top = 146.0
|
||||
margin_right = 240.0
|
||||
margin_bottom = 192.0
|
||||
rect_min_size = Vector2( 180, 40 )
|
||||
offset_left = 60.0
|
||||
offset_top = 146.0
|
||||
offset_right = 240.0
|
||||
offset_bottom = 192.0
|
||||
rect_min_size = Vector2(180, 40)
|
||||
size_flags_horizontal = 4
|
||||
text = "Quit"
|
||||
|
||||
[node name="CoinsCounter" parent="ColorRect" instance=ExtResource( 4 )]
|
||||
margin_right = 105.0
|
||||
margin_bottom = 50.0
|
||||
offset_right = 105.0
|
||||
offset_bottom = 50.0
|
||||
|
||||
[node name="Tween" type="Tween" parent="."]
|
||||
|
||||
|
||||
Reference in New Issue
Block a user