Forum Discussion
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.
- 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.
- DavidLanglotzCommunity Member
Awesome - thanks for sharing this Joanne!
- FayeCraginCommunity Member
Hi - I added numbers 7-12 to the wheel and replaced/added the image file(s) duplicating slides 1-6. It works fine but needed it to see the extra numbers during the spin. Under trigger wizard I set the condition numbers for 1 to the first set and for 7 to the second set. (See example of 1 before and after). I also added trigger wizards for number 7-12 for the character. It runs, but regardless of which number it lands on the card and link are for number 12. Help! Faye
- ColleenBradyCommunity Member
Faye, I am having the exact same problem. I did the same steps, and mine looks just like the photos you posted. Did you ever find a solution?
- RitcaGargCommunity Member
You can try this too. I was able to make it without the music as in my case I wanted a background music that will play no matter whether the wheel is spinning or not
- RitcaGargCommunity Member
I would like to see the file, but what I can suggest for now is for testing purposes add the variable on your screen so that you can see what number variable is on which outcome number. Hope this helps
- FayeCraginCommunity Member
No. :-(
- RitcaGargCommunity Member
Can you tell me more?
- MarkKomula-b933Community Member
I updated it to handle 13 different choices. It work fine if I limit the number to 6 but as soon as I add more than that it makes the result variable the last one in the list. Is there a limit of 6 assign variable statements or something?
- JamesThompson-2Community Member
Did anybody find a conclusion to be able to get the wheel number to match to the random number when the additional 6 are added. I am facing the same thing.
- MarkKomula-b933Community Member
I deleted the random statement and then re-wrote it and now it work for whatever number.
- JamesThompson-2Community Member
Send me an example of your action, please.
J.R.(James)Thompson, MSE
eLearning Consultant
[signature
- RitcaGargCommunity Member
Hi, can you tell me how did you come to the decision which number to be added and what range will include the number on spinning wheel?
- MarkKomula-b933Community Member
I decided I really didn't need the numbers on the wheel, just the spinning color wheel. Then I didn't have to worry about coordinating numbers with choices, I just had the answer or question appear at the bottom. Then is just a matter of setting my number of choices in the random statement.
- ColleenBradyCommunity Member
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.
- CarrieRyan-f13bCommunity Member
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.
- CodyWanberg-b7cCommunity Member
Hi Carrie. I just landed on this page the other day and have been playing with it myself. What you described happened to me. I duplicated the first slide but storyline changed the name of the graphic in my timeline. So, the triggers were pointing to the graphic from the first slide and not the wheel on the second slide. I hope that helps.