Gamestudio Links
Zorro Links
Newest Posts
Z strategies
by Fuchs
Yesterday at 17:27
saturation/contrast on different resolution?
by Kartoffel
Yesterday at 13:37
vec_for_vertex gap issue
by Dooley
04/19/18 22:15
FPS Damage effect
by 3run
04/19/18 20:51
website-related suggestions for the webmaster
by Fuchs
04/19/18 19:03
Algorithm for Detrend=SHUFFLE
by kujo
04/19/18 15:24
Separate entry and exit parameters optimization
by kujo
04/19/18 13:27
AUM Magazine
Latest Screens
Forgotten Tales - Demo version
RPG PARTY
Triton Wing now available on Steam
AckCon'17: Lotter vs The World
Who's Online
14 registered (3run, firecrest, AndrewAMD, jmlocatelli, PadMalcom, Don_Diego, kujo, Fuchs, mk_1, 2 invisible), 504 Guests and 4 Spiders online.
Key: Admin, Global Mod, Mod
Newest Members
stuvwx608784, Joderin, Fuchs, Don_Diego, jetomas59
17937 Registered Users
Topic Options
Rate This Topic
#472218 - 04/16/18 22:49 determine relative angle
Blobfist Offline
Newbie

Registered: 03/20/18
Posts: 16
I am playing around with angles and ran into a little thought error.

The actual moving character is the transparent box, while the animated model is simply attached to it.

The box always faces in the direction of where it is moving, while the animated character faces towards it`s enemy.

The attached character should play in relation to the angle of the transparent box the correct walking animation (strafe forward, left, right, back).



This is my attempt:




Code:
//calculate angle relation between [b]my[/b] and [b]enemy[/b]
var target_ang = abs(ang(bbox.pan - my.pan));



I can correctly define when the character is facingin the same or opposite direction as the box it is attached to.

Code:
//if ((target_ang >= 0) && (target_ang < 45))//facing within 45 degrees the same direction
//if ((target_ang >= 135) && (target_ang < 180))//facing within 45 degrees the opposite direction




However, determining if it is facing to the left or the right side, does not seem to work.

Code:
if ((target_ang >= 45) && (target_ang < 90))//facing within 45 degrees the left

if ((target_ang >= 90) && (target_ang < 135))//facing within 45 degrees the right




Could anybody point out my error?








Edited by Blobfist (04/16/18 23:29)

Top
#472227 - 04/17/18 13:01 Re: determine relative angle [Re: Blobfist]
txesmi Offline
Serious User

Registered: 06/13/07
Posts: 1093
Loc: Hiporope and its pain
Hi,
one problem comes from removing the sign to 'target_ang'.

Code:
var target_ang = ang(bbox.pan - my.pan);
if (abs(target_ang) < 45) { // [-45, 45]
   // front
} else if (abs(target_ang < 135) { // [-135, -45], [45, 135]
   if (target_ang > 0) { // [45, 135]
      // left
   } else { // [-135, -45]
      // right
   }
} else { // [< -135][135 >]
   // back
}



if it is only to find the correct animation you might store their names in a TEXT and find its index from the angles.

Code:
TEXT *txtAnim = { string = ("front", "left", "back", "right"); }
...
var animIndex = floor((180 + ang(bbox.pan - my.pan - 22.5)) / 90);
ent_animate(me, (txtAnim.pstring)[animIndex], ...);



Salud!


Top


Moderator:  HeelX, Lukas, rayp, Rei_Ayanami, Superku, Tobias, TWO, VeT 

Gamestudio download | chip programmers | Zorro platform | shop | resources | magazine | manual | support faq | bugs

oP group Germany GmbH | Birkenstr. 25-27 | 63549 Ronneburg / Germany | info (at) 3dgamestudio.net