diff --git a/assets/braincell.png b/assets/braincell.png new file mode 100644 index 0000000..1065d55 Binary files /dev/null and b/assets/braincell.png differ diff --git a/assets/braincell.png.import b/assets/braincell.png.import new file mode 100644 index 0000000..cdbcb1f --- /dev/null +++ b/assets/braincell.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://qyd5e7lb2esx" +path="res://.godot/imported/braincell.png-ca3d91a33cc47609c784cdc83712f42f.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/braincell.png" +dest_files=["res://.godot/imported/braincell.png-ca3d91a33cc47609c784cdc83712f42f.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +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/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/segement.png b/assets/segement.png new file mode 100644 index 0000000..5c26f29 Binary files /dev/null and b/assets/segement.png differ diff --git a/assets/segement.png.import b/assets/segement.png.import new file mode 100644 index 0000000..9c29a96 --- /dev/null +++ b/assets/segement.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://l8x3dp68yyxr" +path="res://.godot/imported/segement.png-d0d4be4fde700a169fe694f3118ea335.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/segement.png" +dest_files=["res://.godot/imported/segement.png-d0d4be4fde700a169fe694f3118ea335.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +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/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/braincell.gd b/braincell.gd new file mode 100644 index 0000000..bff5929 --- /dev/null +++ b/braincell.gd @@ -0,0 +1,25 @@ +extends CharacterBody2D + + +const SPEED = 170.0 +const JUMP_VELOCITY = -400.0 + + +func _physics_process(delta: float) -> void: + # Add the gravity. + if not is_on_floor(): + velocity += get_gravity() * delta + + # Handle jump. + if Input.is_action_just_pressed("ui_accept") and is_on_floor(): + velocity.y = JUMP_VELOCITY + + # Get the input direction and handle the movement/deceleration. + # As good practice, you should replace UI actions with custom gameplay actions. + var direction := Input.get_vector("left","right","up","down") + if direction: + velocity = direction * SPEED + else: + velocity = velocity.move_toward(Vector2(0,0), SPEED) + + move_and_slide() diff --git a/braincell.gd.uid b/braincell.gd.uid new file mode 100644 index 0000000..71bed7a --- /dev/null +++ b/braincell.gd.uid @@ -0,0 +1 @@ +uid://b48mlxrnte625 diff --git a/project.godot b/project.godot index 089154d..26befe0 100644 --- a/project.godot +++ b/project.godot @@ -11,14 +11,49 @@ config_version=5 [application] config/name="Snake" +run/main_scene="uid://daqqurdrnk61h" config/features=PackedStringArray("4.4", "GL Compatibility") config/icon="res://icon.svg" +[display] + +window/size/viewport_width=640 +window/size/viewport_height=360 +window/stretch/mode="canvas_items" + [editor_plugins] enabled=PackedStringArray("res://addons/godot-donut-collision-polygon-2d-7780d026ae3d4a37fe68f43cc1f97ba664dd775d/addons/donut_collision_polygon2D/plugin.cfg") +[input] + +left={ +"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":65,"key_label":0,"unicode":97,"location":0,"echo":false,"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(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":68,"key_label":0,"unicode":100,"location":0,"echo":false,"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) +] +} +up={ +"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":87,"key_label":0,"unicode":119,"location":0,"echo":false,"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":4194320,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) +] +} +down={ +"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":83,"key_label":0,"unicode":115,"location":0,"echo":false,"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":4194322,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) +] +} + [rendering] +textures/canvas_textures/default_texture_filter=0 renderer/rendering_method="gl_compatibility" renderer/rendering_method.mobile="gl_compatibility" diff --git a/test.tscn b/test.tscn new file mode 100644 index 0000000..f7974f2 --- /dev/null +++ b/test.tscn @@ -0,0 +1,34 @@ +[gd_scene load_steps=6 format=3 uid="uid://daqqurdrnk61h"] + +[ext_resource type="Texture2D" uid="uid://l8x3dp68yyxr" path="res://assets/segement.png" id="1_6uqi0"] +[ext_resource type="Script" uid="uid://deq18nev0kwbg" path="res://addons/godot-donut-collision-polygon-2d-7780d026ae3d4a37fe68f43cc1f97ba664dd775d/addons/donut_collision_polygon2D/donut_collision_polygon2D.gd" id="2_ppyta"] +[ext_resource type="Script" uid="uid://b48mlxrnte625" path="res://braincell.gd" id="3_ppyta"] +[ext_resource type="Texture2D" uid="uid://qyd5e7lb2esx" path="res://assets/braincell.png" id="3_ykrsh"] + +[sub_resource type="CircleShape2D" id="CircleShape2D_g14j6"] +radius = 16.0 + +[node name="Node2D" type="Node2D"] + +[node name="SnakeSegment" type="AnimatableBody2D" parent="."] + +[node name="Sprite2D" type="Sprite2D" parent="SnakeSegment"] +texture = ExtResource("1_6uqi0") + +[node name="DonutCollisionPolygon2D" type="CollisionPolygon2D" parent="SnakeSegment"] +polygon = PackedVector2Array(9.85808e-15, -161, 31.4095, -157.906, 61.612, -148.745, 89.4468, -133.867, 113.844, -113.844, 133.867, -89.4468, 148.745, -61.612, 157.906, -31.4095, 161, 0, 157.906, 31.4095, 148.745, 61.612, 133.867, 89.4468, 113.844, 113.844, 89.4468, 133.867, 61.612, 148.745, 31.4095, 157.906, 9.85808e-15, 161, -31.4095, 157.906, -61.612, 148.745, -89.4468, 133.867, -113.844, 113.844, -133.867, 89.4468, -148.745, 61.612, -157.906, 31.4095, -161, 1.97162e-14, -157.906, -31.4095, -148.745, -61.612, -133.867, -89.4468, -113.844, -113.844, -89.4468, -133.867, -61.612, -148.745, -31.4095, -157.906, -2.95742e-14, -161, -2.92069e-14, -159, -31.0194, -155.945, -60.8467, -146.897, -88.3357, -132.204, -112.43, -112.43, -132.204, -88.3357, -146.897, -60.8467, -155.945, -31.0194, -159, 1.94712e-14, -155.945, 31.0194, -146.897, 60.8467, -132.204, 88.3357, -112.43, 112.43, -88.3357, 132.204, -60.8467, 146.897, -31.0194, 155.945, 9.73562e-15, 159, 31.0194, 155.945, 60.8467, 146.897, 88.3357, 132.204, 112.43, 112.43, 132.204, 88.3357, 146.897, 60.8467, 155.945, 31.0194, 159, 0, 155.945, -31.0194, 146.897, -60.8467, 132.204, -88.3357, 112.43, -112.43, 88.3357, -132.204, 60.8467, -146.897, 31.0194, -155.945, 9.73562e-15, -159, 0.0001, -161) +script = ExtResource("2_ppyta") +radius = 160.0 +metadata/_custom_type_script = "uid://deq18nev0kwbg" + +[node name="Braincell" type="CharacterBody2D" parent="."] +motion_mode = 1 +script = ExtResource("3_ppyta") + +[node name="Sprite2D" type="Sprite2D" parent="Braincell"] +texture = ExtResource("3_ykrsh") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Braincell"] +shape = SubResource("CircleShape2D_g14j6") + +[node name="Camera2D" type="Camera2D" parent="."]