Add project files
This commit is contained in:
commit
ab339c8a2c
81 changed files with 2567 additions and 0 deletions
36
player/player.gd
Normal file
36
player/player.gd
Normal file
|
@ -0,0 +1,36 @@
|
|||
extends CharacterBody2D
|
||||
|
||||
|
||||
@export var movement_speed = 300.0
|
||||
@export var jump_velocity = -350.0
|
||||
@export var max_jumps: int = 2
|
||||
|
||||
@onready var ceiling_raycast1 = $RayCastUp1
|
||||
@onready var ceiling_raycast2 = $RayCastUp2
|
||||
|
||||
var jumps = 0
|
||||
|
||||
func _physics_process(delta: float) -> void:
|
||||
var dir = Input.get_axis("player_left", "player_right")
|
||||
var on_floor = is_on_floor()
|
||||
var on_wall = is_on_wall()
|
||||
var on_ceiling = ceiling_raycast1.is_colliding() or ceiling_raycast2.is_colliding()
|
||||
# left right movement
|
||||
if dir:
|
||||
velocity.x = dir * movement_speed
|
||||
else:
|
||||
velocity.x = move_toward(velocity.x, 0, movement_speed)
|
||||
# gravity
|
||||
if not (on_floor or on_ceiling):
|
||||
velocity += get_gravity() * delta
|
||||
# reset number of jumps
|
||||
if on_ceiling or on_floor or on_wall:
|
||||
jumps = 0
|
||||
# jumping / dropping from ceiling
|
||||
if Input.is_action_just_pressed("player_jump"):
|
||||
if on_ceiling: # drop from ceiling
|
||||
velocity += get_gravity() * delta
|
||||
elif jumps < max_jumps: # (allows air jumps)
|
||||
velocity.y = jump_velocity
|
||||
jumps += 1
|
||||
move_and_slide()
|
29
player/player.tscn
Normal file
29
player/player.tscn
Normal file
|
@ -0,0 +1,29 @@
|
|||
[gd_scene load_steps=3 format=3 uid="uid://ebb4pfxklatj"]
|
||||
|
||||
[ext_resource type="Script" path="res://player/player.gd" id="1_fob34"]
|
||||
|
||||
[sub_resource type="RectangleShape2D" id="RectangleShape2D_7cq61"]
|
||||
size = Vector2(16, 16)
|
||||
|
||||
[node name="Player" type="CharacterBody2D"]
|
||||
floor_block_on_wall = false
|
||||
script = ExtResource("1_fob34")
|
||||
|
||||
[node name="Camera2D" type="Camera2D" parent="."]
|
||||
position_smoothing_enabled = true
|
||||
drag_horizontal_enabled = true
|
||||
drag_vertical_enabled = true
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
|
||||
shape = SubResource("RectangleShape2D_7cq61")
|
||||
|
||||
[node name="RayCastUp1" type="RayCast2D" parent="."]
|
||||
position = Vector2(-4, 0)
|
||||
target_position = Vector2(0, -8.1)
|
||||
|
||||
[node name="RayCastUp2" type="RayCast2D" parent="."]
|
||||
position = Vector2(4, 0)
|
||||
target_position = Vector2(0, -8.1)
|
||||
|
||||
[node name="Polygon2D" type="Polygon2D" parent="."]
|
||||
polygon = PackedVector2Array(-7, -7, -7, 7, 7, 7, 7, -7)
|
Reference in a new issue