Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New PhET-iO client requests #119

Closed
3 tasks done
amanda-phet opened this issue Apr 1, 2022 · 13 comments
Closed
3 tasks done

New PhET-iO client requests #119

amanda-phet opened this issue Apr 1, 2022 · 13 comments

Comments

@amanda-phet
Copy link
Contributor

amanda-phet commented Apr 1, 2022

In a discussion with instructional designer partners, the following requests came out of the meeting:

(1) Can we limit the kicker to be just one person (so, just the artwork for player01 for all 15 kicks)

  • (2) Can we make x balls not movable, and y balls movable (e.g. 14 frozen, 1 that can move)
  • (3) Can we change the appearance of balls that are movable and balls that are not (this is a big design question I’ve had)
  • (4) Instrument the banner question at the top of the sim so that we can hide both the colored banner and the text question.

For (1), I think this is straightforward. We just want to use the same artwork for each kick. If we can provide a list of all 15 players and the client selects the one they want, I think that would be nice. But if it's not possible, we can just use player01 as the single player.

(2) This design doesn't seem possible without (3). But as far as the implementation goes, I am thinking that in the tree, each soccerBallNode_x would have its own inputEnabledProperty, rather than the group having that property. When that is checked, we need to change the appearance as well (or provide a way to adjust the opacity?).

(3) I added this because I am concerned about making some balls movable and others not movable without changing their appearance. I think we need a design discussion about this. If we make them semi-transparent, they may look like they "are not part of the data set" since that's what we're doing for the ball about to be kicked. However, this seems like a straightforward approach. Another idea is to use a different png file for any "frozen" balls, such as a soccer ball that has inverted colors, or looks more flat (doesn't have shading), or some other visual difference that doesn't use reduced opacity.

@amanda-phet
Copy link
Contributor Author

@chrisklus and I discussed these and (2) and (3) are doable, and we decided to have the soccer ball change appearance when inputEnabledProperty is false. He is also going to instrument the bar at the top to address (4).

(1) The prompt we wanted to write for this can be achieved with the sim as it is, and the Spread screen will fully address the questions we had in mind, so I've decided to scrap this from the list.

Here is a mockup of (3):

image

@amanda-phet
Copy link
Contributor Author

amanda-phet commented Apr 1, 2022

Here is the asset:

ball_disabled

This should be the correct size.

@amanda-phet
Copy link
Contributor Author

Here is a slightly lighter ball
soccerball_not pickable

@chrisklus
Copy link
Contributor

This issue is complete, ready for review by @amanda-phet and @samreid

@amanda-phet
Copy link
Contributor Author

Looks great! Thanks for making this possible. These changes are going to make the wrappers even better.

@amanda-phet amanda-phet removed their assignment Apr 1, 2022
@samreid
Copy link
Member

samreid commented Apr 1, 2022

Would this simplify the boolean logic a bit? I haven't tested it:

          // if input is disabled and the ball is in the play area, show the darker version
          if ( options.objectViewType === CAVObjectType.SOCCER_BALL && value !== null ) {
            soccerBallDarkNode.visible = !inputEnabled;
            soccerBallNode.visible = inputEnabled;
          }

Other than that, the code review looks good.

@samreid samreid assigned chrisklus and unassigned samreid Apr 1, 2022
chrisklus added a commit that referenced this issue Apr 4, 2022
@chrisklus
Copy link
Contributor

Thanks @samreid - the else was needed for when switching from input disabled -> enabled, but i used your idea to improve what was there like this:

if ( options.objectViewType === CAVObjectType.SOCCER_BALL ) {

  // if input is disabled and the ball is in the play area, show the darker version
  const showDisabledSoccerBall = !inputEnabled && value !== null;
  soccerBallDarkNode.visible = showDisabledSoccerBall;
  soccerBallNode.visible = !showDisabledSoccerBall;
}

Thanks all for reviewing, closing.

@chrisklus
Copy link
Contributor

Oops, did not mean to close. Reopening for cherry picking.

@amanda-phet
Copy link
Contributor Author

This all looks good to me!

@chrisklus
Copy link
Contributor

@samreid and I spot-checked this for #122, closing.

@KatieWoe
Copy link

KatieWoe commented Apr 8, 2022

Reopening for phetsims/qa#795. I found it odd that this was not a Featured Element. Should this be revisited?

@samreid
Copy link
Member

samreid commented Apr 8, 2022

As far as I know, nothing is intended to be featured for this milestone, and featured elements will be designed by @amanda-phet for 1.1.

@amanda-phet
Copy link
Contributor Author

Correct, we haven't done any featuring yet in studio. Re-closing.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants