From b40dad2de0c2270499102671d970aa77fbc582b1 Mon Sep 17 00:00:00 2001 From: OddlyTimbot Date: Mon, 11 May 2026 21:04:27 -0400 Subject: [PATCH] camera, textures, game scaling, tilemap --- Scenes/crate.tscn | 7 + Scenes/game.tscn | 347 +++++++++++++++++- Scenes/grenade.tscn | 7 + Scenes/player.tscn | 41 ++- Scripts/player.gd | 24 +- .../graphics/environments/Terrain (32x32).png | Bin 0 -> 11796 bytes .../environments/Terrain (32x32).png.import | 40 ++ assets/graphics/objects/crate.png | Bin 0 -> 760 bytes assets/graphics/objects/crate.png.import | 40 ++ assets/graphics/objects/grenade.png | Bin 0 -> 539 bytes assets/graphics/objects/grenade.png.import | 40 ++ .../player/idle/Player Idle 48x48.png | Bin 1853 -> 1405 bytes .../player/jump_fall/player jump 48x48.png | Bin 0 -> 1021 bytes .../jump_fall/player jump 48x48.png.import | 40 ++ project.godot | 8 + 15 files changed, 587 insertions(+), 7 deletions(-) create mode 100644 assets/graphics/environments/Terrain (32x32).png create mode 100644 assets/graphics/environments/Terrain (32x32).png.import create mode 100644 assets/graphics/objects/crate.png create mode 100644 assets/graphics/objects/crate.png.import create mode 100644 assets/graphics/objects/grenade.png create mode 100644 assets/graphics/objects/grenade.png.import create mode 100644 assets/graphics/player/jump_fall/player jump 48x48.png create mode 100644 assets/graphics/player/jump_fall/player jump 48x48.png.import diff --git a/Scenes/crate.tscn b/Scenes/crate.tscn index cb86f38..a5f6295 100644 --- a/Scenes/crate.tscn +++ b/Scenes/crate.tscn @@ -1,6 +1,7 @@ [gd_scene format=3 uid="uid://d16epxgmccvkp"] [ext_resource type="Script" uid="uid://dayw2gghh8mym" path="res://Scripts/crate.gd" id="1_wp72f"] +[ext_resource type="Texture2D" uid="uid://csvda611l2cp2" path="res://assets/graphics/objects/crate.png" id="2_i4r3v"] [sub_resource type="RectangleShape2D" id="RectangleShape2D_ebmjs"] @@ -11,3 +12,9 @@ metadata/_edit_group_ = true [node name="CollisionShape2D" type="CollisionShape2D" parent="." unique_id=1809235182] shape = SubResource("RectangleShape2D_ebmjs") debug_color = Color(0.8535397, 0.36730364, 0.11225829, 0.41960785) + +[node name="Sprite2D" type="Sprite2D" parent="." unique_id=863744160] +texture_filter = 1 +position = Vector2(4.7683716e-07, 4.7683716e-07) +scale = Vector2(0.5, 0.5) +texture = ExtResource("2_i4r3v") diff --git a/Scenes/game.tscn b/Scenes/game.tscn index 2ee547f..95d3299 100644 --- a/Scenes/game.tscn +++ b/Scenes/game.tscn @@ -1,12 +1,349 @@ -[gd_scene format=3 uid="uid://b06dlp8n6upld"] +[gd_scene format=4 uid="uid://b06dlp8n6upld"] [ext_resource type="Script" uid="uid://bc25u4w35ibeu" path="res://Scripts/gameController.gd" id="1_qxrlw"] [ext_resource type="PackedScene" uid="uid://d16epxgmccvkp" path="res://Scenes/crate.tscn" id="2_3dryh"] [ext_resource type="Script" uid="uid://cnm7tj6umtwtm" path="res://Scripts/scene_manager.gd" id="2_wowpa"] +[ext_resource type="Texture2D" uid="uid://q2ktev3ckkmp" path="res://assets/graphics/environments/Terrain (32x32).png" id="3_1l0tm"] [ext_resource type="PackedScene" uid="uid://caa73phf3ng5m" path="res://Scenes/player.tscn" id="3_wowpa"] [ext_resource type="Script" uid="uid://4hekg0d8n04f" path="res://Scripts/trigger.gd" id="3_wrm1d"] [ext_resource type="PackedScene" uid="uid://dotmw0uwnqv6w" path="res://Scenes/grenade.tscn" id="6_i6g32"] +[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_v158k"] +texture = ExtResource("3_1l0tm") +texture_region_size = Vector2i(32, 32) +0:0/0 = 0 +0:0/0/terrain_set = 0 +0:0/0/terrain = 0 +0:0/0/terrains_peering_bit/right_side = 0 +0:0/0/terrains_peering_bit/bottom_right_corner = 0 +0:0/0/terrains_peering_bit/bottom_side = 0 +1:0/0 = 0 +1:0/0/terrain_set = 0 +1:0/0/terrain = 0 +1:0/0/terrains_peering_bit/right_side = 0 +1:0/0/terrains_peering_bit/bottom_right_corner = 0 +1:0/0/terrains_peering_bit/bottom_side = 0 +1:0/0/terrains_peering_bit/bottom_left_corner = 0 +1:0/0/terrains_peering_bit/left_side = 0 +2:0/0 = 0 +2:0/0/terrain_set = 0 +2:0/0/terrain = 0 +2:0/0/terrains_peering_bit/bottom_side = 0 +2:0/0/terrains_peering_bit/bottom_left_corner = 0 +2:0/0/terrains_peering_bit/left_side = 0 +4:0/0 = 0 +4:0/0/terrain_set = 0 +4:0/0/terrain = 0 +4:0/0/terrains_peering_bit/bottom_side = 0 +6:0/0 = 0 +6:0/0/terrain_set = 0 +6:0/0/terrain = 0 +6:0/0/terrains_peering_bit/right_side = 0 +6:0/0/terrains_peering_bit/bottom_side = 0 +6:0/0/terrains_peering_bit/bottom_left_corner = 0 +6:0/0/terrains_peering_bit/left_side = 0 +6:0/0/terrains_peering_bit/top_left_corner = 0 +6:0/0/terrains_peering_bit/top_side = 0 +6:0/0/terrains_peering_bit/top_right_corner = 0 +7:0/0 = 0 +7:0/0/terrain_set = 0 +7:0/0/terrain = 0 +7:0/0/terrains_peering_bit/right_side = 0 +7:0/0/terrains_peering_bit/bottom_right_corner = 0 +7:0/0/terrains_peering_bit/bottom_side = 0 +7:0/0/terrains_peering_bit/left_side = 0 +7:0/0/terrains_peering_bit/top_left_corner = 0 +7:0/0/terrains_peering_bit/top_side = 0 +7:0/0/terrains_peering_bit/top_right_corner = 0 +9:0/0 = 0 +9:0/0/terrain_set = 0 +9:0/0/terrain = 0 +9:0/0/terrains_peering_bit/right_side = 0 +9:0/0/terrains_peering_bit/bottom_right_corner = 0 +9:0/0/terrains_peering_bit/bottom_side = 0 +9:0/0/terrains_peering_bit/bottom_left_corner = 0 +9:0/0/terrains_peering_bit/left_side = 0 +9:0/0/terrains_peering_bit/top_side = 0 +10:0/0 = 0 +10:0/0/terrain_set = 0 +10:0/0/terrain = 0 +10:0/0/terrains_peering_bit/right_side = 0 +10:0/0/terrains_peering_bit/bottom_side = 0 +10:0/0/terrains_peering_bit/bottom_left_corner = 0 +10:0/0/terrains_peering_bit/left_side = 0 +10:0/0/terrains_peering_bit/top_left_corner = 0 +10:0/0/terrains_peering_bit/top_side = 0 +12:0/0 = 0 +12:0/0/terrain_set = 0 +12:0/0/terrain = 0 +12:0/0/terrains_peering_bit/right_side = 0 +12:0/0/terrains_peering_bit/bottom_right_corner = 0 +12:0/0/terrains_peering_bit/bottom_side = 0 +12:0/0/terrains_peering_bit/left_side = 0 +12:0/0/terrains_peering_bit/top_side = 0 +13:0/0 = 0 +13:0/0/terrain_set = 0 +13:0/0/terrain = 0 +13:0/0/terrains_peering_bit/right_side = 0 +13:0/0/terrains_peering_bit/bottom_side = 0 +13:0/0/terrains_peering_bit/bottom_left_corner = 0 +13:0/0/terrains_peering_bit/left_side = 0 +13:0/0/terrains_peering_bit/top_side = 0 +15:0/0 = 0 +15:0/0/terrain_set = 0 +15:0/0/terrain = 0 +15:0/0/terrains_peering_bit/right_side = 0 +15:0/0/terrains_peering_bit/bottom_side = 0 +15:0/0/terrains_peering_bit/left_side = 0 +15:0/0/terrains_peering_bit/top_side = 0 +0:1/0 = 0 +0:1/0/terrain_set = 0 +0:1/0/terrain = 0 +0:1/0/terrains_peering_bit/right_side = 0 +0:1/0/terrains_peering_bit/bottom_right_corner = 0 +0:1/0/terrains_peering_bit/bottom_side = 0 +0:1/0/terrains_peering_bit/top_side = 0 +0:1/0/terrains_peering_bit/top_right_corner = 0 +1:1/0 = 0 +2:1/0 = 0 +2:1/0/terrain_set = 0 +2:1/0/terrain = 0 +2:1/0/terrains_peering_bit/bottom_side = 0 +2:1/0/terrains_peering_bit/bottom_left_corner = 0 +2:1/0/terrains_peering_bit/left_side = 0 +2:1/0/terrains_peering_bit/top_left_corner = 0 +2:1/0/terrains_peering_bit/top_side = 0 +4:1/0 = 0 +4:1/0/terrain_set = 0 +4:1/0/terrain = 0 +4:1/0/terrains_peering_bit/bottom_side = 0 +4:1/0/terrains_peering_bit/top_side = 0 +6:1/0 = 0 +6:1/0/terrain_set = 0 +6:1/0/terrain = 0 +6:1/0/terrains_peering_bit/right_side = 0 +6:1/0/terrains_peering_bit/bottom_right_corner = 0 +6:1/0/terrains_peering_bit/bottom_side = 0 +6:1/0/terrains_peering_bit/bottom_left_corner = 0 +6:1/0/terrains_peering_bit/left_side = 0 +6:1/0/terrains_peering_bit/top_left_corner = 0 +6:1/0/terrains_peering_bit/top_side = 0 +7:1/0 = 0 +7:1/0/terrain_set = 0 +7:1/0/terrain = 0 +7:1/0/terrains_peering_bit/right_side = 0 +7:1/0/terrains_peering_bit/bottom_right_corner = 0 +7:1/0/terrains_peering_bit/bottom_side = 0 +7:1/0/terrains_peering_bit/bottom_left_corner = 0 +7:1/0/terrains_peering_bit/left_side = 0 +7:1/0/terrains_peering_bit/top_side = 0 +7:1/0/terrains_peering_bit/top_right_corner = 0 +9:1/0 = 0 +9:1/0/terrain_set = 0 +9:1/0/terrain = 0 +9:1/0/terrains_peering_bit/right_side = 0 +9:1/0/terrains_peering_bit/bottom_right_corner = 0 +9:1/0/terrains_peering_bit/bottom_side = 0 +9:1/0/terrains_peering_bit/left_side = 0 +9:1/0/terrains_peering_bit/top_side = 0 +9:1/0/terrains_peering_bit/top_right_corner = 0 +10:1/0 = 0 +10:1/0/terrain_set = 0 +10:1/0/terrain = 0 +10:1/0/terrains_peering_bit/right_side = 0 +10:1/0/terrains_peering_bit/bottom_side = 0 +10:1/0/terrains_peering_bit/left_side = 0 +10:1/0/terrains_peering_bit/top_left_corner = 0 +10:1/0/terrains_peering_bit/top_side = 0 +10:1/0/terrains_peering_bit/top_right_corner = 0 +12:1/0 = 0 +12:1/0/terrain_set = 0 +12:1/0/terrain = 0 +12:1/0/terrains_peering_bit/right_side = 0 +12:1/0/terrains_peering_bit/bottom_side = 0 +12:1/0/terrains_peering_bit/left_side = 0 +12:1/0/terrains_peering_bit/top_side = 0 +12:1/0/terrains_peering_bit/top_right_corner = 0 +13:1/0 = 0 +13:1/0/terrain_set = 0 +13:1/0/terrain = 0 +13:1/0/terrains_peering_bit/right_side = 0 +13:1/0/terrains_peering_bit/bottom_side = 0 +13:1/0/terrains_peering_bit/left_side = 0 +13:1/0/terrains_peering_bit/top_left_corner = 0 +13:1/0/terrains_peering_bit/top_side = 0 +15:1/0 = 0 +15:1/0/terrain_set = 0 +15:1/0/terrain = 0 +15:1/0/terrains_peering_bit/right_side = 0 +15:1/0/terrains_peering_bit/bottom_side = 0 +15:1/0/terrains_peering_bit/bottom_left_corner = 0 +15:1/0/terrains_peering_bit/left_side = 0 +15:1/0/terrains_peering_bit/top_side = 0 +15:1/0/terrains_peering_bit/top_right_corner = 0 +16:1/0 = 0 +16:1/0/terrain_set = 0 +16:1/0/terrain = 0 +16:1/0/terrains_peering_bit/right_side = 0 +16:1/0/terrains_peering_bit/bottom_right_corner = 0 +16:1/0/terrains_peering_bit/bottom_side = 0 +16:1/0/terrains_peering_bit/left_side = 0 +16:1/0/terrains_peering_bit/top_left_corner = 0 +16:1/0/terrains_peering_bit/top_side = 0 +0:2/0 = 0 +0:2/0/terrain_set = 0 +0:2/0/terrain = 0 +0:2/0/terrains_peering_bit/right_side = 0 +0:2/0/terrains_peering_bit/top_side = 0 +0:2/0/terrains_peering_bit/top_right_corner = 0 +1:2/0 = 0 +1:2/0/terrain_set = 0 +1:2/0/terrain = 0 +1:2/0/terrains_peering_bit/right_side = 0 +1:2/0/terrains_peering_bit/left_side = 0 +1:2/0/terrains_peering_bit/top_left_corner = 0 +1:2/0/terrains_peering_bit/top_side = 0 +1:2/0/terrains_peering_bit/top_right_corner = 0 +2:2/0 = 0 +2:2/0/terrain_set = 0 +2:2/0/terrain = 0 +2:2/0/terrains_peering_bit/left_side = 0 +2:2/0/terrains_peering_bit/top_left_corner = 0 +2:2/0/terrains_peering_bit/top_side = 0 +4:2/0 = 0 +4:2/0/terrain_set = 0 +4:2/0/terrain = 0 +4:2/0/terrains_peering_bit/top_side = 0 +6:3/0 = 0 +6:3/0/terrain_set = 0 +6:3/0/terrain = 0 +6:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, -0.63726044, -16, -0.63726044, 16, -16, 16) +6:3/0/terrains_peering_bit/right_side = 0 +6:3/0/terrains_peering_bit/bottom_side = 0 +6:3/0/terrains_peering_bit/top_side = 0 +6:3/0/terrains_peering_bit/top_right_corner = 0 +7:3/0 = 0 +7:3/0/terrain_set = 0 +7:3/0/terrain = 0 +7:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(1.5931549, -16, 16, -16, 16, 16, 1.2745209, 16) +7:3/0/terrains_peering_bit/bottom_side = 0 +7:3/0/terrains_peering_bit/left_side = 0 +7:3/0/terrains_peering_bit/top_left_corner = 0 +7:3/0/terrains_peering_bit/top_side = 0 +9:3/0 = 0 +9:3/0/terrain_set = 0 +9:3/0/terrain = 0 +9:3/0/terrains_peering_bit/right_side = 0 +9:3/0/terrains_peering_bit/bottom_side = 0 +9:3/0/terrains_peering_bit/bottom_left_corner = 0 +9:3/0/terrains_peering_bit/left_side = 0 +10:3/0 = 0 +10:3/0/terrain_set = 0 +10:3/0/terrain = 0 +10:3/0/terrains_peering_bit/right_side = 0 +10:3/0/terrains_peering_bit/bottom_right_corner = 0 +10:3/0/terrains_peering_bit/bottom_side = 0 +10:3/0/terrains_peering_bit/left_side = 0 +12:3/0 = 0 +12:3/0/terrain_set = 0 +12:3/0/terrain = 0 +12:3/0/terrains_peering_bit/right_side = 0 +12:3/0/terrains_peering_bit/bottom_side = 0 +12:3/0/terrains_peering_bit/top_side = 0 +13:3/0 = 0 +13:3/0/terrain_set = 0 +13:3/0/terrain = 0 +13:3/0/terrains_peering_bit/right_side = 0 +13:3/0/terrains_peering_bit/bottom_side = 0 +13:3/0/terrains_peering_bit/left_side = 0 +15:3/0 = 0 +15:3/0/terrain_set = 0 +15:3/0/terrain = 0 +15:3/0/terrains_peering_bit/right_side = 0 +15:3/0/terrains_peering_bit/bottom_side = 0 +16:3/0 = 0 +16:3/0/terrain_set = 0 +16:3/0/terrain = 0 +16:3/0/terrains_peering_bit/bottom_side = 0 +16:3/0/terrains_peering_bit/left_side = 0 +0:4/0 = 0 +0:4/0/terrain_set = 0 +0:4/0/terrain = 0 +0:4/0/terrains_peering_bit/right_side = 0 +1:4/0 = 0 +1:4/0/terrain_set = 0 +1:4/0/terrain = 0 +1:4/0/terrains_peering_bit/right_side = 0 +1:4/0/terrains_peering_bit/left_side = 0 +2:4/0 = 0 +2:4/0/terrain_set = 0 +2:4/0/terrain = 0 +2:4/0/terrains_peering_bit/left_side = 0 +4:4/0 = 0 +4:4/0/terrain_set = 0 +4:4/0/terrain = 0 +4:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +6:4/0 = 0 +6:4/0/terrain_set = 0 +6:4/0/terrain = 0 +6:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, -0.63726044, -16, -0.63726044, 16, -16, 16) +6:4/0/terrains_peering_bit/right_side = 0 +6:4/0/terrains_peering_bit/bottom_right_corner = 0 +6:4/0/terrains_peering_bit/bottom_side = 0 +6:4/0/terrains_peering_bit/top_side = 0 +7:4/0 = 0 +7:4/0/terrain_set = 0 +7:4/0/terrain = 0 +7:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(1.5931549, -16, 16, -16, 16, 16, 1.2745209, 16) +7:4/0/terrains_peering_bit/bottom_side = 0 +7:4/0/terrains_peering_bit/bottom_left_corner = 0 +7:4/0/terrains_peering_bit/left_side = 0 +7:4/0/terrains_peering_bit/top_side = 0 +9:4/0 = 0 +9:4/0/terrain_set = 0 +9:4/0/terrain = 0 +9:4/0/terrains_peering_bit/right_side = 0 +9:4/0/terrains_peering_bit/left_side = 0 +9:4/0/terrains_peering_bit/top_left_corner = 0 +9:4/0/terrains_peering_bit/top_side = 0 +10:4/0 = 0 +10:4/0/terrain_set = 0 +10:4/0/terrain = 0 +10:4/0/terrains_peering_bit/right_side = 0 +10:4/0/terrains_peering_bit/left_side = 0 +10:4/0/terrains_peering_bit/top_side = 0 +10:4/0/terrains_peering_bit/top_right_corner = 0 +12:4/0 = 0 +12:4/0/terrain_set = 0 +12:4/0/terrain = 0 +12:4/0/terrains_peering_bit/right_side = 0 +12:4/0/terrains_peering_bit/left_side = 0 +12:4/0/terrains_peering_bit/top_side = 0 +13:4/0 = 0 +13:4/0/terrain_set = 0 +13:4/0/terrain = 0 +13:4/0/terrains_peering_bit/bottom_side = 0 +13:4/0/terrains_peering_bit/left_side = 0 +13:4/0/terrains_peering_bit/top_side = 0 +15:4/0 = 0 +15:4/0/terrain_set = 0 +15:4/0/terrain = 0 +15:4/0/terrains_peering_bit/right_side = 0 +15:4/0/terrains_peering_bit/top_side = 0 +16:4/0 = 0 +16:4/0/terrain_set = 0 +16:4/0/terrain = 0 +16:4/0/terrains_peering_bit/left_side = 0 +16:4/0/terrains_peering_bit/top_side = 0 + +[sub_resource type="TileSet" id="TileSet_h4fw4"] +tile_size = Vector2i(32, 32) +physics_layer_0/collision_layer = 1 +terrain_set_0/mode = 0 +terrain_set_0/terrain_0/name = "LeafyDirt" +terrain_set_0/terrain_0/color = Color(0.5, 0.34375, 0.25, 1) +sources/0 = SubResource("TileSetAtlasSource_v158k") + [sub_resource type="RectangleShape2D" id="RectangleShape2D_2poj3"] size = Vector2(84, 20) @@ -22,6 +359,10 @@ script = ExtResource("1_qxrlw") unique_name_in_owner = true script = ExtResource("2_wowpa") +[node name="TileMapLayer" type="TileMapLayer" parent="." unique_id=430528866] +tile_map_data = PackedByteArray("AAAKAA4AAAABAAQAAAAIAA4AAAAPAAQAAAAJAA4AAAABAAQAAAALAA4AAAABAAQAAAAMAA4AAAABAAQAAAANAA4AAAABAAQAAAAOAA4AAAABAAQAAAAPAA4AAAABAAQAAAAQAA4AAAAQAAMAAAAMAAkAAAAAAAQAAAANAAkAAAABAAQAAAAOAAkAAAACAAQAAAASAAwAAAACAAQAAAARAAwAAAAAAAQAAAAIAA0AAAAHAAMAAAAHAA0AAAABAAIAAAAGAA0AAAAAAAIAAAAGAAwAAAAAAAEAAAAHAAwAAAAGAAAAAAAHAAsAAAABAAAAAAAIAAwAAAACAAEAAAAIAAsAAAAJAAMAAAAGAAsAAAAAAAAAAAAJAAsAAAACAAQAAAAJAAkAAAACAAQAAAAIAAkAAAABAAQAAAAHAAkAAAAAAAQAAAAQAA8AAAAPAAQAAAARAA8AAAABAAQAAAASAA8AAAAQAAQAAAASAA4AAAAPAAMAAAATAA4AAAABAAQAAAAUAA4AAAAJAAEAAAAUAA0AAAAAAAAAAAAVAA0AAAAHAAEAAAAVAAwAAAAAAAAAAAAWAA0AAAACAAEAAAAWAA4AAAAHAAMAAAAVAA4AAAAGAAAAAAAUAA8AAAAAAAIAAAAVAA8AAAABAAIAAAAWAA8AAAACAAIAAAAWAAwAAAAHAAQAAAAWAAsAAAAEAAAAAAALAAwAAAAEAAQAAAA=") +tile_set = SubResource("TileSet_h4fw4") + [node name="platform" type="StaticBody2D" parent="." unique_id=601020872] position = Vector2(436, 297) constant_linear_velocity = Vector2(10, 0) @@ -38,7 +379,7 @@ metadata/_edit_group_ = true shape = SubResource("WorldBoundaryShape2D_2poj3") [node name="Player" parent="." unique_id=1717313761 instance=ExtResource("3_wowpa")] -position = Vector2(338, 430) +position = Vector2(368, 370) [node name="Area2D" type="Area2D" parent="." unique_id=1184709580] position = Vector2(495, 356) @@ -61,7 +402,7 @@ position = Vector2(436, 433) position = Vector2(481, 433) [node name="Grenade" parent="." unique_id=638454305 instance=ExtResource("6_i6g32")] -position = Vector2(385, 375) +position = Vector2(400, 375) [connection signal="body_entered" from="Area2D" to="Area2D" method="_on_body_entered"] [connection signal="triggerActiveSignal" from="Area2D" to="." method="_on_triggerSignal"] diff --git a/Scenes/grenade.tscn b/Scenes/grenade.tscn index 17aaa18..ddd9cc8 100644 --- a/Scenes/grenade.tscn +++ b/Scenes/grenade.tscn @@ -1,6 +1,7 @@ [gd_scene format=3 uid="uid://dotmw0uwnqv6w"] [ext_resource type="Script" uid="uid://bd8br3emm1nhb" path="res://Scripts/grenade.gd" id="1_v44n1"] +[ext_resource type="Texture2D" uid="uid://b22v4ysmsexkp" path="res://assets/graphics/objects/grenade.png" id="2_5rnft"] [sub_resource type="CircleShape2D" id="CircleShape2D_b5j7x"] radius = 5.0 @@ -14,4 +15,10 @@ script = ExtResource("1_v44n1") shape = SubResource("CircleShape2D_b5j7x") debug_color = Color(0.81554836, 0.40704176, 0.03861203, 0.41960785) +[node name="Sprite2D" type="Sprite2D" parent="." unique_id=1051169739] +texture_filter = 1 +position = Vector2(1, -1) +scale = Vector2(0.75, 0.75) +texture = ExtResource("2_5rnft") + [connection signal="body_entered" from="." to="." method="_on_body_entered"] diff --git a/Scenes/player.tscn b/Scenes/player.tscn index f31f40b..27dbeb9 100644 --- a/Scenes/player.tscn +++ b/Scenes/player.tscn @@ -2,10 +2,15 @@ [ext_resource type="Script" uid="uid://btmoyp0rwqmxe" path="res://Scripts/player.gd" id="1_v0iea"] [ext_resource type="Texture2D" uid="uid://dlax6d4nhkl4p" path="res://assets/graphics/player/idle/Player Idle 48x48.png" id="2_cvnsp"] +[ext_resource type="Texture2D" uid="uid://cnpsd8q2hqrmp" path="res://assets/graphics/player/jump_fall/player jump 48x48.png" id="2_vgqql"] [ext_resource type="Texture2D" uid="uid://bc251ptp8ujsv" path="res://assets/graphics/player/run/player run 48x48.png" id="3_6t5aa"] [sub_resource type="CircleShape2D" id="CircleShape2D_2poj3"] +[sub_resource type="AtlasTexture" id="AtlasTexture_olqyp"] +atlas = ExtResource("2_vgqql") +region = Rect2(96, 0, 48, 48) + [sub_resource type="AtlasTexture" id="AtlasTexture_6t5aa"] atlas = ExtResource("2_cvnsp") region = Rect2(0, 0, 48, 48) @@ -46,6 +51,14 @@ region = Rect2(384, 0, 48, 48) atlas = ExtResource("2_cvnsp") region = Rect2(432, 0, 48, 48) +[sub_resource type="AtlasTexture" id="AtlasTexture_wpjfl"] +atlas = ExtResource("2_vgqql") +region = Rect2(0, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_bi64h"] +atlas = ExtResource("2_vgqql") +region = Rect2(48, 0, 48, 48) + [sub_resource type="AtlasTexture" id="AtlasTexture_ukyrk"] atlas = ExtResource("3_6t5aa") region = Rect2(0, 0, 48, 48) @@ -82,6 +95,14 @@ region = Rect2(336, 0, 48, 48) animations = [{ "frames": [{ "duration": 1.0, +"texture": SubResource("AtlasTexture_olqyp") +}], +"loop": false, +"name": &"fall", +"speed": 12.0 +}, { +"frames": [{ +"duration": 1.0, "texture": SubResource("AtlasTexture_6t5aa") }, { "duration": 1.0, @@ -117,6 +138,17 @@ animations = [{ }, { "frames": [{ "duration": 1.0, +"texture": SubResource("AtlasTexture_wpjfl") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_bi64h") +}], +"loop": false, +"name": &"jump", +"speed": 12.0 +}, { +"frames": [{ +"duration": 1.0, "texture": SubResource("AtlasTexture_ukyrk") }, { "duration": 1.0, @@ -169,7 +201,10 @@ position = Vector2(-14, -8) texture_filter = 1 position = Vector2(0, -6) sprite_frames = SubResource("SpriteFrames_ukyrk") -animation = &"run" +animation = &"idle" autoplay = "idle" -frame = 5 -frame_progress = 0.17384599 + +[node name="Camera2D" type="Camera2D" parent="." unique_id=522635127] +offset = Vector2(0, -50) + +[connection signal="animation_finished" from="PlayerGraphic" to="." method="_on_animation_finished"] diff --git a/Scripts/player.gd b/Scripts/player.gd index 429ecda..d069c80 100644 --- a/Scripts/player.gd +++ b/Scripts/player.gd @@ -11,12 +11,14 @@ const JUMP_VELOCITY = -400.0 var direction enum FaceDirection{LEFT,RIGHT} var facing:FaceDirection = FaceDirection.RIGHT -enum PlayerState{IDLE,RUNNING} +enum PlayerState{IDLE,RUNNING,JUMPING,FALLING} var current_player_state:PlayerState = PlayerState.IDLE var pushTarget:RigidBody2D var pushEnabled:bool = false +var upJump:bool = false + func _physics_process(delta: float) -> void: handle_input() handle_movement(delta) @@ -43,6 +45,8 @@ func handle_input()->void: if Input.is_action_just_pressed("jump") and is_on_floor(): velocity.y = JUMP_VELOCITY + upJump = true + current_player_state = PlayerState.JUMPING # Get the input direction and handle the movement/deceleration. # As good practice, you should replace UI actions with custom gameplay actions. @@ -95,6 +99,13 @@ func handle_state()->void: current_player_state = PlayerState.RUNNING PlayerState.RUNNING when velocity.x ==0: current_player_state = PlayerState.IDLE + PlayerState.JUMPING when velocity.y > 0: + current_player_state = PlayerState.FALLING + PlayerState.FALLING when is_on_floor(): + if velocity.x ==0: + current_player_state = PlayerState.IDLE + else: + current_player_state=PlayerState.RUNNING func handle_animation()->void: match current_player_state: @@ -102,4 +113,15 @@ func handle_animation()->void: player_graphic.play("idle") PlayerState.RUNNING: player_graphic.play("run") + PlayerState.JUMPING: + if upJump: + player_graphic.play("jump") + PlayerState.FALLING: + player_graphic.play("fall") + + +func _on_animation_finished() -> void: + match current_player_state: + PlayerState.JUMPING: + upJump = false diff --git a/assets/graphics/environments/Terrain (32x32).png b/assets/graphics/environments/Terrain (32x32).png new file mode 100644 index 0000000000000000000000000000000000000000..ddf1eaf58e63d04bfa806cd75eab977633dd771b GIT binary patch literal 11796 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 b1DNH#Dz|$Kzczt3Z-}m@(cMb*ColgW2-TUV literal 0 HcmV?d00001 diff --git a/assets/graphics/environments/Terrain (32x32).png.import b/assets/graphics/environments/Terrain (32x32).png.import new file mode 100644 index 0000000..805e164 --- /dev/null +++ b/assets/graphics/environments/Terrain (32x32).png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://q2ktev3ckkmp" +path="res://.godot/imported/Terrain (32x32).png-6838e80b1c0bbf18c360b65a3e7901e9.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/graphics/environments/Terrain (32x32).png" +dest_files=["res://.godot/imported/Terrain (32x32).png-6838e80b1c0bbf18c360b65a3e7901e9.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/graphics/objects/crate.png b/assets/graphics/objects/crate.png new file mode 100644 index 0000000000000000000000000000000000000000..3e469e697e24987ee17f66b76f39a639fc2ad858 GIT binary patch literal 760 zcmVy{D4^000SaNLh0L04^f{04^f|c%?sf00007 zbV*G`2kHe27Zy9v5OXsC00KNoL_t(o!`)cTN4u86(uW-MnioGeF%o!1453Uj!w3WRqA6; z>z+S@0Dz0DQ=ncm^Puk$B%|0%WcQ{MGX!Zq8JV8CGnh!R_WU^l0OV6)W$e-3r}xqF zO5$q-RYdK)eh6ba{VzI;QQ*jN>kKAJqNYr?GY03eIE%pq<1U(y_S({(=uXfRAMzN~ zsgvCZ?!@E9&FR>-l(og9eIb77dAW3;jBC%;jPDVwHd@+}ixegq2}>w&zT-yEb;wb6 zXO0U>B?*}v`s#L-lu#~Blcd>bBOMb9ie{rd|NW}O(mBe%wHZ>UBWjvgB?(7PNBaD) z=n~RS1m^{7HfJPiFO;!p5B-(RCTbJSaA{iw-OVVsgzTLmW@;~W#wBhMky94uQx+lU zRy3htO${2K4Ge#w$YYJy3;!a;KHs$7LXe>;ZEf%&^UR$Fi zl*QL4aj^|G#1>!U^|@6_qRe9T^@UiYaZPsmWBIBMAIi3qnkSAZzf7`DNsJem{2ETj qlYdDwf`e`+|2wO7-<2HnoBaThBNB8cs?CQ0000014Ba#1H&(%P{RubhEf9thF1v;3|2E37{m+a>`sfD^_lCHO7-sbBcgA#(TOr zhFF|FI_0cavZFxj{#CaRW>0aH6*OrHEc}o!mm0ROyHcb4=9$eJ9f>O43J-S~82o$k zt#IOtBY*B%EBQG(mlyu}^73*l>woP#v1w|?*V`xbuDfhfYrnFwfiqRH#r$==y}!v3 zahF|+#~C}m&o%#%wt3~zd&0-lmtUE+_Gir1tWW_Ky&3Q0%m25#<(Zt_?D9JL{>y3! zl_v>;;Y)7k6<)Pk|0b{g_4y4MIuluH?^;R3TvT}d=U9^bp8n^IV*3MPt7|(Wo2Kx$d}7&af9Gr7jWur>A{(8&w?^GxEL6PfEw@tPy7Qis zCOqGHHfY7xUviwse19`>onT0sbL7Wr3uzzuDbtl^N3tZR7hT`^Z$^}dr8cI=W!$ufWXKrFPqPXWx1~^=9-HnJ?>8TJJtPT4L;cDSo}Z b@jOPmd6T09^Vp1lq0ivy>gTe~DWM4f({9_V literal 0 HcmV?d00001 diff --git a/assets/graphics/objects/grenade.png.import b/assets/graphics/objects/grenade.png.import new file mode 100644 index 0000000..ef339a3 --- /dev/null +++ b/assets/graphics/objects/grenade.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b22v4ysmsexkp" +path="res://.godot/imported/grenade.png-d1c07918c8a2b35336be824628ce434f.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/graphics/objects/grenade.png" +dest_files=["res://.godot/imported/grenade.png-d1c07918c8a2b35336be824628ce434f.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/graphics/player/idle/Player Idle 48x48.png b/assets/graphics/player/idle/Player Idle 48x48.png index b618511699269f9bd10ff834f6b382e147588ebd..3ba742675a4c03109d0df7b1fe22613039803b87 100644 GIT binary patch literal 1405 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 GiTewRkDu!R diff --git a/assets/graphics/player/jump_fall/player jump 48x48.png b/assets/graphics/player/jump_fall/player jump 48x48.png new file mode 100644 index 0000000000000000000000000000000000000000..dff105cfac881171ef96781bd9bbd40e413dd6a7 GIT binary patch literal 1021 zcmVmEQ7U} zLs5iSL^ysQndjn_Z_)cK!3y?8`13c+Y_To1lzKf`rD(zM^$i(L=C%6^9Hexzmp9TP7J z3x2D_5a!4t4@Lw;++IjPL?TE)*M!XouFOAKKtr?u-6Zv(YkUXdi)sf zak0Mh>nO11+UfNJza4o$n<0Rk1Z07%>MV|KH|Cnd*}PH={w!JoU_k}q;T@2{2S2OR zD+a#QyBe@rHR$i1USRL^qA`5(r#B^2wb1c{XQEaxHcV>?NY(}bx#42)8SNHPEAhx+ zwgbTUmm?2ozQJTIB3(a3CTazbJxT1)Zea|u@~8|2{NOX;WZ4432(zCtQ7d>^3MYza z`pO61;cUJh#UB&2?YppT6D78R|4^6h|6#?IDsW4&75XzcI( zI|u+6TJ`se!ZF#4lOpqh+0S5p*beUt&(-{yaUWs}2=GNDGqzgZXbL{yCx91`EdrAH za5aCX+;6jxRN?`E{`@|6r*cN^Po;%Do_#4@uM~^*CnFzWVt7lNu6Os9ze}qfq(y&z zAN~3LRNk#6AiixSnJ2yu4LOwnk>Ay7)+Q(!7+wzKMJ61R2SEE47DYJB3DHoS125zG z=NfjWa)C7$d|>gvJRb?fU-ZQUv9Iw_V7=DGio;H>%!gN%iq-8`MjGM)49-BT&x$2f zCLY@o5T)$9hFE?0!P#ULO;mw=BX5G;-Lu&+QdMkLz^zYNPI6;W(H&45@yQ*hzGvh%)2y re59^(3$vL{@`WG>f*=TjXb=AZ>!Ac3Jx|zZ00000NkvXXu0mjfKxWs7 literal 0 HcmV?d00001 diff --git a/assets/graphics/player/jump_fall/player jump 48x48.png.import b/assets/graphics/player/jump_fall/player jump 48x48.png.import new file mode 100644 index 0000000..2984743 --- /dev/null +++ b/assets/graphics/player/jump_fall/player jump 48x48.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cnpsd8q2hqrmp" +path="res://.godot/imported/player jump 48x48.png-bb6ba8ccf76c9bd3765199af95f48c3c.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/graphics/player/jump_fall/player jump 48x48.png" +dest_files=["res://.godot/imported/player jump 48x48.png-bb6ba8ccf76c9bd3765199af95f48c3c.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/project.godot b/project.godot index b96c827..af64bd3 100644 --- a/project.godot +++ b/project.godot @@ -15,6 +15,14 @@ run/main_scene="uid://b06dlp8n6upld" config/features=PackedStringArray("4.6", "Forward Plus") config/icon="res://icon.svg" +[display] + +window/size/viewport_width=480 +window/size/viewport_height=270 +window/size/window_width_override=960 +window/size/window_height_override=540 +window/stretch/mode="viewport" + [file_customization] folder_colors={