Basic Movement and Map Generation #22
14 changed files with 301 additions and 30 deletions
BIN
Assets/Sprites/Jesus/Jesus Back.png
Normal file
BIN
Assets/Sprites/Jesus/Jesus Back.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 597 B |
|
@ -2,16 +2,16 @@
|
||||||
|
|
||||||
importer="texture"
|
importer="texture"
|
||||||
type="CompressedTexture2D"
|
type="CompressedTexture2D"
|
||||||
uid="uid://c6n0go8l4gaak"
|
uid="uid://ct2del6b6jorm"
|
||||||
path="res://.godot/imported/Jesus_Left_Idle.png-591d029c8d8b8b573a2665b70cf0e031.ctex"
|
path="res://.godot/imported/Jesus Back.png-6132a4979edf4d1442fefae322c4ce7c.ctex"
|
||||||
metadata={
|
metadata={
|
||||||
"vram_texture": false
|
"vram_texture": false
|
||||||
}
|
}
|
||||||
|
|
||||||
[deps]
|
[deps]
|
||||||
|
|
||||||
source_file="res://Assets/Sprites/Jesus_Left_Idle.png"
|
source_file="res://Assets/Sprites/Jesus/Jesus Back.png"
|
||||||
dest_files=["res://.godot/imported/Jesus_Left_Idle.png-591d029c8d8b8b573a2665b70cf0e031.ctex"]
|
dest_files=["res://.godot/imported/Jesus Back.png-6132a4979edf4d1442fefae322c4ce7c.ctex"]
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
|
|
BIN
Assets/Sprites/Jesus/Jesus Front.png
Normal file
BIN
Assets/Sprites/Jesus/Jesus Front.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 714 B |
34
Assets/Sprites/Jesus/Jesus Front.png.import
Normal file
34
Assets/Sprites/Jesus/Jesus Front.png.import
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://c03lntytfivr1"
|
||||||
|
path="res://.godot/imported/Jesus Front.png-b78bfa6c3ed674009555f7ab3f93e778.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://Assets/Sprites/Jesus/Jesus Front.png"
|
||||||
|
dest_files=["res://.godot/imported/Jesus Front.png-b78bfa6c3ed674009555f7ab3f93e778.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
|
BIN
Assets/Sprites/Jesus/Jesus Left.png
Normal file
BIN
Assets/Sprites/Jesus/Jesus Left.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 665 B |
34
Assets/Sprites/Jesus/Jesus Left.png.import
Normal file
34
Assets/Sprites/Jesus/Jesus Left.png.import
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://cn4kqa1p845wl"
|
||||||
|
path="res://.godot/imported/Jesus Left.png-2949c2879ed5f5e8def57f2eb1498de4.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://Assets/Sprites/Jesus/Jesus Left.png"
|
||||||
|
dest_files=["res://.godot/imported/Jesus Left.png-2949c2879ed5f5e8def57f2eb1498de4.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
|
BIN
Assets/Sprites/Jesus/Jesus Spritesheet.png
Normal file
BIN
Assets/Sprites/Jesus/Jesus Spritesheet.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 7.2 KiB |
34
Assets/Sprites/Jesus/Jesus Spritesheet.png.import
Normal file
34
Assets/Sprites/Jesus/Jesus Spritesheet.png.import
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://bl7vfn05ul1vu"
|
||||||
|
path="res://.godot/imported/Jesus Spritesheet.png-821a08dd328b5743c2bc86e42539e57a.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://Assets/Sprites/Jesus/Jesus Spritesheet.png"
|
||||||
|
dest_files=["res://.godot/imported/Jesus Spritesheet.png-821a08dd328b5743c2bc86e42539e57a.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
|
BIN
Assets/Sprites/Jesus/Shadow.png
Normal file
BIN
Assets/Sprites/Jesus/Shadow.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 145 B |
34
Assets/Sprites/Jesus/Shadow.png.import
Normal file
34
Assets/Sprites/Jesus/Shadow.png.import
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://cubc3m81pdyvq"
|
||||||
|
path="res://.godot/imported/Shadow.png-e182ddfbb5e0bd7753fe3ec1e6b362c7.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://Assets/Sprites/Jesus/Shadow.png"
|
||||||
|
dest_files=["res://.godot/imported/Shadow.png-e182ddfbb5e0bd7753fe3ec1e6b362c7.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
|
Binary file not shown.
|
@ -1,35 +1,151 @@
|
||||||
[gd_scene load_steps=5 format=3 uid="uid://ccgpsim5nfxd6"]
|
[gd_scene load_steps=12 format=3 uid="uid://ccgpsim5nfxd6"]
|
||||||
|
|
||||||
[ext_resource type="Script" path="res://Scripts/PlayerController.gd" id="1_x3102"]
|
[ext_resource type="Script" path="res://Scripts/PlayerController.gd" id="1_x3102"]
|
||||||
[ext_resource type="Texture2D" uid="uid://c6n0go8l4gaak" path="res://Assets/Sprites/Jesus_Left_Idle.png" id="2_48vut"]
|
|
||||||
[ext_resource type="TileSet" uid="uid://b7cqbf6xdbeal" path="res://Assets/Test_Tileset.tres" id="3_0at2g"]
|
[ext_resource type="TileSet" uid="uid://b7cqbf6xdbeal" path="res://Assets/Test_Tileset.tres" id="3_0at2g"]
|
||||||
[ext_resource type="Script" path="res://Scripts/MapGenerator.gd" id="4_8st0q"]
|
[ext_resource type="Script" path="res://Scripts/MapGenerator.gd" id="4_8st0q"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://bl7vfn05ul1vu" path="res://Assets/Sprites/Jesus/Jesus Spritesheet.png" id="4_e5cec"]
|
||||||
|
|
||||||
[node name="Node2D" type="Node2D"]
|
[sub_resource type="Animation" id="Animation_kdxam"]
|
||||||
|
resource_name = "Idle"
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath("Player Sprite:frame")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [0]
|
||||||
|
}
|
||||||
|
|
||||||
[node name="TileMap" type="TileMap" parent="."]
|
[sub_resource type="Animation" id="Animation_dwpep"]
|
||||||
|
resource_name = "MoveDown"
|
||||||
|
length = 0.8
|
||||||
|
loop_mode = 1
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath("Player Sprite:frame")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = false
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.2, 0.4, 0.6),
|
||||||
|
"transitions": PackedFloat32Array(1, 1, 1, 1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [0, 1, 2, 3]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_2jvl5"]
|
||||||
|
resource_name = "MoveLeft"
|
||||||
|
length = 0.8
|
||||||
|
loop_mode = 1
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath("Player Sprite:frame")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.2, 0.4, 0.6),
|
||||||
|
"transitions": PackedFloat32Array(1, 1, 1, 1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [12, 13, 14, 15]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_4ig1u"]
|
||||||
|
resource_name = "MoveRight"
|
||||||
|
length = 0.8
|
||||||
|
loop_mode = 1
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath("Player Sprite:frame")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.2, 0.4, 0.6),
|
||||||
|
"transitions": PackedFloat32Array(1, 1, 1, 1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [4, 5, 6, 7]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_pswkh"]
|
||||||
|
resource_name = "MoveUp"
|
||||||
|
length = 0.8
|
||||||
|
loop_mode = 1
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath("Player Sprite:frame")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.2, 0.4, 0.6),
|
||||||
|
"transitions": PackedFloat32Array(1, 1, 1, 1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [8, 9, 10, 11]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_o3hln"]
|
||||||
|
length = 0.001
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath("Player Sprite:frame")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [0]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="AnimationLibrary" id="AnimationLibrary_bi1h3"]
|
||||||
|
_data = {
|
||||||
|
"Idle": SubResource("Animation_kdxam"),
|
||||||
|
"MoveDown": SubResource("Animation_dwpep"),
|
||||||
|
"MoveLeft": SubResource("Animation_2jvl5"),
|
||||||
|
"MoveRight": SubResource("Animation_4ig1u"),
|
||||||
|
"MoveUp": SubResource("Animation_pswkh"),
|
||||||
|
"RESET": SubResource("Animation_o3hln")
|
||||||
|
}
|
||||||
|
|
||||||
|
[node name="Player Movement" type="Node2D"]
|
||||||
|
|
||||||
|
[node name="Map Generator" type="TileMap" parent="."]
|
||||||
tile_set = ExtResource("3_0at2g")
|
tile_set = ExtResource("3_0at2g")
|
||||||
cell_quadrant_size = 8
|
cell_quadrant_size = 8
|
||||||
collision_visibility_mode = 1
|
collision_visibility_mode = 1
|
||||||
format = 2
|
format = 2
|
||||||
script = ExtResource("4_8st0q")
|
script = ExtResource("4_8st0q")
|
||||||
|
|
||||||
[node name="CharacterBody2D" type="CharacterBody2D" parent="."]
|
[node name="Player" type="CharacterBody2D" parent="." node_paths=PackedStringArray("animation_player")]
|
||||||
position = Vector2(512, 300)
|
position = Vector2(512, 300)
|
||||||
scale = Vector2(0.25, 0.25)
|
scale = Vector2(0.25, 0.25)
|
||||||
script = ExtResource("1_x3102")
|
script = ExtResource("1_x3102")
|
||||||
speed = 80
|
animation_player = NodePath("Player Animator")
|
||||||
|
|
||||||
[node name="Sprite2D" type="Sprite2D" parent="CharacterBody2D"]
|
[node name="Player Sprite" type="Sprite2D" parent="Player"]
|
||||||
texture = ExtResource("2_48vut")
|
position = Vector2(0, -20)
|
||||||
|
texture = ExtResource("4_e5cec")
|
||||||
|
hframes = 4
|
||||||
|
vframes = 4
|
||||||
|
|
||||||
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="CharacterBody2D"]
|
[node name="Player Collider" type="CollisionPolygon2D" parent="Player"]
|
||||||
polygon = PackedVector2Array(16, 32, -14, 32, -14, -22, 16, -22)
|
polygon = PackedVector2Array(12, 32, -16, 32, -16, -24, 12, -24)
|
||||||
|
|
||||||
[node name="Camera2D" type="Camera2D" parent="CharacterBody2D"]
|
[node name="Player Camera" type="Camera2D" parent="Player"]
|
||||||
zoom = Vector2(10, 10)
|
zoom = Vector2(10, 10)
|
||||||
position_smoothing_enabled = true
|
position_smoothing_enabled = true
|
||||||
drag_horizontal_enabled = true
|
drag_horizontal_enabled = true
|
||||||
drag_vertical_enabled = true
|
drag_vertical_enabled = true
|
||||||
editor_draw_limits = true
|
editor_draw_limits = true
|
||||||
editor_draw_drag_margin = true
|
editor_draw_drag_margin = true
|
||||||
|
|
||||||
|
[node name="Player Animator" type="AnimationPlayer" parent="Player"]
|
||||||
|
libraries = {
|
||||||
|
"": SubResource("AnimationLibrary_bi1h3")
|
||||||
|
}
|
||||||
|
|
|
@ -1,24 +1,43 @@
|
||||||
extends CharacterBody2D
|
extends CharacterBody2D
|
||||||
|
|
||||||
@export var speed = 100
|
@export var speed = 20
|
||||||
@export_range(0, 1) var damping_factor := 0.6
|
@export_range(0, 1) var damping_factor = 0.6
|
||||||
|
@export var animation_player : AnimationPlayer
|
||||||
|
|
||||||
func get_move_vector():
|
func _physics_process(delta : float):
|
||||||
|
update_player_movement(delta)
|
||||||
|
pass
|
||||||
|
|
||||||
|
func get_move_input_vector() -> Vector2:
|
||||||
var input_direction = Input.get_vector("move_left", "move_right", "move_up", "move_down").normalized()
|
var input_direction = Input.get_vector("move_left", "move_right", "move_up", "move_down").normalized()
|
||||||
return input_direction
|
return input_direction
|
||||||
|
|
||||||
func move_player(delta : float):
|
func update_player_movement(delta : float):
|
||||||
if get_move_vector() == Vector2.ZERO:
|
var input = get_move_input_vector()
|
||||||
# Damp Players Velocity if no Input
|
|
||||||
self.velocity = self.velocity * (1 - min(1, damping_factor * 60 * delta))
|
|
||||||
else:
|
|
||||||
# Set Players Velocity to the Input Direction in the Players Speed
|
|
||||||
self.velocity = get_move_vector() * speed * delta * 60
|
|
||||||
|
|
||||||
# Update The Players Physics Calculations
|
# Damp Movement if not moving, Accelerate if Moving
|
||||||
|
var is_moving = input != Vector2.ZERO
|
||||||
|
self.velocity = input * speed * delta * 60 if is_moving else self.velocity * (1 - min(1, damping_factor * 60 * delta))
|
||||||
|
|
||||||
|
update_player_animation()
|
||||||
|
|
||||||
|
# Update Objects Physics calculations
|
||||||
self.move_and_slide()
|
self.move_and_slide()
|
||||||
pass
|
pass
|
||||||
|
|
||||||
func _physics_process(delta : float):
|
func update_player_animation():
|
||||||
move_player(delta)
|
var move_vector = get_move_input_vector()
|
||||||
|
match move_vector:
|
||||||
|
Vector2.ZERO: animation_player.play("Idle")
|
||||||
|
Vector2.LEFT: animation_player.play("MoveLeft")
|
||||||
|
Vector2.RIGHT: animation_player.play("MoveRight")
|
||||||
|
Vector2.UP: animation_player.play("MoveUp")
|
||||||
|
Vector2.DOWN: animation_player.play("MoveDown")
|
||||||
|
_: handle_diagonal_animations(move_vector)
|
||||||
|
pass
|
||||||
|
|
||||||
|
func handle_diagonal_animations(dir : Vector2):
|
||||||
|
if (dir.y > 0 and dir.x < 0) or (dir.y < 0 and dir.x < 0): animation_player.play("MoveLeft")
|
||||||
|
elif (dir.y > 0 and dir.x > 0) or (dir.y < 0 and dir.x > 0): animation_player.play("MoveRight")
|
||||||
|
else: animation_player.play("Idle")
|
||||||
pass
|
pass
|
||||||
|
|
|
@ -11,7 +11,7 @@ config_version=5
|
||||||
[application]
|
[application]
|
||||||
|
|
||||||
config/name="HoppyEaster"
|
config/name="HoppyEaster"
|
||||||
run/main_scene="res://Scenes/Movement.tscn"
|
run/main_scene="res://Scenes/PlayerMovement.tscn"
|
||||||
config/features=PackedStringArray("4.0", "GL Compatibility")
|
config/features=PackedStringArray("4.0", "GL Compatibility")
|
||||||
config/icon="res://icon.svg"
|
config/icon="res://icon.svg"
|
||||||
|
|
||||||
|
|
Reference in a new issue