Home

Add

Edit

With Linenumbers

Code in Textfield

Download

'##############################################################################################################################################
Sub VEKB_Check()
Dim TSpeed As VEOGL_Float = 0.1
Dim TDeg2Rad As VEOGL_Float = PI / 180

If Multikey(FB.SC_ESCAPE) <> 0 Then G_App_Exit = 1

If Multikey(G_KB_Key_WalkForward) <> 0 Then
    VEOGL_Cam_Pos.V_X += TSpeed * Cos((VEOGL_Cam_Dir.V_Y + 90) * TDeg2Rad)
    VEOGL_Cam_Pos.V_Z += TSpeed * Sin((VEOGL_Cam_Dir.V_Y + 90) * TDeg2Rad)
End If
If Multikey(G_KB_Key_WalkBackward) <> 0 Then
    VEOGL_Cam_Pos.V_X -= TSpeed * Cos((VEOGL_Cam_Dir.V_Y + 90) * TDeg2Rad)
    VEOGL_Cam_Pos.V_Z -= TSpeed * Sin((VEOGL_Cam_Dir.V_Y + 90) * TDeg2Rad)
End If

If Multikey(G_KB_Key_StrafeLeft) <> 0 Then
    VEOGL_Cam_Pos.V_X += TSpeed * Cos((VEOGL_Cam_Dir.V_Y) * TDeg2Rad)
    VEOGL_Cam_Pos.V_Z += TSpeed * Sin((VEOGL_Cam_Dir.V_Y) * TDeg2Rad)
End If
If Multikey(G_KB_Key_StrafeRight) <> 0 Then
    VEOGL_Cam_Pos.V_X -= TSpeed * Cos((VEOGL_Cam_Dir.V_Y) * TDeg2Rad)
    VEOGL_Cam_Pos.V_Z -= TSpeed * Sin((VEOGL_Cam_Dir.V_Y) * TDeg2Rad)
End If

If Multikey(G_KB_Key_GoUp) <> 0 Then VEOGL_Cam_Pos.V_Y += -TSpeed
If Multikey(G_KB_Key_GoDown) <> 0 Then VEOGL_Cam_Pos.V_Y += TSpeed

If Multikey(G_KB_Key_RotateLeft) <> 0 Then VEOGL_Cam_Dir.V_Y += -1
If Multikey(G_KB_Key_RotateRight) <> 0 Then VEOGL_Cam_Dir.V_Y += 1

If Multikey(G_KB_Key_RotateUp) <> 0 Then VEOGL_Cam_Dir.V_X += -1
If Multikey(G_KB_Key_RotateDown) <> 0 Then VEOGL_Cam_Dir.V_X += 1



If "a" = "b" Then
Dim TTmpV As VEOGL_Vector_Type
Dim TPosV As VEOGL_Vector_Type
Dim TDirV As VEOGL_Vector_Type
If Multikey(G_KB_Key_WalkForward)   <> 0 Then TPosV.V_Z += TSpeed
If Multikey(G_KB_Key_WalkBackward)  <> 0 Then TPosV.V_Z -= TSpeed
If Multikey(G_KB_Key_StrafeLeft)    <> 0 Then TPosV.V_X += TSpeed
If Multikey(G_KB_Key_StrafeRight)   <> 0 Then TPosV.V_X -= TSpeed
If Multikey(G_KB_Key_GoUp)          <> 0 Then TPosV.V_Y -= TSpeed
If Multikey(G_KB_Key_GoDown)        <> 0 Then TPosV.V_Y += TSpeed
If Multikey(G_KB_Key_RotateLeft)    <> 0 Then TDirV.V_Y -= 1
If Multikey(G_KB_Key_RotateRight)   <> 0 Then TDirV.V_Y += 1
If Multikey(G_KB_Key_RotateUp)      <> 0 Then TDirV.V_X -= 1
If Multikey(G_KB_Key_RotateDown)    <> 0 Then TDirV.V_X += 1
VEOGL_Cam_Dir.V_X += TDirV.V_X
VEOGL_Cam_Dir.V_Y += TDirV.V_Y
VEOGL_Cam_Dir.V_Z += TDirV.V_Z
If VEOGL_Cam_Dir.V_X < 0 Then VEOGL_Cam_Dir.V_X = 359
If VEOGL_Cam_Dir.V_Y < 0 Then VEOGL_Cam_Dir.V_Y = 359
If VEOGL_Cam_Dir.V_Z < 0 Then VEOGL_Cam_Dir.V_Z = 359
If VEOGL_Cam_Dir.V_X > 359 Then VEOGL_Cam_Dir.V_X = 0
If VEOGL_Cam_Dir.V_Y > 359 Then VEOGL_Cam_Dir.V_Y = 0
If VEOGL_Cam_Dir.V_Z > 359 Then VEOGL_Cam_Dir.V_Z = 0

VEOGL_Cam_Pos.V_X += TPosV.V_X * Sin((VEOGL_Cam_Dir.V_X + 90) * (PI / 180)) * Cos((VEOGL_Cam_Dir.V_Y + 90) * (PI / 180))
VEOGL_Cam_Pos.V_Y += TPosV.V_Y * Sin((VEOGL_Cam_Dir.V_X + 90) * (PI / 180)) * Sin((VEOGL_Cam_Dir.V_Y + 90) * (PI / 180))
VEOGL_Cam_Pos.V_Z += TPosV.V_Z * Cos((VEOGL_Cam_Dir.V_X + 90) * (PI / 180))
End If
End Sub