update player rotation and adding move
This commit is contained in:
parent
4919a117ab
commit
a22e8db3fe
1 changed files with 23 additions and 14 deletions
|
@ -5,6 +5,7 @@ var rotation_speed_factor = 0.01
|
||||||
var orientation = 0.0
|
var orientation = 0.0
|
||||||
var direction = Vector3.ZERO
|
var direction = Vector3.ZERO
|
||||||
var velocity: = Vector3.ZERO
|
var velocity: = Vector3.ZERO
|
||||||
|
var rotatex = 0.0
|
||||||
export var gravity = -9.0
|
export var gravity = -9.0
|
||||||
|
|
||||||
func search_animation( obj ) -> bool:
|
func search_animation( obj ) -> bool:
|
||||||
|
@ -94,20 +95,26 @@ func _process( delta ):
|
||||||
# $character.direction = self.get_input_direction()
|
# $character.direction = self.get_input_direction()
|
||||||
#self.direction = self.get_input_direction()
|
#self.direction = self.get_input_direction()
|
||||||
#self.direction = self.get_input_direction()
|
#self.direction = self.get_input_direction()
|
||||||
self.rotate_y( self.rotation_speed_factor * self.orientation )
|
$creature.rotate_y( self.rotation_speed_factor * self.orientation )
|
||||||
|
|
||||||
var input_direction: = self.get_input_direction()
|
var input_direction: = self.get_input_direction()
|
||||||
# var forwards: Vector3 = self.camera.global_transform.basis.z * input_direction.z
|
var forwards: Vector3 = $creature/camera_tps.global_transform.basis.z * input_direction.z
|
||||||
# var right: Vector3 = self.camera.global_transform.basis.x * input_direction.x
|
var right: Vector3 = $creature/camera_tps.global_transform.basis.x * input_direction.x
|
||||||
# var move_direction: = forwards + right
|
var move_direction: = forwards + right
|
||||||
# if move_direction.length() > 1.0:
|
if move_direction.length() > 1.0:
|
||||||
# move_direction = move_direction.normalized()
|
move_direction = move_direction.normalized()
|
||||||
# move_direction.y = 0
|
move_direction.y = 0
|
||||||
|
|
||||||
# Movement
|
# Movement
|
||||||
|
velocity = self.calculate_velocity(velocity, move_direction, delta)
|
||||||
|
Config.msg_info("move_direction X:" + str(move_direction.x) + " Y:" + str(move_direction.y) + " Z:" + str(move_direction.z))
|
||||||
|
Config.msg_info("velocity X:" + str(velocity.x) + " Y:" + str(velocity.y) + " Z:" + str(velocity.z))
|
||||||
|
velocity = $creature.move_and_slide(velocity, Vector3.UP, true)
|
||||||
# velocity = self.calculate_velocity(velocity, input_direction, delta)
|
# velocity = self.calculate_velocity(velocity, input_direction, delta)
|
||||||
#velocity = $creature.move_and_slide(velocity, Vector3.UP, true)
|
#velocity = $creature.move_and_slide(velocity, Vector3.UP, true)
|
||||||
#Config.msg_info("X:" + str($creature.))
|
#Config.msg_info("X:" + str($creature.))
|
||||||
|
var pos : Vector3 = $creature.get_global_transform().origin
|
||||||
|
Config.msg_info("pos X:" + str(pos.x) + " Y:" + str(pos.y) + " Z:" + str(pos.z))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -122,7 +129,7 @@ func calculate_velocity(
|
||||||
velocity_new *= $creature.move_speed
|
velocity_new *= $creature.move_speed
|
||||||
if velocity_new.length() > $creature.max_speed:
|
if velocity_new.length() > $creature.max_speed:
|
||||||
velocity_new = velocity_new.normalized() * $creature.max_speed
|
velocity_new = velocity_new.normalized() * $creature.max_speed
|
||||||
velocity_new.y = velocity_current.y + gravity * delta
|
#velocity_new.y = velocity_current.y + gravity * delta
|
||||||
return velocity_new
|
return velocity_new
|
||||||
|
|
||||||
|
|
||||||
|
@ -134,19 +141,21 @@ func _input( event ):
|
||||||
else:
|
else:
|
||||||
self.orientation = 0.0
|
self.orientation = 0.0
|
||||||
if event is InputEventMouseMotion and Input.is_mouse_button_pressed( 2 ):
|
if event is InputEventMouseMotion and Input.is_mouse_button_pressed( 2 ):
|
||||||
self.rotate_y( event.relative.x *0.01 )
|
# self.rotate_y( event.relative.x *0.01 )
|
||||||
|
$creature.rotate_y( event.relative.x *0.01 )
|
||||||
if $creature/camera_fps.current:
|
if $creature/camera_fps.current:
|
||||||
# On FPS - we can move head to see up or down
|
# On FPS - we can move head to see up or down
|
||||||
var current = $creature/camera_fps.get_rotation()
|
var current = $creature/camera_fps.get_rotation()
|
||||||
# Config.msg_info("X:" + str(current.x) + " v:" + str(event.relative.y))
|
# Config.msg_info("X:" + str(current.x) + " v:" + str(event.relative.y))
|
||||||
if (event.relative.y > 0.0 and current.x > -1.4) or (event.relative.y < 0.0 and current.x < 1.4) :
|
if (event.relative.y > 0.0 and current.x > -1.4) or (event.relative.y < 0.0 and current.x < 1.4) :
|
||||||
$creature/camera_fps.rotate_x( event.relative.y *0.01 )
|
var sum = event.relative.y *0.01
|
||||||
|
rotatex += sum
|
||||||
|
$creature/camera_fps.rotate_x( sum )
|
||||||
elif event.is_action_pressed( "camera_switch" ):
|
elif event.is_action_pressed( "camera_switch" ):
|
||||||
if $creature/camera_tps.current:
|
if $creature/camera_tps.current:
|
||||||
# Reset angle X for camera
|
# Reset angle X for camera
|
||||||
var current = $creature/camera_fps.get_rotation()
|
$creature/camera_fps.rotate_x( - rotatex )
|
||||||
current.x = 0.0
|
rotatex = 0.0
|
||||||
$creature/camera_fps.set_rotation(current)
|
|
||||||
$creature/camera_fps.make_current()
|
$creature/camera_fps.make_current()
|
||||||
else:
|
else:
|
||||||
$creature/camera_tps.make_current()
|
$creature/camera_tps.make_current()
|
||||||
|
|
Loading…
Reference in a new issue