From c3ab17230bc57bd15bf58855e99eb4e1cf5f28dd Mon Sep 17 00:00:00 2001 From: OddlyTimbot Date: Tue, 20 Oct 2026 20:19:39 -0400 Subject: [PATCH] game xbox controller, two terrains, tilmaplayer, physics, worked in gimp --- assets/graphics/objects/crate.png | Bin 0 -> 1761 bytes assets/graphics/objects/crate.png.import | 40 ++ assets/graphics/terrains/Terrain (32x32).png | Bin 0 -> 11796 bytes .../terrains/Terrain (32x32).png.import | 40 ++ assets/graphics/terrains/mushroom_32x64.png | Bin 0 -> 2106 bytes .../terrains/mushroom_32x64.png.import | 40 ++ assets/graphics/terrains/veg_32x32.png | Bin 0 -> 675 bytes assets/graphics/terrains/veg_32x32.png.import | 40 ++ project.godot | 26 +- scenes/crate.tscn | 6 + scenes/game.tscn | 398 +++++++++++++++++- scenes/player.tscn | 3 + scripts/gamecontroller.gd | 2 +- scripts/player.gd | 8 +- 14 files changed, 594 insertions(+), 9 deletions(-) create mode 100644 assets/graphics/objects/crate.png create mode 100644 assets/graphics/objects/crate.png.import create mode 100644 assets/graphics/terrains/Terrain (32x32).png create mode 100644 assets/graphics/terrains/Terrain (32x32).png.import create mode 100644 assets/graphics/terrains/mushroom_32x64.png create mode 100644 assets/graphics/terrains/mushroom_32x64.png.import create mode 100644 assets/graphics/terrains/veg_32x32.png create mode 100644 assets/graphics/terrains/veg_32x32.png.import diff --git a/assets/graphics/objects/crate.png b/assets/graphics/objects/crate.png new file mode 100644 index 0000000000000000000000000000000000000000..2b8bdcd0c0b752f7079f09620a2121e2f556f925 GIT binary patch literal 1761 zcmeAS@N?(olHy`uVBq!ia0y~yV66aQ7G|Kx3)K}YKuS8mC&ZPJk@4EviZj!bwidfg zOR#ARv&?lj3p3XP%3l(wOM?7@862M7NMm4NEAe!345_&F=3paGhM{4>-<9Gk znLx}@fG-5n-t%Qiw=HDgiN4G+!%1VxA&nj<%_&X>BHo%UP8u@~@xA||ayrX=Yw@c0 zyIl&!e2eOzewl*LKoaCON2))%{^Iur)(-I_+>c!MD8vcqcZh#%s&L!`7OCC(ZT*}5 z6@oy)Bi%qjko+T7n7sAUX?G5p-eFs}u-+`;_)!!EU@agc55!z6;G16XZ)x!P7yfz& z#SLsLu^Sin_Ocky)sk&TAFjUh_MP-Ji#s_xAvVKYhGg^pX?%B&O0};w*WR}LXz;H5 zjk~e9p7otM@`~+RfsV?wOo=^<5XlcM5Sp|AOUVUd#V+YLkwB-qK{vgR@Vg zdKT^%g?o!L7ia&RJ^f|C<*jFLpF~v#4KrXU-YXA!eBn|gXSHY5^;ZcRx!ZBO?oXCg zN&D$(C1Jn1E2VTlG8u#14099Il}(^vC@*{LxWP<9@Al=SF!t`VaoxB)!v5>o(;rup z>*WKZ-)zMdfYm#~r}Zv7{AuR`#AxyOjLF2a+COAqGwX zVAt99L|H|7etHtIYrUj`Fwo(!#DNIjk4*WAyweN#Ok?IfuzvD?1Ka*Kbx0~g1S~9F zJ)g8crE>Rg*Oa#xv%B|-Atg3gA^_XK|2W%3>{|4lOE)!juhpEz6|0SlYZ*5ef0NnQ z@bV+=&x(nlmPi0iTCqz3tK4;;V}C;o303<(_t1VZ3evop9BaQq)Hy@wH7 bkWwJVy}a1dc9wyq7sw1xS3j3^P6{13c0;zz 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 b1DNH#Dz|$Kzczt3Z-}m@(cMb*ColgW2-TUV literal 0 HcmV?d00001 diff --git a/assets/graphics/terrains/Terrain (32x32).png.import b/assets/graphics/terrains/Terrain (32x32).png.import new file mode 100644 index 0000000..582f381 --- /dev/null +++ b/assets/graphics/terrains/Terrain (32x32).png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://kyooaow1jeaa" +path="res://.godot/imported/Terrain (32x32).png-7361ca574569f6e5ff16ef11d25a8904.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/graphics/terrains/Terrain (32x32).png" +dest_files=["res://.godot/imported/Terrain (32x32).png-7361ca574569f6e5ff16ef11d25a8904.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/terrains/mushroom_32x64.png b/assets/graphics/terrains/mushroom_32x64.png new file mode 100644 index 0000000000000000000000000000000000000000..0383c74aa1fe26b0b966f0d17bc617d117312d0b GIT binary patch literal 2106 zcmV-A2*vk_P)z@;j|==^1poj5AY({UO#lFTCIA3{ga82g0001h=l}q9FaQARU;qF* zm;eA5aGbhPJOBUy24YJ`L;(K){{a7>y{D4^000SaNLh0L04^f{04^f|c%?sf00007 zbV*G`2kHtH0168`K^#f|00(|aL_t(&-tCu5ZyVPY$A9-RBxi`6Y_)AvtsBo-Qa- zQtiaDoOV&@4-oS@_niNnd*+-!;S6Uu!x_$ShBKVu4F7NV`Ezac%gr@)QhRlpARk`Y z5|g<{?*HoA?Wgvqo;L84Z1gmF>DSjE{F8EB{itmC^j=4vnZWz)Rdu0J^m$;p5~X{M zSg+J$O)1a-%rc>$or5OYzYf< z{?kn8jx@W0t9~|y?PkTjZ&du7ulJH?BJjcawyhLF#nA-d?e(1Vb*ozu#6d=26ex>T z3SBlRg??KcH+yaX$S81ckKsCz>r z($G8Z^TKAN?(8ITqAe&E3qyccqV)bsasGC`vdQ?|>kL-58PwVgYi))rTa3=VMiy^@ zvKZwlSw%ZEk9@ic%!z8?qstr1MHj24xf%+AHl)!C!`249)`g{QuXTZ8>p9YB1yLFi zkJXBHNptnQb8F$a|KXJ_VWU(5@+T7b#pb!<;{5emM!RZ)MigK*=xjn^G9(&z536+C zqc|C0(lN@XfX8a6hlaJPwT(#E0JuFJy2r$Oqy`f2g94BTmP(k@C>!EXp>>WK?oiDV zO!@*z+?dzL!yV$zb$7rmXf9!qp4?ql+zjHj1$4;I#~Gr>BWWstZas6eKU%zK>ef38xIx+=Z$k~ zWn)|MJXkML2vCbaAKfrHs9^y!c}V5HVk(xT+o9i^us77~jfCM;5P=4kE^bNUuS{!; zEm*dzs?InUTiXgDELdFFq#suC)}dXGQl9+B06jQQ_hHl_cfxG!86}?m3G7XTo;Rd{ z!RDTMQ7lnWaQ9ddR!fRztcU}Tww76Cl}Y0q&P|bSN^vsyhAA!}9`A+JDV#u(3wuu3 z*8wxDv02WF_w4y}vB>T2B>oryr4D|JAW9)hk$S~=25FKb%iwZ^j6$LCqHrE2nP=>T zp%bQo%-1|R7mJU4hJ%UFwStZmk0W2LP_-Xj z-jI8V-!r1>4rLok6WB#J%0X+U-ZD}}P!NlOSxz^}csS8Kmn<_VZ02HzJ3y(mDN^*^+uiZwJPmWMAJmP@#0Gi2HiEb1HG{s*{9ZoN4MdVyPf{>!B=;a%dfsV zPn%X~t2*i+2a~7vbt(ddVv%yCLbX~&DTOFQF$_=jcm7la zw9*)3vDTuL!We_r`hQ1Y-o|9E6BjM*lx{TN3FOo(zas*i5jZ38-zVU`_lIAgAdAYE zgR>)gPx3tf&IxF(&7laLt6+5?qZh~Jb8AoBU!G|A?wgl&p6BK5i`#b=_sZp%s9YwD z=d-|hp;D~?aP!6vul(=_WB2Kw8#WF{pWN-ZXU%~9?cc8tw6W!zH+H!6;`1~bb?S`< z^=6Y=qe;Elq_xuI(u>b87yWUN^iJacL|gFjd+*3sU))$;zxMhY)a&&_=~b!l{R6E4 k@YNSL`1rkdEX>4Tx04R}tkv&MmKpe$iTcsiu5i5!~WT;Lph>AFB6^c+H)C#RSm|Xe=O&XFE z7e~Rh;NZt%)xpJCR|i)?5c~jf7n~Gbq{ROvg%&X$9QWhhy~o`#<}3IpJ#@RbZVYBOe_@ISZ-rhG*sd#;)tSZl<&{D ztZ?4qtd^^+c~AbrP)=J}<~q$0B(R7jh!7y7iW17O5TjKi#YBqs;~xHD$1jpgCRYiJ z91EyGh2;3b|KNAGW`1(QO$x<<&KKMM7zKj6K%-{c-^aGyH~|9Bz?IhWSL(pbC+W48 z7C8cXw}Ff6mL~53mpj1FlP(#OBL!&s^LgO?jJ_!g^xp#AYi@7NeVjf3Y3eF@0~{Oz zV+G1y_jq?#dvE`qY4-O6go1LeRQ&;x00006VoOIv0RI600RN!9r;`8x010qNS#tmY zE+YT{E+YYWr9XB6000McNliru=>riLDmieSad^gZEa<4bO1wgWnpw> zWFU8GbZ8()Nlj2!fese{004VQL_t(o!|ju?4Zt7_1PueQT$ad4EWvVFfK*5>Yzf;q zY5pn-!u{hw1ONa4006+xlv4-w(dJs;*Hb5K$3aK5xV}Y5s6Pw5~a#BWiLE#M?t^`K{fyY002ov JPDHLkV1hjJ7cT$+ literal 0 HcmV?d00001 diff --git a/assets/graphics/terrains/veg_32x32.png.import b/assets/graphics/terrains/veg_32x32.png.import new file mode 100644 index 0000000..eb47460 --- /dev/null +++ b/assets/graphics/terrains/veg_32x32.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c8jhlduxe8p77" +path="res://.godot/imported/veg_32x32.png-c029688fc25e4703c3489b261b9edb06.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/graphics/terrains/veg_32x32.png" +dest_files=["res://.godot/imported/veg_32x32.png-c029688fc25e4703c3489b261b9edb06.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 487244a..157913e 100644 --- a/project.godot +++ b/project.godot @@ -17,7 +17,11 @@ config/icon="res://icon.svg" [display] -window/stretch/mode="canvas_items" +window/size/viewport_width=400 +window/size/viewport_height=225 +window/size/window_width_override=900 +window/size/window_height_override=504 +window/stretch/mode="viewport" window/stretch/aspect="expand" [file_customization] @@ -32,11 +36,31 @@ folder_colors={ shove={ "deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":76,"key_label":0,"unicode":108,"location":0,"echo":false,"script":null) +, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":1,"pressure":0.0,"pressed":true,"script":null) ] } shoot={ "deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":88,"key_label":0,"unicode":120,"location":0,"echo":false,"script":null) +, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":0,"pressure":0.0,"pressed":true,"script":null) +] +} +left={ +"deadzone": 0.2, +"events": [Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":13,"pressure":0.0,"pressed":true,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194319,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) +] +} +right={ +"deadzone": 0.2, +"events": [Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":14,"pressure":0.0,"pressed":true,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194321,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) +] +} +jump={ +"deadzone": 0.2, +"events": [Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":11,"pressure":0.0,"pressed":true,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":32,"key_label":0,"unicode":32,"location":0,"echo":false,"script":null) ] } diff --git a/scenes/crate.tscn b/scenes/crate.tscn index 6c18709..2b6a7f3 100644 --- a/scenes/crate.tscn +++ b/scenes/crate.tscn @@ -1,6 +1,7 @@ [gd_scene format=3 uid="uid://5xgx7qarkj3o"] [ext_resource type="Script" uid="uid://rp1f47ytyerd" path="res://scripts/crate.gd" id="1_b66cd"] +[ext_resource type="Texture2D" uid="uid://bpau5jb260ta0" path="res://assets/graphics/objects/crate.png" id="2_dwt0d"] [sub_resource type="RectangleShape2D" id="RectangleShape2D_o7s7a"] @@ -11,3 +12,8 @@ metadata/_edit_group_ = true [node name="CollisionShape2D" type="CollisionShape2D" parent="." unique_id=536978238] shape = SubResource("RectangleShape2D_o7s7a") debug_color = Color(0.8398786, 0.37498713, 0.22887537, 0.41960785) + +[node name="Sprite2D" type="Sprite2D" parent="." unique_id=611252705] +texture_filter = 1 +scale = Vector2(0.07, 0.07) +texture = ExtResource("2_dwt0d") diff --git a/scenes/game.tscn b/scenes/game.tscn index 6173066..cb91f73 100644 --- a/scenes/game.tscn +++ b/scenes/game.tscn @@ -1,10 +1,397 @@ -[gd_scene format=3 uid="uid://cxa67u8cwsn6x"] +[gd_scene format=4 uid="uid://cxa67u8cwsn6x"] [ext_resource type="Script" uid="uid://ct51411gsine2" path="res://scripts/gamecontroller.gd" id="1_lnu2h"] [ext_resource type="Script" uid="uid://dv2q4p6jb8h4s" path="res://scripts/scene_manager.gd" id="2_lbhrr"] [ext_resource type="PackedScene" uid="uid://b22qsgmtr231s" path="res://scenes/trigger.tscn" id="2_lnu2h"] [ext_resource type="PackedScene" uid="uid://5xgx7qarkj3o" path="res://scenes/crate.tscn" id="3_iywne"] +[ext_resource type="Texture2D" uid="uid://kyooaow1jeaa" path="res://assets/graphics/terrains/Terrain (32x32).png" id="3_p57ef"] +[ext_resource type="Texture2D" uid="uid://c8jhlduxe8p77" path="res://assets/graphics/terrains/veg_32x32.png" id="4_gee14"] [ext_resource type="PackedScene" uid="uid://dtegcgc8xcxfg" path="res://scenes/player.tscn" id="4_iywne"] +[ext_resource type="Texture2D" uid="uid://bu8oc3yypgigw" path="res://assets/graphics/terrains/mushroom_32x64.png" id="5_0tnpc"] + +[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_u5sy4"] +texture = ExtResource("3_p57ef") +texture_region_size = Vector2i(32, 32) +0:0/0 = 0 +0:0/0/terrain_set = 0 +0:0/0/terrain = 0 +0:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +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/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +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/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +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/physics_layer_0/polygon_0/points = PackedVector2Array(16, -16, -16, -16, -16, 16, 16, 16) +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/physics_layer_0/polygon_0/points = PackedVector2Array(0.9330139, -16, -16, -16, -16, 16, 1.8660278, 16) +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/physics_layer_0/polygon_0/points = PackedVector2Array(16, -16, -1.2440224, -16, -0.31100464, 16, 16, 16) +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/physics_layer_0/polygon_0/points = PackedVector2Array(16, -16, -16, -16, -16, 16, 16, 16) +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/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -8.086128, 16, -16, 6.842106) +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/physics_layer_0/polygon_0/points = PackedVector2Array(16, -0.31100464, -16, -0.9330139, -16, 16, 16, 16) +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/physics_layer_0/polygon_0/points = PackedVector2Array(16, -16, -16, -16, -16, 16, 16, 16) +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/physics_layer_0/polygon_0/points = PackedVector2Array(16, -16, -16, -16, -16, 16, 16, 16) +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, 2.488037, -16, 2.1770325, 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(16, -16, 2.488037, -16, 2.1770325, 16, 16, 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/physics_layer_0/polygon_0/points = PackedVector2Array(16, -16, -16, -16, -16, 0, 16, -0.6220093) +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/physics_layer_0/polygon_0/points = PackedVector2Array(16, -16, -16, -16, -16, 0, 16, -0.6220093) +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/physics_layer_0/polygon_0/points = PackedVector2Array(16, -16, -16, -16, -16, 16, 16, 16) +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/physics_layer_0/polygon_0/points = PackedVector2Array(16, -16, -16, -16, -16, 16, 16, 16) +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/physics_layer_0/polygon_0/points = PackedVector2Array(16, -16, -16, -16, -16, 16, 16, 16) +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/physics_layer_0/polygon_0/points = PackedVector2Array(16, -16, -16, -16, -16, 16, 16, 16) +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/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +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/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +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/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +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, 2.488037, -16, 2.1770325, 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(16, -16, 2.488037, -16, 2.1770325, 16, 16, 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/physics_layer_0/polygon_0/points = PackedVector2Array(16, 0.9330139, -16, 0.9330139, -16, 16, 16, 16) +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/physics_layer_0/polygon_0/points = PackedVector2Array(16, 0.9330139, -16, 0.9330139, -16, 16, 16, 16) +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/physics_layer_0/polygon_0/points = PackedVector2Array(16, -16, -16, -16, -16, 16, 16, 16) +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/physics_layer_0/polygon_0/points = PackedVector2Array(16, -16, -16, -16, -16, 16, 16, 16) +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/physics_layer_0/polygon_0/points = PackedVector2Array(16, -16, -16, -16, -16, 16, 16, 16) +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/physics_layer_0/polygon_0/points = PackedVector2Array(16, -16, -16, -16, -16, 16, 16, 16) +16:4/0/terrains_peering_bit/left_side = 0 +16:4/0/terrains_peering_bit/top_side = 0 + +[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_vtaks"] +texture = ExtResource("4_gee14") +texture_region_size = Vector2i(32, 32) +0:0/0 = 0 +0:0/0/terrain_set = 0 +0:0/0/terrain = 1 + +[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_kvpfn"] +texture = ExtResource("5_0tnpc") +texture_region_size = Vector2i(32, 32) +0:0/0 = 0 +0:0/0/terrain_set = 0 +0:0/0/terrains_peering_bit/bottom_side = 1 +0:1/0 = 0 +0:1/0/terrain_set = 0 +0:1/0/terrain = 1 +0:1/0/terrains_peering_bit/top_side = 1 + +[sub_resource type="TileSet" id="TileSet_mvphy"] +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) +terrain_set_0/terrain_1/name = "Veg" +terrain_set_0/terrain_1/color = Color(0.5, 0.4375, 0.25, 1) +sources/0 = SubResource("TileSetAtlasSource_u5sy4") +sources/1 = SubResource("TileSetAtlasSource_vtaks") +sources/2 = SubResource("TileSetAtlasSource_kvpfn") [sub_resource type="RectangleShape2D" id="RectangleShape2D_mvphy"] size = Vector2(66, 20) @@ -17,8 +404,13 @@ script = ExtResource("1_lnu2h") [node name="SceneManager" type="Node2D" parent="." unique_id=1778809182] script = ExtResource("2_lbhrr") +[node name="TileMapLayer" type="TileMapLayer" parent="." unique_id=374407051] +texture_filter = 1 +tile_map_data = PackedByteArray("AAASAA0AAAAEAAQAAAAVAA0AAAAAAAQAAAAWAA0AAAABAAQAAAAXAA0AAAABAAQAAAAYAA0AAAAQAAQAAAAYAAwAAAAGAAMAAAAYAAsAAAAAAAAAAAAZAAsAAAABAAAAAAAZAAwAAAABAAIAAAAaAAwAAAACAAIAAAAaAAsAAAACAAAAAAAWAAkAAAACAAQAAAAVAAkAAAAAAAQAAAANABIAAAABAAAAAAAOABIAAAABAAAAAAAPABIAAAABAAAAAAAQABIAAAABAAAAAAARABIAAAABAAAAAAASABIAAAABAAAAAAATABIAAAABAAAAAAAUABIAAAABAAAAAAAVABIAAAABAAAAAAAWABIAAAABAAAAAAAXABIAAAABAAAAAAAYABIAAAABAAAAAAAZABIAAAABAAAAAAAaABIAAAABAAAAAAAbABIAAAAHAAEAAAAbABEAAAAAAAAAAAAcABEAAAACAAAAAAAcABIAAAACAAEAAAANABMAAAAHAAAAAAAOABMAAAAGAAEAAAAPABMAAAAHAAEAAAAQABMAAAAHAAAAAAAQABQAAAAKAAQAAAAPABQAAAAJAAQAAAAOABQAAAABAAIAAAANABQAAAAAAAIAAAARABMAAAAGAAAAAAASABMAAAAGAAAAAAATABMAAAAHAAAAAAASABQAAAAJAAQAAAARABQAAAAJAAQAAAAYABMAAAAGAAAAAAAZABMAAAAGAAAAAAAaABMAAAAGAAAAAAAaABQAAAABAAIAAAAbABMAAAAGAAAAAAAcABMAAAACAAIAAAAbABQAAAACAAIAAAAYABQAAAABAAIAAAAXABMAAAAHAAAAAAAWABMAAAAGAAAAAAAVABMAAAAGAAAAAAAVABQAAAABAAIAAAAUABMAAAAGAAAAAAAUABQAAAAJAAQAAAATABQAAAAKAAQAAAAWABQAAAABAAIAAAAXABQAAAABAAIAAAAZABQAAAABAAIAAAALABMAAAABAAIAAAAMABMAAAABAAIAAAAMABIAAAABAAAAAAALABIAAAABAAAAAAAKABIAAAABAAAAAAAKABMAAAABAAIAAAAJABMAAAAAAAIAAAAJABIAAAAQAAEAAAAIABIAAAAAAAIAAAAIABEAAAAAAAEAAAAJABEAAAACAAEAAAAIABAAAAAAAAEAAAAIAA8AAAAQAAEAAAAJAA8AAAACAAAAAAAJABAAAAACAAEAAAAIAA4AAAACAAAAAAAHAA8AAAAAAAIAAAAHAA4AAAAGAAQAAAAHAA0AAAAQAAMAAAAGAA0AAAAPAAQAAAAGAAwAAAAEAAEAAAAGAAsAAAAPAAMAAAAHAAsAAAABAAQAAAAIAAsAAAABAAQAAAAJAAsAAAAKAAQAAAAKAAsAAAACAAIAAAAKAAoAAAACAAAAAAAJAAoAAAAAAAAAAAANABAAAAACAAQAAAAMABAAAAABAAQAAAALABAAAAAAAAQAAAAVAAwAAQAAAAAAAAAYAAoAAQAAAAAAAAAZAAoAAQAAAAAAAAAIAA0AAQAAAAAAAAAJAAkAAQAAAAAAAAAWAAwAAgAAAAEAAAAWAAsAAgAAAAAAAAAbABAAAgAAAAEAAAAbAA8AAgAAAAAAAAAaABEAAQAAAAAAAAA=") +tile_set = SubResource("TileSet_mvphy") + [node name="StaticBody2D" type="StaticBody2D" parent="." unique_id=1148293182] -position = Vector2(568, 408) +position = Vector2(713, 631) metadata/_edit_group_ = true [node name="CollisionShape2D" type="CollisionShape2D" parent="StaticBody2D" unique_id=1634682333] @@ -28,7 +420,7 @@ shape = SubResource("RectangleShape2D_mvphy") position = Vector2(740, 551) [node name="Player" parent="." unique_id=735255374 instance=ExtResource("4_iywne")] -position = Vector2(572, 385) +position = Vector2(594, 390) [node name="StaticBody2D2" type="StaticBody2D" parent="." unique_id=958110307] position = Vector2(538, 582) diff --git a/scenes/player.tscn b/scenes/player.tscn index 7638f2d..3314295 100644 --- a/scenes/player.tscn +++ b/scenes/player.tscn @@ -204,4 +204,7 @@ sprite_frames = SubResource("SpriteFrames_mvphy") animation = &"fall" autoplay = "idle" +[node name="Camera2D" type="Camera2D" parent="." unique_id=2099904623] +offset = Vector2(0, -30) + [connection signal="animation_finished" from="PlayerGraphic" to="." method="_animation_finished"] diff --git a/scripts/gamecontroller.gd b/scripts/gamecontroller.gd index 3454dec..c375331 100644 --- a/scripts/gamecontroller.gd +++ b/scripts/gamecontroller.gd @@ -5,7 +5,7 @@ signal destroySignal(body) # Called when the node enters the scene tree for the first time. func _ready() -> void: - pass # Replace with function body. + get_window().grab_focus() # Called every frame. 'delta' is the elapsed time since the previous frame. diff --git a/scripts/player.gd b/scripts/player.gd index 6646f3e..01d4963 100644 --- a/scripts/player.gd +++ b/scripts/player.gd @@ -63,14 +63,14 @@ func handle_input()->void: #shove left pushTarget.apply_central_impulse(Vector2(-1,0) * shove_power ) # Handle jump. - if Input.is_action_just_pressed("ui_accept") and is_on_floor(): + if Input.is_action_just_pressed("jump") and is_on_floor(): velocity.y = JUMP_VELOCITY current_player_state=PlayerStates.JUMPING upJump = true # Get the input direction and handle the movement/deceleration. # As good practice, you should replace UI actions with custom gameplay actions. - direction = Input.get_axis("ui_left", "ui_right") + direction = Input.get_axis("left", "right") func handle_movement()->void: if direction: velocity.x = direction * SPEED @@ -94,7 +94,7 @@ func handle_collisions()->void: print("Something on my right") #get the thing I can shove var collider = right_cast.get_collider() - if collider is Node: + if collider is RigidBody2D: pushRightEnabled = true pushTarget = collider else: @@ -103,7 +103,7 @@ func handle_collisions()->void: if left_cast.is_colliding(): print("Something on my left") var collider = left_cast.get_collider() - if collider is Node: + if collider is RigidBody2D: pushLeftEnabled = true pushTarget = collider else: