Browse Source

[KC3D] Improvements and fixes

WASD movement, script improvements, move Cubio to its own scene, capitalize nodes, better win text, fix GDScript warnings
Aaron Franke 6 years ago
parent
commit
a2e7bf2b36

+ 7 - 5
3d/kinematic_character/cubio.gd

@@ -3,7 +3,7 @@ extends KinematicBody
 
 
 # Member variables
 # Member variables
 var g = -9.8
 var g = -9.8
-var vel = Vector3()
+var vel: Vector3
 const MAX_SPEED = 5
 const MAX_SPEED = 5
 const JUMP_SPEED = 7
 const JUMP_SPEED = 7
 const ACCEL= 2
 const ACCEL= 2
@@ -12,8 +12,10 @@ const MAX_SLOPE_ANGLE = 30
 
 
 
 
 func _physics_process(delta):
 func _physics_process(delta):
+	if Input.is_action_just_pressed("reset_position"):
+		translation = Vector3(-3, 4, 8)
 	var dir = Vector3() # Where does the player intend to walk to
 	var dir = Vector3() # Where does the player intend to walk to
-	var cam_xform = $target/camera.get_global_transform()
+	var cam_xform = $Target/Camera.get_global_transform()
 
 
 	if Input.is_action_pressed("move_forward"):
 	if Input.is_action_pressed("move_forward"):
 		dir += -cam_xform.basis[2]
 		dir += -cam_xform.basis[2]
@@ -44,12 +46,12 @@ func _physics_process(delta):
 	vel.x = hvel.x
 	vel.x = hvel.x
 	vel.z = hvel.z
 	vel.z = hvel.z
 
 
-	vel = move_and_slide(vel, Vector3(0,1,0))
+	vel = move_and_slide(vel, Vector3.UP)
 
 
 	if is_on_floor() and Input.is_action_pressed("jump"):
 	if is_on_floor() and Input.is_action_pressed("jump"):
 		vel.y = JUMP_SPEED
 		vel.y = JUMP_SPEED
 
 
 
 
-func _on_tcube_body_enter(body):
+func _on_tcube_body_entered(body):
 	if body == self:
 	if body == self:
-		get_node("../ty").show()
+		get_node("WinText").show()

File diff suppressed because it is too large
+ 14 - 0
3d/kinematic_character/cubio.tscn


+ 21 - 30
3d/kinematic_character/follow_camera.gd

@@ -6,51 +6,42 @@ var collision_exception = []
 export var min_distance = 0.5
 export var min_distance = 0.5
 export var max_distance = 5.5
 export var max_distance = 5.5
 export var angle_v_adjust = 0.0
 export var angle_v_adjust = 0.0
-export var autoturn_ray_aperture = 25
-export var autoturn_speed = 50
 var max_height = 2.0
 var max_height = 2.0
 var min_height = 0
 var min_height = 0
+onready var target_node: Spatial = get_parent()
 
 
 
 
-func _physics_process(dt):
-	var target = get_parent().global_transform.origin
-	var pos = global_transform.origin
-	var up = Vector3(0, 1, 0)
+func _ready():
+	collision_exception.append(target_node.get_parent().get_rid())
+	# Detaches the camera transform from the parent spatial node
+	set_as_toplevel(true)
+
+
+func _physics_process(_delta):
+	var target_pos: Vector3 = target_node.global_transform.origin
+	var camera_pos: Vector3 = global_transform.origin
 
 
-	var delta = pos - target
+	var delta_pos: Vector3 = camera_pos - target_pos
 
 
 	# Regular delta follow
 	# Regular delta follow
 
 
 	# Check ranges
 	# Check ranges
-	if delta.length() < min_distance:
-		delta = delta.normalized() * min_distance
-	elif delta.length() > max_distance:
-		delta = delta.normalized() * max_distance
+	if delta_pos.length() < min_distance:
+		delta_pos = delta_pos.normalized() * min_distance
+	elif delta_pos.length() > max_distance:
+		delta_pos = delta_pos.normalized() * max_distance
 
 
 	# Check upper and lower height
 	# Check upper and lower height
-	if delta.y > max_height:
-		delta.y = max_height
-	if delta.y < min_height:
-		delta.y = min_height
+	if delta_pos.y > max_height:
+		delta_pos.y = max_height
+	if delta_pos.y < min_height:
+		delta_pos.y = min_height
 
 
-	pos = target + delta
+	camera_pos = target_pos + delta_pos
 
 
-	look_at_from_position(pos, target, up)
+	look_at_from_position(camera_pos, target_pos, Vector3.UP)
 
 
 	# Turn a little up or down
 	# Turn a little up or down
 	var t = transform
 	var t = transform
 	t.basis = Basis(t.basis[0], deg2rad(angle_v_adjust)) * t.basis
 	t.basis = Basis(t.basis[0], deg2rad(angle_v_adjust)) * t.basis
 	transform = t
 	transform = t
-
-
-func _ready():
-	# Find collision exceptions for ray
-	var node = self
-	while node:
-		if node is RigidBody:
-			collision_exception.append(node.get_rid())
-			break
-		else:
-			node = node.get_parent()
-	# This detaches the camera transform from the parent spatial node
-	set_as_toplevel(true)

File diff suppressed because it is too large
+ 5 - 15
3d/kinematic_character/level.tscn


+ 9 - 0
3d/kinematic_character/project.godot

@@ -33,21 +33,30 @@ jump={
 move_backwards={
 move_backwards={
 "deadzone": 0.5,
 "deadzone": 0.5,
 "events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777234,"unicode":0,"echo":false,"script":null)
 "events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777234,"unicode":0,"echo":false,"script":null)
+, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":83,"unicode":0,"echo":false,"script":null)
  ]
  ]
 }
 }
 move_forward={
 move_forward={
 "deadzone": 0.5,
 "deadzone": 0.5,
 "events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777232,"unicode":0,"echo":false,"script":null)
 "events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777232,"unicode":0,"echo":false,"script":null)
+, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":87,"unicode":0,"echo":false,"script":null)
  ]
  ]
 }
 }
 move_left={
 move_left={
 "deadzone": 0.5,
 "deadzone": 0.5,
 "events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777231,"unicode":0,"echo":false,"script":null)
 "events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777231,"unicode":0,"echo":false,"script":null)
+, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":65,"unicode":0,"echo":false,"script":null)
  ]
  ]
 }
 }
 move_right={
 move_right={
 "deadzone": 0.5,
 "deadzone": 0.5,
 "events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777233,"unicode":0,"echo":false,"script":null)
 "events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777233,"unicode":0,"echo":false,"script":null)
+, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":68,"unicode":0,"echo":false,"script":null)
+ ]
+}
+reset_position={
+"deadzone": 0.5,
+"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":82,"unicode":0,"echo":false,"script":null)
  ]
  ]
 }
 }
 
 

File diff suppressed because it is too large
+ 2 - 3
3d/kinematic_character/purplecube.tscn


Some files were not shown because too many files changed in this diff