diff options
Diffstat (limited to 'demos/3d/kinematic_char')
-rw-r--r-- | demos/3d/kinematic_char/cubelib.res | bin | 11532 -> 0 bytes | |||
-rw-r--r-- | demos/3d/kinematic_char/cubio.gd | 86 | ||||
-rw-r--r-- | demos/3d/kinematic_char/engine.cfg | 17 | ||||
-rw-r--r-- | demos/3d/kinematic_char/follow_camera.gd | 57 | ||||
-rw-r--r-- | demos/3d/kinematic_char/kinebody3d.png | bin | 6078 -> 0 bytes | |||
-rw-r--r-- | demos/3d/kinematic_char/level.scn | bin | 18847 -> 0 bytes | |||
-rw-r--r-- | demos/3d/kinematic_char/purple_wood.tex | bin | 173520 -> 0 bytes | |||
-rw-r--r-- | demos/3d/kinematic_char/purplecube.scn | bin | 7927 -> 0 bytes | |||
-rw-r--r-- | demos/3d/kinematic_char/twood.tex | bin | 168054 -> 0 bytes | |||
-rw-r--r-- | demos/3d/kinematic_char/white_wood.tex | bin | 169001 -> 0 bytes |
10 files changed, 0 insertions, 160 deletions
diff --git a/demos/3d/kinematic_char/cubelib.res b/demos/3d/kinematic_char/cubelib.res Binary files differdeleted file mode 100644 index 130b9529fe..0000000000 --- a/demos/3d/kinematic_char/cubelib.res +++ /dev/null diff --git a/demos/3d/kinematic_char/cubio.gd b/demos/3d/kinematic_char/cubio.gd deleted file mode 100644 index 769ada3bca..0000000000 --- a/demos/3d/kinematic_char/cubio.gd +++ /dev/null @@ -1,86 +0,0 @@ - -extends KinematicBody - -# Member variables -var g = -9.8 -var vel = Vector3() -const MAX_SPEED = 5 -const JUMP_SPEED = 7 -const ACCEL= 2 -const DEACCEL= 4 -const MAX_SLOPE_ANGLE = 30 - - -func _fixed_process(delta): - var dir = Vector3() # Where does the player intend to walk to - var cam_xform = get_node("target/camera").get_global_transform() - - if (Input.is_action_pressed("move_forward")): - dir += -cam_xform.basis[2] - if (Input.is_action_pressed("move_backwards")): - dir += cam_xform.basis[2] - if (Input.is_action_pressed("move_left")): - dir += -cam_xform.basis[0] - if (Input.is_action_pressed("move_right")): - dir += cam_xform.basis[0] - - dir.y = 0 - dir = dir.normalized() - - vel.y += delta*g - - var hvel = vel - hvel.y = 0 - - var target = dir*MAX_SPEED - var accel - if (dir.dot(hvel) > 0): - accel = ACCEL - else: - accel = DEACCEL - - hvel = hvel.linear_interpolate(target, accel*delta) - - vel.x = hvel.x - vel.z = hvel.z - - var motion = move(vel*delta) - - var on_floor = false - var original_vel = vel - var floor_velocity = Vector3() - var attempts = 4 - - while(is_colliding() and attempts): - var n = get_collision_normal() - - if (rad2deg(acos(n.dot(Vector3(0, 1, 0)))) < MAX_SLOPE_ANGLE): - # If angle to the "up" vectors is < angle tolerance, - # char is on floor - floor_velocity = get_collider_velocity() - on_floor = true - - motion = n.slide(motion) - vel = n.slide(vel) - if (original_vel.dot(vel) > 0): - # Do not allow to slide towads the opposite direction we were coming from - motion=move(motion) - if (motion.length() < 0.001): - break - attempts -= 1 - - if (on_floor and floor_velocity != Vector3()): - move(floor_velocity*delta) - - if (on_floor and Input.is_action_pressed("jump")): - vel.y = JUMP_SPEED - - var crid = get_node("../elevator1").get_rid() - - -func _ready(): - set_fixed_process(true) - - -func _on_tcube_body_enter(body): - get_node("../ty").show() diff --git a/demos/3d/kinematic_char/engine.cfg b/demos/3d/kinematic_char/engine.cfg deleted file mode 100644 index b3060b65e0..0000000000 --- a/demos/3d/kinematic_char/engine.cfg +++ /dev/null @@ -1,17 +0,0 @@ -[application] - -name="Kinematic Character 3D" -main_scene="res://level.scn" -icon="res://kinebody3d.png" - -[input] - -move_forward=[key(Up)] -move_left=[key(Left)] -move_right=[key(Right)] -move_backwards=[key(Down)] -jump=[key(Space)] - -[rasterizer] - -shadow_filter=3 diff --git a/demos/3d/kinematic_char/follow_camera.gd b/demos/3d/kinematic_char/follow_camera.gd deleted file mode 100644 index 37a1402053..0000000000 --- a/demos/3d/kinematic_char/follow_camera.gd +++ /dev/null @@ -1,57 +0,0 @@ - -extends Camera - -# Member variables -var collision_exception = [] -export var min_distance = 0.5 -export var max_distance = 4.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 min_height = 0 - - -func _fixed_process(dt): - var target = get_parent().get_global_transform().origin - var pos = get_global_transform().origin - var up = Vector3(0, 1, 0) - - var delta = pos - target - - # Regular delta follow - - # Check ranges - if (delta.length() < min_distance): - delta = delta.normalized()*min_distance - elif (delta.length() > max_distance): - delta = delta.normalized()*max_distance - - # Check upper and lower height - if (delta.y > max_height): - delta.y = max_height - if (delta.y < min_height): - delta.y = min_height - - pos = target + delta - - look_at_from_pos(pos, target, up) - - # Turn a little up or down - var t = get_transform() - t.basis = Matrix3(t.basis[0], deg2rad(angle_v_adjust))*t.basis - set_transform(t) - - -func _ready(): - # Find collision exceptions for ray - var node = self - while(node): - if (node extends RigidBody): - collision_exception.append(node.get_rid()) - break - else: - node = node.get_parent() - set_fixed_process(true) - # This detaches the camera transform from the parent spatial node - set_as_toplevel(true) diff --git a/demos/3d/kinematic_char/kinebody3d.png b/demos/3d/kinematic_char/kinebody3d.png Binary files differdeleted file mode 100644 index 41f0edb246..0000000000 --- a/demos/3d/kinematic_char/kinebody3d.png +++ /dev/null diff --git a/demos/3d/kinematic_char/level.scn b/demos/3d/kinematic_char/level.scn Binary files differdeleted file mode 100644 index 0082f55f43..0000000000 --- a/demos/3d/kinematic_char/level.scn +++ /dev/null diff --git a/demos/3d/kinematic_char/purple_wood.tex b/demos/3d/kinematic_char/purple_wood.tex Binary files differdeleted file mode 100644 index cdf0f810f1..0000000000 --- a/demos/3d/kinematic_char/purple_wood.tex +++ /dev/null diff --git a/demos/3d/kinematic_char/purplecube.scn b/demos/3d/kinematic_char/purplecube.scn Binary files differdeleted file mode 100644 index e3ed1bf84b..0000000000 --- a/demos/3d/kinematic_char/purplecube.scn +++ /dev/null diff --git a/demos/3d/kinematic_char/twood.tex b/demos/3d/kinematic_char/twood.tex Binary files differdeleted file mode 100644 index 65c1bd043c..0000000000 --- a/demos/3d/kinematic_char/twood.tex +++ /dev/null diff --git a/demos/3d/kinematic_char/white_wood.tex b/demos/3d/kinematic_char/white_wood.tex Binary files differdeleted file mode 100644 index e003442e70..0000000000 --- a/demos/3d/kinematic_char/white_wood.tex +++ /dev/null |