Initial commit

This commit is contained in:
scorpion21211-cmd
2026-10-03 23:29:41 -04:00
commit e24bbbda5d
10586 changed files with 1030090 additions and 0 deletions
+66
View File
@@ -0,0 +1,66 @@
extends CharacterBody3D
# How fast the player moves in meters per second.
@export var speed = 14
# The downward acceleration when in the air, in meters per second squared.
@export var fall_acceleration = 75
@export var mouse_sensitivity = 0.002
const JUMP_VELOCITY = 25
var target_velocity = Vector3.ZERO
# Reference to your camera pivot or camera
@onready var pivot = $Pivot
func _ready():
# Captures the mouse cursor so it stays in the game window
Input.set_mouse_mode(Input.MOUSE_MODE_CAPTURED)
func _input(event):
if event is InputEventMouseMotion:
rotate_y(-event.relative.x * mouse_sensitivity)
pivot.rotate_x(-event.relative.y * mouse_sensitivity)
pivot.rotation.x = clamp(pivot.rotation.x, deg_to_rad(-60), deg_to_rad(60))
if event.is_action_pressed("ui_cancel"):
Input.set_mouse_mode(Input.MOUSE_MODE_VISIBLE)
if event is InputEventMouseButton and event.button_index == MOUSE_BUTTON_LEFT:
if Input.get_mouse_mode() == Input.MOUSE_MODE_VISIBLE:
Input.set_mouse_mode(Input.MOUSE_MODE_CAPTURED)
func _physics_process(delta):
var direction = Vector3.ZERO
# need to map to WASD to make it work with WASD
if Input.is_action_pressed("ui_right"):
direction.x += 1
if Input.is_action_pressed("ui_left"):
direction.x -= 1
if Input.is_action_pressed("ui_down"):
direction.z += 1
if Input.is_action_pressed("ui_up"):
direction.z -= 1
if direction != Vector3.ZERO:
direction = direction.normalized()
direction = (transform.basis * direction).normalized()
# Ground Velocity
target_velocity.x = direction.x * speed
target_velocity.z = direction.z * speed
# Vertical Velocity
if not is_on_floor(): # If in the air, fall towards the floor. Literally gravity
target_velocity.y = target_velocity.y - (fall_acceleration * delta)
if Input.is_action_just_pressed("ui_accept") and is_on_floor():
target_velocity.y = JUMP_VELOCITY
# Moving the Character
velocity = target_velocity
move_and_slide()
for i in get_slide_collision_count():
var collision = get_slide_collision(i)
var collided_object = collision.get_collider()
if collided_object.is_in_group("flag_group"):
$win_label.set_text("You Win!")