phetsims / plinko-probability

"Plinko Probability" is an educational simulation in HTML5, by PhET Interactive Simulations.
GNU General Public License v3.0
5 stars 7 forks source link

Balls frozen on board #90

Closed phet-steele closed 7 years ago

phet-steele commented 7 years ago

Easiest setup to repro:

  1. Lab screen, 26 rows, 0.5 probability.
  2. Make sure the hopper is in Ball mode and you have continuous play mode selected.
  3. Press play, let the balls drop for a few seconds.
  4. Press pause, and while balls are still on the board, change the probability.

The balls will freeze in place. Further interaction (erasing, changing # of row, pressing play, etc.) will properly remove the balls

screen shot 2016-09-19 at 12 18 49 pm

Seen on Mac OSX 10.11.6 Chrome & iPad Air 2 iOS 10.0.1. For phetsims/tasks/issues/702. Name: ‪Plinko Probability‬ URL: http://www.colorado.edu/physics/phet/dev/html/plinko-probability/1.0.0-rc.1/plinko-probability_en.html Version: 1.0.0-rc.1 2016-09-16 19:30:26 UTC Features missing: touch Flags: pixelRatioScaling User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.116 Safari/537.36 Language: en-US Window: 1388x1000 Pixel Ratio: 2/1 WebGL: WebGL 1.0 (OpenGL ES 2.0 Chromium) GLSL: WebGL GLSL ES 1.0 (OpenGL ES GLSL ES 1.0 Chromium) Vendor: WebKit (WebKit WebGL) Vertex: attribs: 16 varying: 32 uniform: 1024 Texture: size: 16384 imageUnits: 16 (vertex: 16, combined: 16) Max viewport: 16384x16384 OES_texture_float: true Dependencies JSON: {"assert":{"sha":"7d27130a","branch":"HEAD"},"axon":{"sha":"e0192608","branch":"HEAD"},"babel":{"sha":"c041de05","branch":"master"},"brand":{"sha":"f0b1f7da","branch":"HEAD"},"chipper":{"sha":"07058555","branch":"HEAD"},"dot":{"sha":"39436598","branch":"HEAD"},"joist":{"sha":"b513b5ee","branch":"HEAD"},"kite":{"sha":"73302899","branch":"HEAD"},"phet-core":{"sha":"c48bf320","branch":"HEAD"},"phetcommon":{"sha":"83ea84c8","branch":"HEAD"},"plinko-probability":{"sha":"3a105d26","branch":"HEAD"},"query-string-machine":{"sha":"05231e54","branch":"HEAD"},"scenery":{"sha":"e78ee413","branch":"HEAD"},"scenery-phet":{"sha":"f0fc9ae8","branch":"HEAD"},"sherpa":{"sha":"bcc28cd6","branch":"HEAD"},"sun":{"sha":"f2bd9d60","branch":"HEAD"},"tandem":{"sha":"d369b847","branch":"HEAD"},"vibe":{"sha":"b422db9c","branch":"HEAD"}}

pixelzoom commented 7 years ago

This is due to yet-another missing call to BallNodes.invalidatePaint (which would erase the balls). The root cause is sloppiness and redundancy in the model's reset and erase functions. I was trying not to touch that stuff, but I will now bite the bullet and clean it up.

pixelzoom commented 7 years ago

This issue is fixed in master and 1.0 branches. This will need to be tested in another RC version. In the meantime, @phet-steele you may verify in 1.0.0-dev.19.

phet-steele commented 7 years ago

This looks good, @pixelzoom

pixelzoom commented 7 years ago

Great, closing. We'll revisit in the next RC, and can reopen if there's a problem.