snake gaming
This commit is contained in:
parent
737128614a
commit
f0f173ee06
7 changed files with 83 additions and 9 deletions
|
|
@ -1,2 +1,6 @@
|
|||
# Snake
|
||||
Snake jam for SXSW Jam 2025
|
||||
|
||||
|
||||
- make the z-order of the current room higher
|
||||
- disable colliders (and maybe darken?) the non-active rooms
|
||||
|
|
|
|||
24
camera_2d.gd
Normal file
24
camera_2d.gd
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
extends Camera2D
|
||||
|
||||
var target : Node2D
|
||||
@export var temp_segment : Node2D
|
||||
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
func _ready() -> void:
|
||||
pass # Replace with function body.
|
||||
|
||||
|
||||
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||
func _process(delta: float) -> void:
|
||||
if (Input.is_action_just_pressed("test_switch_cam")):
|
||||
if(target):
|
||||
target = null
|
||||
else:
|
||||
target = temp_segment
|
||||
|
||||
if target:
|
||||
position = lerp(position, target.position, 0.1 * delta)
|
||||
zoom = lerp(zoom, Vector2(1,1),0.1 * delta)
|
||||
else:
|
||||
position = Vector2(0,0)
|
||||
zoom = Vector2(0.05,0.05)
|
||||
1
camera_2d.gd.uid
Normal file
1
camera_2d.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
|||
uid://b0djy8fmq4qjq
|
||||
|
|
@ -39,3 +39,14 @@ func get_new_target():
|
|||
else:
|
||||
target_pos = next_segment.position
|
||||
move_progress = 0
|
||||
|
||||
func become_real():
|
||||
#activate colliders
|
||||
z_index = 10
|
||||
modulate = Color.WHITE
|
||||
pass
|
||||
|
||||
func become_fake():
|
||||
z_index = 0
|
||||
modulate = Color.DIM_GRAY
|
||||
pass
|
||||
|
|
|
|||
|
|
@ -51,6 +51,11 @@ down={
|
|||
, 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)
|
||||
]
|
||||
}
|
||||
test_switch_cam={
|
||||
"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":4194309,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
|
||||
]
|
||||
}
|
||||
|
||||
[rendering]
|
||||
|
||||
|
|
|
|||
|
|
@ -1,21 +1,39 @@
|
|||
extends Node2D
|
||||
|
||||
@export var segements_holder : Node2D
|
||||
var segements : Array[snake_segment]
|
||||
@export var SNAKE_SPEED : float = 0.2
|
||||
@export var snake_line : Line2D
|
||||
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
func _ready() -> void:
|
||||
#segements = get_children() as Array[snake_segment]
|
||||
segements.assign(get_children())
|
||||
segements.assign(segements_holder.get_children())
|
||||
for i in segements.size():
|
||||
if i == 0:
|
||||
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
|
||||
#segements[i].z_index = 100-i
|
||||
activate_segment(0)
|
||||
|
||||
|
||||
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||
func _process(delta: float) -> void:
|
||||
redraw_line()
|
||||
pass
|
||||
|
||||
func activate_segment(act_segment : int):
|
||||
for i in segements.size():
|
||||
if act_segment == i:
|
||||
segements[i].become_real()
|
||||
|
||||
else:
|
||||
segements[i].become_fake()
|
||||
|
||||
|
||||
func redraw_line():
|
||||
snake_line.clear_points()
|
||||
for segment in segements:
|
||||
snake_line.add_point(segment.global_position)
|
||||
|
|
|
|||
25
test.tscn
25
test.tscn
|
|
@ -1,9 +1,10 @@
|
|||
[gd_scene load_steps=5 format=3 uid="uid://daqqurdrnk61h"]
|
||||
[gd_scene load_steps=6 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"]
|
||||
[ext_resource type="Script" uid="uid://b0djy8fmq4qjq" path="res://camera_2d.gd" id="5_ykrsh"]
|
||||
|
||||
[node name="Node2D" type="Node2D"]
|
||||
|
||||
|
|
@ -12,22 +13,32 @@ position = Vector2(-160, -160)
|
|||
scale = Vector2(320, 320)
|
||||
texture = ExtResource("1_ppyta")
|
||||
|
||||
[node name="Snake" type="Node2D" parent="."]
|
||||
[node name="Snake" type="Node2D" parent="." node_paths=PackedStringArray("segements_holder", "snake_line")]
|
||||
script = ExtResource("1_6uqi0")
|
||||
segements_holder = NodePath("SegementHolder")
|
||||
SNAKE_SPEED = 1.0
|
||||
snake_line = NodePath("Line2D")
|
||||
|
||||
[node name="SnakeSegment" parent="Snake" instance=ExtResource("1_8uh7m")]
|
||||
[node name="SegementHolder" type="Node2D" parent="Snake"]
|
||||
|
||||
[node name="SnakeSegment" parent="Snake/SegementHolder" instance=ExtResource("1_8uh7m")]
|
||||
is_head = true
|
||||
|
||||
[node name="Braincell" parent="Snake/SnakeSegment" instance=ExtResource("2_6uqi0")]
|
||||
[node name="Braincell" parent="Snake/SegementHolder/SnakeSegment" instance=ExtResource("2_6uqi0")]
|
||||
|
||||
[node name="SnakeSegment2" parent="Snake" node_paths=PackedStringArray("next_segment") instance=ExtResource("1_8uh7m")]
|
||||
[node name="SnakeSegment2" parent="Snake/SegementHolder" 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")]
|
||||
[node name="SnakeSegment3" parent="Snake/SegementHolder" node_paths=PackedStringArray("next_segment") instance=ExtResource("1_8uh7m")]
|
||||
position = Vector2(-640, 0)
|
||||
next_segment = NodePath("../SnakeSegment2")
|
||||
|
||||
[node name="Camera2D" type="Camera2D" parent="."]
|
||||
[node name="Line2D" type="Line2D" parent="Snake"]
|
||||
width = 320.0
|
||||
default_color = Color(0, 0.662728, 1.54018e-06, 1)
|
||||
|
||||
[node name="Camera2D" type="Camera2D" parent="." node_paths=PackedStringArray("temp_segment")]
|
||||
zoom = Vector2(0.05, 0.05)
|
||||
script = ExtResource("5_ykrsh")
|
||||
temp_segment = NodePath("../Snake/SegementHolder/SnakeSegment")
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue