diff --git a/assets/bg.png b/assets/bg.png new file mode 100644 index 0000000..9250466 Binary files /dev/null and b/assets/bg.png differ diff --git a/assets/bg.png.import b/assets/bg.png.import new file mode 100644 index 0000000..55ad821 --- /dev/null +++ b/assets/bg.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://byibhn8fi6ve0" +path="res://.godot/imported/bg.png-23a59c2e9cba2223a50fa3fe41b70b25.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/bg.png" +dest_files=["res://.godot/imported/bg.png-23a59c2e9cba2223a50fa3fe41b70b25.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/prefabs/snake_segment.gd b/prefabs/snake_segment.gd index da2d764..2d024a1 100644 --- a/prefabs/snake_segment.gd +++ b/prefabs/snake_segment.gd @@ -9,18 +9,21 @@ var want_direction : Vector2 = Vector2.RIGHT var start_pos : Vector2 var target_pos : Vector2 var move_progress : float + +var snake_speed : float = 1 # if snake is the head, it chooses where it goes # if snake is not the head, it goes where the one infront went # Called when the node enters the scene tree for the first time. func _ready() -> void: + target_pos = position start_pos = position get_new_target() # Called every frame. 'delta' is the elapsed time since the previous frame. func _process(delta: float) -> void: - move_progress += delta + move_progress += delta * snake_speed if Input.get_vector("left","right","up","down").length() > 0: want_direction = Input.get_vector("left","right","up","down") position = lerp(start_pos,target_pos,move_progress) @@ -30,7 +33,8 @@ func _process(delta: float) -> void: func get_new_target(): start_pos=target_pos if is_head: - direction = want_direction + if want_direction != direction*-1: + direction = want_direction target_pos = start_pos + (direction * 320) else: target_pos = next_segment.position diff --git a/snakeManager.gd b/snakeManager.gd index 295165c..08857a4 100644 --- a/snakeManager.gd +++ b/snakeManager.gd @@ -1,6 +1,7 @@ extends Node2D -@export var segements : Array[snake_segment] +var segements : Array[snake_segment] +@export var SNAKE_SPEED : float = 0.2 # Called when the node enters the scene tree for the first time. func _ready() -> void: @@ -11,6 +12,8 @@ func _ready() -> void: segements[i].is_head = true else: segements[i].next_segment = segements[i-1] + segements[i].snake_speed = SNAKE_SPEED + segements[i].z_index = 100-i # Called every frame. 'delta' is the elapsed time since the previous frame. diff --git a/test.tscn b/test.tscn index a65d1a0..762027d 100644 --- a/test.tscn +++ b/test.tscn @@ -1,13 +1,20 @@ -[gd_scene load_steps=4 format=3 uid="uid://daqqurdrnk61h"] +[gd_scene load_steps=5 format=3 uid="uid://daqqurdrnk61h"] [ext_resource type="Script" uid="uid://bue4xxejdsmqh" path="res://snakeManager.gd" id="1_6uqi0"] [ext_resource type="PackedScene" uid="uid://bwoeu7ask0fck" path="res://prefabs/snake_segment.tscn" id="1_8uh7m"] +[ext_resource type="Texture2D" uid="uid://byibhn8fi6ve0" path="res://assets/bg.png" id="1_ppyta"] [ext_resource type="PackedScene" uid="uid://cusdydgg4b1bo" path="res://prefabs/braincell.tscn" id="2_6uqi0"] [node name="Node2D" type="Node2D"] +[node name="Sprite2D" type="Sprite2D" parent="."] +position = Vector2(-160, -160) +scale = Vector2(320, 320) +texture = ExtResource("1_ppyta") + [node name="Snake" type="Node2D" parent="."] script = ExtResource("1_6uqi0") +SNAKE_SPEED = 1.0 [node name="SnakeSegment" parent="Snake" instance=ExtResource("1_8uh7m")] is_head = true @@ -15,19 +22,12 @@ is_head = true [node name="Braincell" parent="Snake/SnakeSegment" instance=ExtResource("2_6uqi0")] [node name="SnakeSegment2" parent="Snake" node_paths=PackedStringArray("next_segment") instance=ExtResource("1_8uh7m")] +position = Vector2(-320, 0) next_segment = NodePath("../SnakeSegment") [node name="SnakeSegment3" parent="Snake" node_paths=PackedStringArray("next_segment") instance=ExtResource("1_8uh7m")] -next_segment = NodePath("../SnakeSegment2") - -[node name="SnakeSegment4" parent="Snake" node_paths=PackedStringArray("next_segment") instance=ExtResource("1_8uh7m")] -next_segment = NodePath("../SnakeSegment2") - -[node name="SnakeSegment5" parent="Snake" node_paths=PackedStringArray("next_segment") instance=ExtResource("1_8uh7m")] -next_segment = NodePath("../SnakeSegment2") - -[node name="SnakeSegment6" parent="Snake" node_paths=PackedStringArray("next_segment") instance=ExtResource("1_8uh7m")] +position = Vector2(-640, 0) next_segment = NodePath("../SnakeSegment2") [node name="Camera2D" type="Camera2D" parent="."] -zoom = Vector2(0.1, 0.1) +zoom = Vector2(0.05, 0.05)