How to make a spinning wheel in SL (no JS need)

I got an email asking me if I can share how I build a spin wheel in Challenge#188. So I wrote this post to explain how I did it. You may like to see the demo first.

 

Ok, here is how I built it.

Create a spinnable wheel

First of all, I need a wheel so I inserted one from the content library. And to make it able to spin I duplicate and crop it to the spin area and then covert it to dial.

To make it spin smoothly and have multiple circles, I set the rotation equal to 3600 and the value from 0 to 9999.

Make it spins for a period of time after hitting a button

I like the wheel randomly spinning while a sound effect is playing after hitting a button. To control the wheel spinning or not spinning, I added one T/F variable (I call it “STOP”) to do the magic, the wheel will only spin when variable STOP is equal to False.

  1. To make the wheel spinning for a period of time is to keep changing the value of dial in the period I want. So I created a little rectangle and make it able to quickly move up and down in loop during the period (Sound Effect playing).

  • Create a loop: Move the rectangle up when motion down completes, move the rectangle down when the motion up completes on condition of variable STOP=False. Here, the loop will be ended when a trigger changes the variable STOP.
  • Changing the dial value: add a random number to variable Dial when the animation completes up or down. So the dial value will keep changing while the looping exist.  

2. Trigger a start and play a sound effect, there are four triggers to do so. 

  • Set variable STOP=False when clicking the BTN: this allows the wheel to spin because the object only moves on condition of variable STOP=False.
  • Move the rectangle when clicking the BTN on condition of variable STOP=False.
  • Set variable Dial=0 when clicking BTN to make sure it will turn when hit the BTN.  

  • Trigger the sound effect when variable Dial changes.

3. Stop spinning when media completes

Set default variable STOP = false, and then set a trigger to adjust variable STOP equal to True when media completes.

So the wheel spins and a sound effect plays when clicking the BTN by STEP 2, keep spinning while the sound effect playing by STEP 1 and stop spinning once the sound effect ends by STEP 3.

You may download the .story file below.

27 Replies
Colleen Brady

I am planning to use the wheel for an experiential learning activity, where the spin give the students a scenario they need to address in the business simulation they are doing throughout the semester. I would like it to only allow them to spin the wheel one time. I have tried changing the state of the start button to disabled, and to hidden, after user clicks, but on both ones, it comes back. Suggestions? I am worried to mess with too much experimentally, because I don't want to mess up the spin. Thank you. 

Carrie Ryan

This is fantastic!  Thank you!  I imported the wheel and it works great. But when I duplicate it or import the slide again, the character state does not change and the wheel does not spin. I checked all the triggers and they are all the same on slide #1 and slide #2 but slide #2 does not spin. Any thoughts? I have reimported even from the original file and it still won't spin.