limits and physics

This commit is contained in:
2025-10-14 01:58:28 +02:00
parent bdaf2901db
commit 6d3652aa84
3 changed files with 19 additions and 2 deletions

View File

@@ -195,8 +195,9 @@ sources/2 = SubResource("TileSetAtlasSource_1r5ec")
[node name="Hood" type="Node2D"] [node name="Hood" type="Node2D"]
[node name="TileMapLayer" type="TileMapLayer" parent="."] [node name="TileMapLayer" type="TileMapLayer" parent="."]
tile_map_data = PackedByteArray("AAAAAAAAAgAAAAMAAAAMAAgAAgAAAAMAAAAMAAcAAgAAAAMAAAAMAAYAAgAAAAMAAAAMAAUAAgAAAAMAAAAMAAQAAgAAAAMAAAAMAAMAAgAAAAMAAAAMAAIAAgAAAAMAAAAMAAEAAgAAAAMAAAAMAAAAAgAAAAMAAAALAAgAAgAAAAMAAAALAAcAAgADAAMAAAALAAYAAgAAAAAAAAALAAUAAgAAAAMAAAALAAQAAgADAAMAAAALAAMAAgADAAIAAAALAAIAAgAAAAAAAAALAAEAAgAAAAMAAAALAAAAAgAAAAMAAAAKAAgAAgAAAAMAAAAKAAcAAgAAAAIAAAAKAAYAAgAAAAEAAAAKAAUAAgADAAIAAAAKAAQAAgADAAEAAAAKAAMAAgACAAEAAAAKAAIAAgADAAAAAAAKAAEAAgAAAAMAAAAKAAAAAgAAAAMAAAAJAAgAAgAAAAMAAAAJAAcAAgAAAAMAAAAJAAYAAgABAAIAAAAJAAUAAgACAAEAAAAJAAQAAgACAAEAAAAJAAMAAgACAAEAAAAJAAIAAgADAAAAAAAJAAEAAgAAAAMAAAAJAAAAAgAAAAMAAAAIAAgAAgAAAAMAAAAIAAcAAgADAAMAAAAIAAYAAgADAAEAAAAIAAUAAgACAAEAAAAIAAQAAgACAAEAAAAIAAMAAgACAAEAAAAIAAIAAgADAAAAAAAIAAEAAgAAAAMAAAAIAAAAAgAAAAMAAAAHAAgAAgAAAAMAAAAHAAcAAgABAAIAAAAHAAYAAgACAAEAAAAHAAUAAgACAAEAAAAHAAQAAgACAAEAAAAHAAMAAgACAAEAAAAHAAIAAgADAAAAAAAHAAEAAgAAAAMAAAAHAAAAAgAAAAMAAAAGAAgAAgAAAAMAAAAGAAcAAgABAAIAAAAGAAYAAgACAAEAAAAGAAUAAgACAAEAAAAGAAQAAgACAAEAAAAGAAMAAgACAAEAAAAGAAIAAgADAAAAAAAGAAEAAgAAAAMAAAAGAAAAAgAAAAMAAAAFAAgAAgAAAAMAAAAFAAcAAgABAAIAAAAFAAYAAgACAAEAAAAFAAUAAgACAAEAAAAFAAQAAgACAAEAAAAFAAMAAgACAAEAAAAFAAIAAgADAAAAAAAFAAEAAgAAAAMAAAAFAAAAAgAAAAMAAAAEAAgAAgAAAAMAAAAEAAcAAgAAAAIAAAAEAAYAAgABAAAAAAAEAAUAAgABAAAAAAAEAAQAAgACAAIAAAAEAAMAAgACAAEAAAAEAAIAAgADAAAAAAAEAAEAAgAAAAMAAAAEAAAAAgAAAAMAAAADAAgAAgAAAAMAAAADAAcAAgAAAAMAAAADAAYAAgABAAIAAAADAAUAAgAAAAMAAAADAAQAAgAAAAIAAAADAAMAAgABAAAAAAADAAIAAgABAAMAAAADAAEAAgAAAAMAAAADAAAAAgAAAAMAAAACAAgAAgAAAAMAAAACAAcAAgAAAAMAAAACAAYAAgAAAAIAAAACAAUAAgAAAAMAAAACAAQAAgAAAAMAAAACAAMAAgAAAAMAAAACAAIAAgAAAAMAAAACAAEAAgAAAAMAAAACAAAAAgAAAAMAAAABAAgAAgAAAAMAAAABAAcAAgAAAAMAAAABAAYAAgAAAAMAAAABAAUAAgAAAAMAAAABAAQAAgADAAMAAAABAAMAAgAAAAAAAAABAAIAAgAAAAMAAAABAAEAAgAAAAMAAAABAAAAAgAAAAMAAAAAAAgAAgAAAAMAAAAAAAcAAgAAAAMAAAAAAAYAAgAAAAMAAAAAAAUAAgAAAAMAAAAAAAQAAgAAAAIAAAAAAAMAAgABAAMAAAAAAAIAAgAAAAMAAAAAAAEAAgAAAAMAAAA=") tile_map_data = PackedByteArray("AAAAAAAAAgAAAAMAAAAMAAgAAgAAAAMAAAAMAAcAAgAAAAMAAAAMAAYAAgAAAAMAAAAMAAUAAgABAAIAAAAMAAQAAgADAAAAAAAMAAMAAgAAAAMAAAAMAAIAAgAAAAMAAAAMAAEAAgAAAAMAAAAMAAAAAgAAAAMAAAALAAgAAgAAAAMAAAALAAcAAgAAAAMAAAALAAYAAgAAAAMAAAALAAUAAgABAAIAAAALAAQAAgADAAAAAAALAAMAAgAAAAMAAAALAAIAAgAAAAMAAAALAAEAAgAAAAMAAAALAAAAAgAAAAMAAAAKAAgAAgAAAAMAAAAKAAcAAgAAAAMAAAAKAAYAAgAAAAMAAAAKAAUAAgABAAIAAAAKAAQAAgADAAAAAAAKAAMAAgAAAAMAAAAKAAIAAgAAAAMAAAAKAAEAAgAAAAMAAAAKAAAAAgAAAAMAAAAJAAgAAgAAAAMAAAAJAAcAAgAAAAMAAAAJAAYAAgAAAAMAAAAJAAUAAgABAAIAAAAJAAQAAgADAAAAAAAJAAMAAgAAAAMAAAAJAAIAAgAAAAMAAAAJAAEAAgAAAAMAAAAJAAAAAgAAAAMAAAAIAAgAAgAAAAMAAAAIAAcAAgAAAAMAAAAIAAYAAgADAAMAAAAIAAUAAgADAAEAAAAIAAQAAgACAAAAAAAIAAMAAgADAAIAAAAIAAIAAgAAAAAAAAAIAAEAAgAAAAMAAAAIAAAAAgAAAAMAAAAHAAgAAgAAAAMAAAAHAAcAAgAAAAMAAAAHAAYAAgABAAIAAAAHAAUAAgABAAEAAAAHAAEAAgAAAAMAAAAHAAAAAgAAAAMAAAAGAAgAAgAAAAMAAAAGAAcAAgAAAAMAAAAGAAMAAgAAAAMAAAAGAAIAAgAAAAMAAAAGAAEAAgAAAAMAAAAGAAAAAgAAAAMAAAAFAAgAAgADAAMAAAAFAAcAAgADAAIAAAAFAAYAAgADAAEAAAAFAAUAAgADAAAAAAAFAAQAAgAAAAMAAAAFAAMAAgAAAAMAAAAFAAIAAgAAAAMAAAAFAAEAAgAAAAMAAAAFAAAAAgAAAAMAAAAEAAgAAgAAAAMAAAAEAAcAAgAAAAMAAAAEAAYAAgABAAIAAAAEAAUAAgACAAAAAAAEAAQAAgADAAIAAAAEAAMAAgADAAIAAAAEAAIAAgADAAIAAAAEAAEAAgADAAIAAAAEAAAAAgAAAAAAAAADAAgAAgAAAAMAAAADAAcAAgAAAAMAAAADAAYAAgAAAAIAAAADAAUAAgABAAAAAAADAAQAAgACAAIAAAADAAMAAgABAAAAAAADAAIAAgABAAAAAAADAAEAAgABAAAAAAADAAAAAgABAAMAAAACAAgAAgAAAAMAAAACAAcAAgAAAAMAAAACAAYAAgAAAAMAAAACAAUAAgAAAAMAAAACAAQAAgABAAIAAAACAAMAAgAAAAMAAAACAAIAAgAAAAMAAAACAAEAAgAAAAMAAAACAAAAAgAAAAMAAAABAAgAAgAAAAMAAAABAAcAAgAAAAMAAAABAAYAAgAAAAMAAAABAAUAAgAAAAMAAAABAAQAAgABAAIAAAABAAMAAgAAAAMAAAABAAIAAgAAAAMAAAABAAEAAgAAAAMAAAABAAAAAgAAAAMAAAAAAAgAAgAAAAMAAAAAAAcAAgAAAAMAAAAAAAYAAgAAAAMAAAAAAAUAAgAAAAMAAAAAAAQAAgAAAAIAAAAAAAMAAgAAAAMAAAAAAAIAAgAAAAMAAAAAAAEAAgAAAAMAAAAAAP//AgAAAAMAAAABAP//AgAAAAMAAAACAP//AgAAAAMAAAADAP//AgAAAAMAAAAEAP//AgAAAAMAAAAFAP//AgAAAAMAAAAGAP//AgAAAAMAAAAHAP//AgAAAAMAAAAIAP//AgAAAAMAAAAJAP//AgAAAAMAAAAKAP//AgAAAAMAAAALAP//AgAAAAMAAAAMAP//AgAAAAMAAAANAAIAAgAAAAMAAAANAAEAAgAAAAMAAAANAAAAAgAAAAMAAAANAP//AgAAAAMAAAANAAMAAgAAAAMAAAANAAQAAgAAAAAAAAANAAUAAgADAAMAAAANAAYAAgAAAAMAAAANAAcAAgAAAAMAAAANAAgAAgAAAAMAAAANAAkAAgAAAAMAAAAMAAkAAgAAAAMAAAALAAkAAgAAAAMAAAAKAAkAAgAAAAMAAAAJAAkAAgAAAAMAAAAIAAkAAgAAAAMAAAAHAAkAAgAAAAMAAAAGAAkAAgAAAAMAAAAFAAkAAgAAAAMAAAAEAAkAAgAAAAMAAAADAAkAAgAAAAMAAAACAAkAAgAAAAMAAAABAAkAAgAAAAMAAAAAAAkAAgAAAAMAAAD//wkAAgAAAAMAAAD//wgAAgAAAAMAAAD//wcAAgAAAAMAAAD//wYAAgAAAAMAAAD//wUAAgAAAAMAAAD//wQAAgAAAAMAAAD//wMAAgAAAAMAAAD//wIAAgAAAAMAAAD//wEAAgAAAAMAAAD//wAAAgAAAAMAAAD/////AgAAAAMAAAAHAAIAAgAAAAMAAAAHAAMAAgAAAAMAAAAHAAQAAgABAAMAAAAGAAQAAgAAAAMAAAAGAAUAAgADAAAAAAAGAAYAAgABAAIAAAA=")
tile_set = SubResource("TileSet_ge1l5") tile_set = SubResource("TileSet_ge1l5")
[node name="Player" parent="." instance=ExtResource("1_ge1l5")] [node name="Player" parent="." node_paths=PackedStringArray("tilemap") instance=ExtResource("1_ge1l5")]
position = Vector2(128, 76) position = Vector2(128, 76)
tilemap = NodePath("../TileMapLayer")

View File

@@ -110,5 +110,6 @@ rotation = -1.5707964
shape = SubResource("CapsuleShape2D_3vyb7") shape = SubResource("CapsuleShape2D_3vyb7")
[node name="Camera2D" type="Camera2D" parent="."] [node name="Camera2D" type="Camera2D" parent="."]
process_callback = 0
drag_horizontal_enabled = true drag_horizontal_enabled = true
drag_vertical_enabled = true drag_vertical_enabled = true

View File

@@ -3,9 +3,24 @@ extends CharacterBody2D
const SPEED: int = 500 const SPEED: int = 500
@onready var animated_sprite: AnimatedSprite2D = $AnimatedSprite2D @onready var animated_sprite: AnimatedSprite2D = $AnimatedSprite2D
@onready var cam: Camera2D = $Camera2D
@export var tilemap: TileMapLayer
var tilesize: int = 32
var position_limit_rect: Rect2
func _ready() -> void:
var used_tilemap_rect: Rect2i = tilemap.get_used_rect()
tilesize = tilemap.tile_set.tile_size.x
cam.limit_left = used_tilemap_rect.position.x * tilesize
cam.limit_top = used_tilemap_rect.position.y * tilesize
cam.limit_right = (used_tilemap_rect.size.x - 1) * tilesize
cam.limit_bottom = (used_tilemap_rect.size.y - 1) * tilesize
position_limit_rect.position = Vector2(cam.limit_left + float(tilesize) / 4, cam.limit_top + float(tilesize) / 2)
position_limit_rect.size = Vector2(cam.limit_right - float(tilesize) / 4, cam.limit_bottom - float(tilesize) / 2)
func _physics_process(delta: float) -> void: func _physics_process(delta: float) -> void:
velocity = Input.get_vector("move_left","move_right","move_up","move_down").normalized() * delta * SPEED * 3 velocity = Input.get_vector("move_left","move_right","move_up","move_down").normalized() * delta * SPEED * 3
position = position.clamp(position_limit_rect.position, position_limit_rect.size)
move_and_slide() move_and_slide()
animated_sprite.flip_h = velocity.x < 0 animated_sprite.flip_h = velocity.x < 0