Get Angle ?
Blitz3D Forums/Blitz3D Beginners Area/Get Angle ?
Hi Everybody,
I looked in the code arc's and could not find what I was looking for, or my feeble little mind could not understand any of it :)
Here is what I need;
1. Get the Angle of the Tri/Vert/Poly that my player is standing on.
2. If the angle=>60 degrees the stop my animation as in, he cannot climb that hill.
thats it, but I am confused on how to do this.
Any help would be greatly appreciated.
THX !
Use Linepick vertical down and then pickedy
Thats will allow you to calculate the angle atan / atan2
Could you possibly provide a code sample for myself and others?
:)
LinePick entityx(player ), entityy(player ) + 10 , entityz( player ), 0,-100,0
If PickedNy < .25 then
{ this is a pretty steep slope }
endif
You don't need atan2 etc.. that's just overkill. Just use the pickedny() .. you'll need to play with the .25 value but 1 = flat , 0 = vertical.
Stevie
so do I need to make my player "pickable" or my terrain mesh?
and thx for your help :)
The terrain mesh.
I did that and PickedNY has no value assigned to it. And I did assign entitypickmode 2 to my terrain.
In my Code I have "my_angle" as a global # to capture the value so I could see the proposed angle of the terrain vert, and why it was not working. And my "my_angle" variable shows no value for PickedNY:
your code:
LinePick EntityX(player ), EntityY(player ) + 10 , EntityZ( player ), 0,-100,0
my_angle=PickedNY
If PickedNY < .25
;the .25 value but 1 = flat , 0 = vertical
EndIf
You need to use brackets with PickedNY(), else the compiler thinks you're referencing a variable called PickedNY, not calling a function.
EDIT : sorry - you have the # there already. My bad - forgot about the () part!!
ok, that works great on my terrain, allowing me to determine at what angles my actor can/cannot go up.
But, a new problems arose..I am using "EntityPickMode enemy,1" for my badguys so when they get into my crosshair it changes the crosshair color.
"pictentity=CameraPick(camera,MouseX(),MouseY())
If PickedEntity()=enemy1 ShowEntity target122"
Well now that my terrain is pickable, it wont let the pickmode for my badguys function. It acts like it's being overran by something and is ignored.
I may have found a temporary fix, I enable pickmode for the Terrain>run the angle check>then un-enable pickmode.
Will this be a performance hit ?
It may be the way your code is structured. If you can paste the code you are using it might help. It shouldn't be any performance hit disabling pickmodes.
Ok, i fixed it, I zigged instead of zagging...lol
Thx to all for helping, this is working great.