@@ -130,6 +130,35 @@ if(!tc){ var tc = {}; }
130130 }
131131 }
132132
133+ _me . bounce_off_walls = function ( bounds ) {
134+ var b_did_i_collide ;
135+ b_did_i_collide = false ;
136+
137+ if ( _me . pos . elements [ 0 ] < bounds . min_x + o . radius ) {
138+ _me . pos . elements [ 0 ] = o . radius ;
139+ b_did_i_collide = true ;
140+ vel . elements [ 0 ] = vel . elements [ 0 ] * - 1.0 ;
141+ } else if ( _me . pos . elements [ 0 ] > bounds . max_x - o . radius ) {
142+ _me . pos . elements [ 0 ] = bounds . max_x - o . radius ;
143+ b_did_i_collide = true ;
144+ vel . elements [ 0 ] = vel . elements [ 0 ] * - 1.0 ;
145+ }
146+
147+ if ( _me . pos . elements [ 1 ] < bounds . min_y + o . radius ) {
148+ _me . pos . elements [ 1 ] = o . radius ;
149+ b_did_i_collide = true ;
150+ vel . elements [ 1 ] = vel . elements [ 1 ] * - 1.0 ;
151+ } else if ( _me . pos . elements [ 1 ] > bounds . max_y - o . radius ) {
152+ _me . pos . elements [ 1 ] = bounds . max_y - o . radius ;
153+ b_did_i_collide = true ;
154+ vel . elements [ 1 ] = vel . elements [ 1 ] * - 1.0 ;
155+ }
156+
157+ if ( b_did_i_collide ) {
158+ vel = vel . multiply ( 0.3 ) ;
159+ }
160+ }
161+
133162 _me . handle_anchor = function ( ) {
134163 if ( ! _me . anchor ) { return ; }
135164 var distance , length , pct , normal_distance ;
@@ -171,35 +200,6 @@ if(!tc){ var tc = {}; }
171200 vel = vel . multiply ( damping ) ;
172201 }
173202
174- _me . bounce_off_walls = function ( bounds ) {
175- var b_did_i_collide ;
176- b_did_i_collide = false ;
177-
178- if ( _me . pos . elements [ 0 ] < bounds . min_x + o . radius ) {
179- _me . pos . elements [ 0 ] = o . radius ;
180- b_did_i_collide = true ;
181- vel . elements [ 0 ] = vel . elements [ 0 ] * - 1.0 ;
182- } else if ( _me . pos . elements [ 0 ] > bounds . max_x - o . radius ) {
183- _me . pos . elements [ 0 ] = bounds . max_x - o . radius ;
184- b_did_i_collide = true ;
185- vel . elements [ 0 ] = vel . elements [ 0 ] * - 1.0 ;
186- }
187-
188- if ( _me . pos . elements [ 1 ] < bounds . min_y + o . radius ) {
189- _me . pos . elements [ 1 ] = o . radius ;
190- b_did_i_collide = true ;
191- vel . elements [ 1 ] = vel . elements [ 1 ] * - 1.0 ;
192- } else if ( _me . pos . elements [ 1 ] > bounds . max_y - o . radius ) {
193- _me . pos . elements [ 1 ] = bounds . max_y - o . radius ;
194- b_did_i_collide = true ;
195- vel . elements [ 1 ] = vel . elements [ 1 ] * - 1.0 ;
196- }
197-
198- if ( b_did_i_collide ) {
199- vel = vel . multiply ( 0.3 ) ;
200- }
201- }
202-
203203 _me . update = function ( ) {
204204 vel = vel . add ( frc ) ;
205205 _me . pos = _me . pos . add ( vel ) ;
0 commit comments