Ancanus
[[email protected]]# _
- Reaction score
- 54
I have a square arena, with four regions surrounding it:
In the center of this arena, I have a beautiful wisp. When players approach it, the wisp is set in motion: it's direction defined by the approaching player.
This moving wisp is smart, hence is able to change directions when it hits a wall. When the wisp enters Region 1 OR Region 2, I change it's facing to: 180 - it's current facing angle. When it enters Region 3 OR 4: 360 - it's current facing angle. The wisp bounces as it were a ball hitting a wall with an angle.
ISSUE: The wisp, although beautiful, is retarded. When I issue it to move, it does stupid pathing calculations, turns around a bit and does not bounce perfectly. As such, instead of ordering it to move, I am moving it via UNIT - MOVE UNIT INSTANTLY by a variable distance. Sadly though, it sometimes misses the region and goes off the arena.
What can I do about it?
Code:
Region 3
R// // // // // // // //R
e// // // // // // // //e
g// // . . . . . . // //g
i// // . . . . . . // //i
o// // . . . . . . // //o
n// // . . . . . . // //n
// // // // // // // //
1// // // // // // // //2
Region 4
In the center of this arena, I have a beautiful wisp. When players approach it, the wisp is set in motion: it's direction defined by the approaching player.
This moving wisp is smart, hence is able to change directions when it hits a wall. When the wisp enters Region 1 OR Region 2, I change it's facing to: 180 - it's current facing angle. When it enters Region 3 OR 4: 360 - it's current facing angle. The wisp bounces as it were a ball hitting a wall with an angle.
ISSUE: The wisp, although beautiful, is retarded. When I issue it to move, it does stupid pathing calculations, turns around a bit and does not bounce perfectly. As such, instead of ordering it to move, I am moving it via UNIT - MOVE UNIT INSTANTLY by a variable distance. Sadly though, it sometimes misses the region and goes off the arena.
What can I do about it?
Code:
TL;DR
I want to bounce an object in a boundary.
My old system didn't look good.
My current systems allows it to get out of bounds.
How do I fix it?
Code:
Pseudo-code:
Every .1 second
-> Move wisp ahead by a distance proportional to its movement speed.
-> Reduce wisp movement speed.
Player approaches wisp:
-> Make wisp face player's facing angle.
-> Set wisp movement speed to 500.
Wisp enters region 1 , 2 , 3 or 4:
-> Adjust wisps direction angle