Init godot project
This commit is contained in:
60
scenes/maps/test_map.tscn
Normal file
60
scenes/maps/test_map.tscn
Normal file
@ -0,0 +1,60 @@
|
||||
[gd_scene load_steps=9 format=3 uid="uid://hivk5ek6u887"]
|
||||
|
||||
[ext_resource type="Texture2D" uid="uid://c5uytbu1wc1bq" path="res://addons/kenney_prototype_textures/orange/texture_09.png" id="1_llm1c"]
|
||||
[ext_resource type="Texture2D" uid="uid://e4nd8b6f0tw7" path="res://addons/kenney_prototype_textures/dark/texture_04.png" id="2_k2arh"]
|
||||
[ext_resource type="PackedScene" uid="uid://ccm77j5rkh21w" path="res://scenes/utils/character.tscn" id="3_omcjn"]
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_llvtk"]
|
||||
albedo_texture = ExtResource("1_llm1c")
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_50gm5"]
|
||||
albedo_texture = ExtResource("2_k2arh")
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_c334k"]
|
||||
albedo_texture = ExtResource("2_k2arh")
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_nlanx"]
|
||||
albedo_texture = ExtResource("2_k2arh")
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_cjh6x"]
|
||||
albedo_texture = ExtResource("2_k2arh")
|
||||
|
||||
[node name="TestMap" type="Node3D"]
|
||||
|
||||
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0, 50, 0)
|
||||
shadow_enabled = true
|
||||
|
||||
[node name="Base" type="Node3D" parent="."]
|
||||
|
||||
[node name="Floor" type="CSGBox3D" parent="Base"]
|
||||
material_override = SubResource("StandardMaterial3D_llvtk")
|
||||
use_collision = true
|
||||
size = Vector3(100, 1, 100)
|
||||
|
||||
[node name="Wall_1" type="CSGBox3D" parent="Base"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 50, 0, 0)
|
||||
material_override = SubResource("StandardMaterial3D_50gm5")
|
||||
use_collision = true
|
||||
size = Vector3(1, 20, 100)
|
||||
|
||||
[node name="Wall_2" type="CSGBox3D" parent="Base"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -50, 0, 0)
|
||||
material_override = SubResource("StandardMaterial3D_c334k")
|
||||
use_collision = true
|
||||
size = Vector3(1, 20, 100)
|
||||
|
||||
[node name="Wall_3" type="CSGBox3D" parent="Base"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 50)
|
||||
material_override = SubResource("StandardMaterial3D_nlanx")
|
||||
use_collision = true
|
||||
size = Vector3(100, 20, 1)
|
||||
|
||||
[node name="Wall_4" type="CSGBox3D" parent="Base"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -50)
|
||||
material_override = SubResource("StandardMaterial3D_cjh6x")
|
||||
use_collision = true
|
||||
size = Vector3(100, 20, 1)
|
||||
|
||||
[node name="Character" parent="." instance=ExtResource("3_omcjn")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 17.9816, 0, 28.0621)
|
22
scenes/utils/character.tscn
Normal file
22
scenes/utils/character.tscn
Normal file
@ -0,0 +1,22 @@
|
||||
[gd_scene load_steps=3 format=3 uid="uid://ccm77j5rkh21w"]
|
||||
|
||||
[ext_resource type="Script" path="res://scenes/utils/character_body_3d.gd" id="1_0ojbt"]
|
||||
|
||||
[sub_resource type="CylinderShape3D" id="CylinderShape3D_1sre5"]
|
||||
|
||||
[node name="Character" type="Node3D"]
|
||||
|
||||
[node name="CharacterBody3D" type="CharacterBody3D" parent="."]
|
||||
script = ExtResource("1_0ojbt")
|
||||
|
||||
[node name="Body" type="CSGCylinder3D" parent="CharacterBody3D"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.975222, 0)
|
||||
|
||||
[node name="CameraMount" type="Node3D" parent="CharacterBody3D/Body"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.02478, 0)
|
||||
|
||||
[node name="Camera" type="Camera3D" parent="CharacterBody3D/Body/CameraMount"]
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="CharacterBody3D"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.981342, 0)
|
||||
shape = SubResource("CylinderShape3D_1sre5")
|
41
scenes/utils/character_body_3d.gd
Normal file
41
scenes/utils/character_body_3d.gd
Normal file
@ -0,0 +1,41 @@
|
||||
extends CharacterBody3D
|
||||
|
||||
|
||||
const SPEED = 5.0
|
||||
const JUMP_VELOCITY = 4.5
|
||||
|
||||
var mouse_sens = 0.3
|
||||
var camera_anglev=0
|
||||
|
||||
|
||||
func _input(event):
|
||||
if event is InputEventMouseMotion:
|
||||
$Body.rotate_y(deg_to_rad(-event.relative.x*mouse_sens))
|
||||
var changev=-event.relative.y*mouse_sens
|
||||
$Body/CameraMount.rotate_x(deg_to_rad(-event.relative.y*mouse_sens))
|
||||
#var changev=-event.relative.x*mouse_sens
|
||||
#if camera_anglev+changev>-50 and camera_anglev+changev<50:
|
||||
#camera_anglev+=changev
|
||||
#$CameraMount.rotate_x(deg_to_rad(changev))
|
||||
|
||||
func _physics_process(delta: float) -> void:
|
||||
# Add the gravity.
|
||||
if not is_on_floor():
|
||||
velocity += get_gravity() * delta
|
||||
|
||||
# Handle jump.
|
||||
if Input.is_action_just_pressed("ui_accept") and is_on_floor():
|
||||
velocity.y = JUMP_VELOCITY
|
||||
|
||||
# Get the input direction and handle the movement/deceleration.
|
||||
# As good practice, you should replace UI actions with custom gameplay actions.
|
||||
var input_dir := Input.get_vector("ui_left", "ui_right", "ui_up", "ui_down")
|
||||
var direction := (transform.basis * Vector3(input_dir.x, 0, input_dir.y)).normalized()
|
||||
if direction:
|
||||
velocity.x = direction.x * SPEED
|
||||
velocity.z = direction.z * SPEED
|
||||
else:
|
||||
velocity.x = move_toward(velocity.x, 0, SPEED)
|
||||
velocity.z = move_toward(velocity.z, 0, SPEED)
|
||||
|
||||
move_and_slide()
|
Reference in New Issue
Block a user