godot squash the creeps player movement
This commit is contained in:
27
projects/godot-squash-the-creeps-3d/scripts/Player.kiss
Normal file
27
projects/godot-squash-the-creeps-3d/scripts/Player.kiss
Normal file
@@ -0,0 +1,27 @@
|
||||
(var &mut :Spatial pivot null)
|
||||
(var &mut :Vector3 _velocity Vector3.ZERO)
|
||||
|
||||
(method &public &override :Void _Ready []
|
||||
(set pivot (cast (getNode "Pivot") Spatial)))
|
||||
|
||||
(method &public &override :Void _PhysicsProcess [:Single delta]
|
||||
(let [&mut direction Vector3.ZERO]
|
||||
(when (Input.isActionPressed "move_right")
|
||||
(+= direction.x 1))
|
||||
(when (Input.isActionPressed "move_left")
|
||||
(-= direction.x 1))
|
||||
(when (Input.isActionPressed "move_backward")
|
||||
(+= direction.z 1))
|
||||
(when (Input.isActionPressed "move_forward")
|
||||
(-= direction.z 1))
|
||||
|
||||
(when !(= direction Vector3.ZERO)
|
||||
(set direction (direction.normalized))
|
||||
// TODO for some reason, the Vector3 addition operator is only found when used in a raw haxe expr:
|
||||
(pivot.lookAt #|translation + direction|# Vector3.UP))
|
||||
|
||||
(set _velocity.x (* direction.x speed))
|
||||
(set _velocity.z (* direction.z speed))
|
||||
(-= _velocity.y (* fallAcceleration delta))
|
||||
(set _velocity (moveAndSlide _velocity Vector3.UP))
|
||||
))
|
Reference in New Issue
Block a user