TGC Codebase Backup



[Tier 1] 3d sliding collision by Cliff Mellangard 3DEGS

23rd Feb 2013 8:18
Summary

GFT# is getframetime() The simple put in your own turn and movements speed in floats.



Description

Made for my 3d dungeon game.



Code
                                    ` This code was downloaded from The Game Creators
                                    ` It is reproduced here with full permission
                                    ` http://www.thegamecreators.com
                                    
                                    rem Old position
    oldx#=GetCameraX(1)
    oldy#=GetCameraY(1)
    oldz#=GetCameraZ(1)

    rem Move camera
    if GetRawKeyState(38)=1 or getvirtualjoysticky(1)<0.0-0.5 then MoveCameraLocalZ(1,moveSpeed#*GFT#)
    if GetRawKeyState(40)=1 or getvirtualjoysticky(1)>0.0+0.5 then MoveCameraLocalZ(1,-moveSpeed#*GFT#)
    if GetRawKeyState(37)=1 or getvirtualjoystickx(1)<0.0-0.5 then RotateCameraLocalY(1,-turnSpeed#*GFT#)
    if GetRawKeyState(39)=1 or getvirtualjoystickx(1)>0.0+0.5 then RotateCameraLocalY(1,turnSpeed#*GFT#)

    rem New position
    newx#=GetCameraX(1)
    newy#=GetCameraY(1)-17.0
    newz#=GetCameraZ(1)
    if ObjectSphereSlide(0,oldx#,oldy#,oldz#,newx#,newy#,newz#,16.0)>0
       XPos#=GetObjectRayCastSlideX(0)
       YPos#=GetObjectRayCastSlideY(0)+15.9
       ZPos#=GetObjectRayCastSlideZ(0)
       Gravity#=0.0
    else
       XPos#=GetCameraX(1)
       YPos#=GetCameraY(1)
       ZPos#=GetCameraZ(1)
       Gravity#=40.0*GFT#
    endif
    SetCameraPosition(1,XPos#,YPos#-Gravity#,ZPos#)