Bouncing off walls issue

Reaction score
54
I have a square arena, with four regions surrounding 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
 

UndeadDragon

Super Moderator
Reaction score
447
Can you post what you have so far, so we can see what you are doing wrong?

Just to let you know, the correct physics for calculating the "bounce angle" is not (facing angle)+180.
 

Gtam

Lerning how to write and read!! Yeah.
Reaction score
164
use a snippet provided by emjrl3 called deflection angle.
 

Gtam

Lerning how to write and read!! Yeah.
Reaction score
164
yes thats the snippet i refered to
 
Reaction score
54
Thank you guys, I've fully read Mr. emjrl3 snippet.

However, his paper is about a function that returns the angle after deflection. My trigger is already is capable of this.

My issue is that my current system for moving my projectile allows it to escape the arena.
 

Gtam

Lerning how to write and read!! Yeah.
Reaction score
164
well use unit enters region get deflection anlge then move unit offset by x toward deflection angle
 

Komaqtion

You can change this now in User CP.
Reaction score
469
Well... That wouldn't happen if the wisp is correctly turning around, would it ?
Since then it'll always bounce off the "walL" when entering the region...
Meaning that there will never be an interference.
 
Reaction score
54
You see, the wisp is constantly slowing down.
The issue occurs when it stops at the any of the 4 regions (this happens pretty often!)

It already has updated it's angle to bounce off.
But when a player comes and touches it, the wisp changes to the player's angle. Since it's already inside the region, the event doesn't run, it's angle doesn't change and it goes out of bound
 

Komaqtion

You can change this now in User CP.
Reaction score
469
Well, why not simply move the wisp outside the region when entering, and problem solved :D

Just 1 range or so and depending on the entered region, move it towards either 0, 90, 180 or 270 degrees :D
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Members online

      No members online now.

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top