Hey TheComet,
Do you know why i have an invisible wall in this code? Its a collision code. It works fine only the invisible wall problem!
Thank You!
Function Fall()
ox#=Object Position x(ColliderObjNum)
oy#=Object Position y(ColliderObjNum)
oz#=Object Position z(ColliderObjNum)
Delta#=Gravity/Screen FPS()
ny#=EyeHeight + (oy#-Intersect Object(999, ox#, oy#, oz#, ox#, -1000, oz#))
If (oy#-ny#)<=Delta#
Position Object ColliderObjNum, ox#, ny#, oz#
Position Camera 0, ox#, ny#, oz#
Airborn = 0
Else
Position Object ColliderObjNum, ox#, oy#-delta#, oz#
Position Camera 0, ox#, oy#-delta#, oz#
EndIf
EndFunction
Function CheckCollision()
Moving = 0
ox#=Object Position x(ColliderObjNum)
oy#=Object Position y(ColliderObjNum)
oz#=Object Position z(ColliderObjNum)
Delta#=MovePerSec/Screen FPS()
If Delta#>EyeHeight
Delta#=EyeHeight
EndIf
Rotate Object ColliderObjNum, Object Angle x(ColliderObjNum)+(MouseMovey()/MouseSens),Object Angle y(ColliderObjNum)+(MouseMovex()/MouseSens),0
If Object Angle x(ColliderObjNum)>90 then XRotate Object ColliderObjNum,90
If Object Angle x(ColliderObjNum)<-90 then XRotate Object ColliderObjNum,-90
cx#=Object Angle x(ColliderObjNum)
cy#=Object Angle y(ColliderObjNum)
cz#=Object Angle z(ColliderObjNum)
Rotate Camera cx#, cy#, cz#
Rotate Object ColliderObjNum, cx#, cy#, cz#
if keystate(17) = 1
XRotate Object ColliderObjNum,0
Move Object ColliderObjNum,Delta#
XRotate Object ColliderObjNum,cx#
endif
if keystate(31) = 1
XRotate Object ColliderObjNum,0
Move Object ColliderObjNum,0-Delta#
XRotate Object ColliderObjNum,cx#
endif
if keystate(30) = 1
XRotate Object ColliderObjNum,0
YRotate Object ColliderObjNum,cy#-90
Move Object ColliderObjNum,Delta#
YRotate Object ColliderObjNum,cy#
XRotate Object ColliderObjNum,cx#
endif
if keystate(32) = 1
XRotate Object ColliderObjNum,0
YRotate Object ColliderObjNum,cy#-90
Move Object ColliderObjNum,0-Delta#
YRotate Object ColliderObjNum,cy#
XRotate Object ColliderObjNum,cx#
endif
nx#=Object Position x(ColliderObjNum)
nz#=Object Position z(ColliderObjNum)
ny#=EyeHeight + (oy#-Intersect Object(999, nx#, oy#, nz#, nx#, -1000, nz#))
if nx# > ox#
newxwest# = intersect object(999,nx#,ny#,nz#,nx#+(EyeHeight/2),ny#,nz#)
endif
if newxwest# > 0
if newxwest# < object size x(55)/2
nx# = ox#
endif
endif
if object collision(ColliderObjNum,0) <> 0
position object ColliderObjNum, ox#, ny#, nz#
if object collision(ColliderObjNum, 0)<>0
Position object ColliderObjNum, nx#, ny#, oz#
If Object Collision(ColliderObjNum, 0)<>0
Position Object ColliderObjNum, nx#, oy#, nz#
If Object Collision(ColliderObjNum, 0)<>0
ny#=oy#
nx#=ox#
nz#=oz#
Else
ny#=oy#
EndIf
Else
nz#=oz#
EndIf
else
nx# = ox#
endif
EndIf
if (oy#-ny#) > EyeHeight
AirBorn = 1
ny#=oy#
CheckFall()
EndIF
Position Camera 0, nx#, ny#, nz#
Position Object ColliderObjNum, nx#, ny#, nz#
EndFunction
Function CheckFall()
ox#=Object Position x(ColliderObjNum)
oy#=Object Position y(ColliderObjNum)
oz#=Object Position z(ColliderObjNum)
ny#=EyeHeight + (oy#-Intersect Object(999, ox#, oy#, oz#, ox#, -1000, oz#))
position object ColliderObjNum, ox#, ny#, oz#
if object collision(ColliderObjNum,0) <> 0
Airborn=0
EndIf
EndFunction
Alex Matei CEO
www.alexmatei.com