phetsims / proportion-playground

"Proportion Playground" is an educational simulation in HTML5, by PhET Interactive Simulations at the University of Colorado Boulder.
GNU General Public License v3.0
2 stars 4 forks source link

Splotch size can be vastly exaggerated after many balloons hit at once #101

Open phet-steele opened 7 years ago

phet-steele commented 7 years ago

@jonathanolson don't feel like you have to fix this since it is a devious multitouch.

  1. Go to the paint on the explore screen.
  2. Use finger A to fire and hold increasing a color, then a second later use finger B to fire and hold decreasing the same spinner. This should allow you to achieve endless balloons and paint dripping for that particular spinner. Do not release these fingers ever.
  3. Use finger C to switch screens/scenes.
  4. Wait as long as desired, maybe like 10 seconds?
  5. Use finger C to switch back to the paint on the explore screen. The balloons will have "queued" and all hit at once to make the splotch gigantic.

Usually this is self correcting and a large amount of paint will drip out quickly afterward, but sometimes paint dripped does not equal balloons thrown so you get a large splotch stuck on screen. Decreasing to 0,0 will also not remove the splotch. You must refresh/reset. img_0046

Right splotch at 0,0 img_0044

Seen on iPad Air 2 iOS 10.3.1 Safari. For phetsims/tasks/issues/839. URL: http://www.colorado.edu/physics/phet/dev/html/proportion-playground/1.0.0-rc.1/proportion-playground_en.html Version: 1.0.0-rc.1 2017-05-12 04:41:10 UTC Features missing: touch Flags: pixelRatioScaling User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 Language: en-US Window: 1920x1014 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: 80) Max viewport: 16384x16384 OES_texture_float: true Dependencies JSON: {"assert":{"sha":"5c3f9204","branch":"HEAD"},"axon":{"sha":"7b0852e8","branch":"HEAD"},"babel":{"sha":"a47e061a","branch":"master"},"brand":{"sha":"c904b097","branch":"HEAD"},"chipper":{"sha":"9dde2e9c","branch":"HEAD"},"dot":{"sha":"6b4ec39c","branch":"HEAD"},"joist":{"sha":"84ba3f90","branch":"HEAD"},"kite":{"sha":"7d2df183","branch":"HEAD"},"phet-core":{"sha":"76ec0204","branch":"HEAD"},"phetcommon":{"sha":"11406a81","branch":"HEAD"},"proportion-playground":{"sha":"1b1b89c4","branch":"HEAD"},"query-string-machine":{"sha":"c74e454e","branch":"HEAD"},"scenery":{"sha":"a83739b9","branch":"HEAD"},"scenery-phet":{"sha":"9f07ef29","branch":"HEAD"},"sherpa":{"sha":"0e326d54","branch":"HEAD"},"sun":{"sha":"1c94ce39","branch":"HEAD"},"tandem":{"sha":"a336a3f3","branch":"HEAD"}}

jonathanolson commented 7 years ago

Multitouch not technically needed, the spinner just needs to alternate quickly enough.

Caused because when balloons hit, they instantly add splotch area, but drips don't instantly take it away (slowly drains from the splotch). So if you hit 100 balloons at approximately the same time as 100 drips start, the splotch size shoots up for a short period until the drips "drain" the splotch to the correct size.

jonathanolson commented 7 years ago

Pushed a potential fix (for the more permanent bug) and a workaround (for the temporary amount of paint exceeding the normally permitted size).

@amanda-phet, does this workaround seem acceptable?

jonathanolson commented 7 years ago

@phet-steele reported the potential fix didn't work.

I'll need to map out all of the logic and try to prove it's not possible (to see where the buggy code is).

ariel-phet commented 7 years ago

@jonathanolson this multitouch bug is not a concern and does not need to be fixed for publication

jonathanolson commented 7 years ago

But it is not a multi-touch bug as noted above?

ariel-phet commented 7 years ago

@jonathanolson is there any way to cause it without multitouch? If it is straightforward to fix, go ahead, but if it is a tricky fix and a highly unlikely user scenario it can be deferred

jonathanolson commented 7 years ago

Tricky(ish) to identify the fix, probably a very simple fix. Mean time for identifying is probably an hour.

Defer and do another RC?

ariel-phet commented 7 years ago

@jonathanolson yes please, defer and do another RC

jonathanolson commented 7 years ago

Commit above makes this probably harder to occur, as it interrupts input on the non-active scene when switching.