phetsims / build-a-molecule

"Build a Molecule" is an educational simulation in HTML5, by PhET Interactive Simulations.
GNU General Public License v3.0
8 stars 7 forks source link

Completing a level while viewing a previous level will not allow you to proceed #212

Closed phet-steele closed 3 years ago

phet-steele commented 3 years ago
  1. Start a game and finish the first level.
  2. Move on to the next level, and complete all but one of the answers.
  3. Form the last molecule for the last answer, and use finger A to drag and hold this molecule over its answer box. Keep it hovered in place; do not let go of finger A.
  4. With finger B, press the yellow arrow to transition back to level 1.

This will cancel the touch interaction on finger A (you can release finger A), and since the molecule was over the answer box, it will complete level 2 out of sight. However, there is no reward dialog, and pressing the yellow arrow to move forward to level 2 with reveal there is also not a "Next Collection" button. You are effectively prevented from proceeding to the next level without a Reset All, or completing the level all over again.

Seen on ChromeOS 13421.17.0 Chrome 86.0.4240.15. For phetsims/QA/issues/550.

screenshot-phet-dev colorado edu-2020 09 24-16_17_54

Troubleshooting Information URL: https://phet-dev.colorado.edu/html/build-a-molecule/1.0.0-rc.3/phet/build-a-molecule_all_phet.html Version: 1.0.0-rc.3 2020-09-16 23:48:35 UTC Features missing: applicationcache, generatedcontent, applicationcache, touch Flags: pixelRatioScaling User Agent: Mozilla/5.0 (X11; CrOS aarch64 13421.17.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.15 Safari/537.36 Language: es Window: 1536x714 Pixel Ratio: 1.25/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: 15 uniform: 512 Texture: size: 8192 imageUnits: 16 (vertex: 16, combined: 112) Max viewport: 8192x8192 OES_texture_float: true
arouinfar commented 3 years ago

Really nice find @phet-steele! I wonder if this is a Chromebook multitouch issue or a more general multitouch issue. I think it would be helpful to know if it occurs on iOS as well. Not sure if you have access to an iPad @phet-steele so I'll co-assign @KatieWoe.

KatieWoe commented 3 years ago

Reproduced on iPadOS 14.0.1. Great catch!

phet-steele commented 3 years ago

Not sure if you have access to an iPad @phet-steele

I do not have one. 😄

Denz1994 commented 3 years ago

Great catch. The issue is centered around what happens to the molecules after the touch event is canceled. Because the molecule intersects with the collection box bounds and the userControlledProperty is false it will accept the molecule. I think we'll just need to check for the current kit to prevent acceptance or maybe force the molecule back to the kit.

I have a touch device I can test this on.

Denz1994 commented 3 years ago

The patch above makes it so molecules are only added to boxes if the kit is the currently active kit. This should handle all multi-touch cases that swap kits while dragging is still active. Will have qa verify.

phet-steele commented 3 years ago

@Denz1994 I am not seeing this fix present in 1.0.0-rc.4

KatieWoe commented 3 years ago

Issue still occurs in rc.4 on iPadOS 14 as well.

Denz1994 commented 3 years ago

The patch above only handled cases where the kit was changed. I thought this would catch collection changes as well. Additional restrictions on dropping completed molecules have been added. This restriction limits accepted molecules to collection boxes that are part of the current active collection.

@ariel-phet asked to be assigned to this one for testing.

Can you verify this version has the appropriate fix @ariel-phet?

ariel-phet commented 3 years ago

@phet-steele said he will have a little time for this verification

phet-steele commented 3 years ago

This looks fixed in 1.0.0-rc.5!