|
|
|
|
|
Home
»
XAML
»
Silverlight tutorial: How to create an animation of a ball being thrown
|
Silverlight tutorial: How to create an animation of a ball being thrown
By
Mike Dobbles August 06, 2008
This tutorial explores the XAML involved in Silverlight animations and provides step by step instructions on how to create an animation of a ball being thrown and bouncing across the floor.
|
|
Technologies:
Silverlight,Visual C# .NET |
|
Total downloads : |
87 |
|
Total page views : |
3681 |
|
Rating : |
|
0/5 |
|
This article has been rated : |
0 times |
|
|
|
|
Download
Files:
|
|
|
|
|
|
|
|
|
|
|
Similar ArticlesMost ReadTop RatedLatest
|
|
Related EbooksTop Videos
|
|
|
Description
|
|
This book covers from installation to application design and implementation to deployment. One of the most detailed books on new WPF technology, it provides you with the no-nonsense, practical advice you need in order to build high-quality WPF applications quickly and easily.
|
|
|
|
|
|
|
|
|
|
|
|
|
At the end of this tutorial you will be able to create an animation of a ball be thrown and bouncing across the ground a sample of which you can see here.
Introduction
This tutorial shows you how to create an animation of a ball being thrown across the screen, landing and bouncing. Is this useful? Well, not as useful as the navigation bar article, but I found a way to use it on my website so maybe you can as well. I did have a vision of Silverlight based shopping cart where any product you selected would be thrown across the screen, land in the shopping cart, and bounce around, but will save that for another article! In the meantime if nothing else you can use this article to learn a little more about the internals of a Silverlight animation Storyboard.
Step by Step Tutorial
A brief description of how to use the article or code. The class names, the methods and properties, any tric
- Create a new project in Expression Blend.
- Draw an ellipse and name the ellipse "ball"

- The key to creating a bounce effect is to realize that in physics the vertical motion of a ball in motion is completely independent of the horizontal motion. What we're going to do is create two separate story boards for each of these independent motions and then we're going to go into the XAML and combine them into one storyboard.
- Create a new storyboard called "Bounce"
- Record a keyframe at time 0 for the ball to capture the current position. Then drag the yellow timeline bar to the 1 second position.

- Now drag the red ball directly up. And record a key frame. At the one second point. Hit play and you should see the ball move directly up at a smooth rate and then stop.

- Now let's add some gravity. Click on the second keyframe bubble of the storyboard. Set the easing as shown below. This will make the motion slow down as the ball gets to the top of its motion. Confirm this by playing the storyboard. Once you've confirmed this close out the storyboard.

- Create a storyboard called Horizontal. Create a keyframe at 0 seconds, and then set the timeline to 2 seconds. Drag the ball horizontally to the right and create a keyframe at the 2 second point. Close out the storyboard.

- Now let's look at the XAML for the Bounce storyboard. Unless you drug the ball perfectly vertically you'll have two sections in the storyboard, one for animating the x direction and one for animation the y direction. You can tell which is which by looking for the line that ends TranslateTransform.Y or TranslateTransform.X. Delete the section that handles the X motion.
- Now let's make the ball return to it's starting point.
Here's the XAML before hand:

Notice it's moving the ball from a position of 0 to a position of -206 in 1 second. ControlPoint1's value of 0,1 indicates we are going to start at full speed and reach minimum speed at the end of the motion. To make the ball return back down we'll copy the second keyframe, change to time of the key to 2 seconds, change the destination of the animation to 0, and we'll reverse the sense of the easing defined by ControlPoint2. The results are as follows:

Select the bounce storyboard and hit play. You should see the ball go up and down as if it's been thrown up and down.
- Now let's add the X motion. Take a look at second storyboard we made earlier called horizontal. Copy the DoubleAnimationUsingKeyFrames section that ends TranslateTransform.X and paste it into the Bounce storyboard. Open the bounce storyboard from the design review and hit play. You should see the ball move in a nice smooth arc as if it has been thrown.

- To add a bounce we simply follow the same pattern and add additional key frames. To the DoubleAnimationUsingKeyFrames section that ends TranslateTransform.X add one more keyframe at 3 seconds by adding the following XAML:
<SplineDoubleKeyFrame KeyTime="00:00:03" Value="320"/>
This XAML sets the position that the ball will move to at the end of the third second to 320 which is 22 to the right of where it was in at the end of the previous keyframe. For the vertical portion of the bounce copy the last two keyframes of the DoubleAnimationUsingKeyFrames section that ends TranslateTransform.Y. Set the keyframe time for the peak of the bounce to 2.5 seconds and a height of -20. Have the bounce return to 0 at 3 seconds. This results in the addition of the following XAML:
<SplineDoubleKeyFrame KeyTime="00:00:02.5" Value="-20"> <SplineDoubleKeyFrame.KeySpline> <KeySpline ControlPoint1="0,1" ControlPoint2="1,1"/> </SplineDoubleKeyFrame.KeySpline> </SplineDoubleKeyFrame> <SplineDoubleKeyFrame KeyTime="00:00:03" Value="0"> <SplineDoubleKeyFrame.KeySpline> <KeySpline ControlPoint1="1,0" ControlPoint2="1,1"/> </SplineDoubleKeyFrame.KeySpline>
- To make the throw occur over and over add a RepeatBehavior to the Storyboard.
<Storyboard RepeatBehavior="Forever" x:Name="Bounce">
- Finally let's add code to start the throw on the load of the page
public Page() {
// Required to initialize variables InitializeComponent(); Loaded += new RoutedEventHandler(PageLoaded);
}
void PageLoaded(object sender, RoutedEventArgs e) { Bounce.Begin(); } }
- That's it. Hit F5 and you should see the ball being thrown and bouncing.
History
July 23, 2008, Initial Release
|
|
|
Login
to add your contents and source code to this article
|
|
|
|
|
|
|
|
|
|
|
|
Mike Dobbles
Mike Dobbles is a senior software developer with 15 years experience. He is currently the principal at SilverlightWebApps.com
|
|
|
|
|
|
|
|
|
C# Consulting is founded in 2002 by the founders of C# Corner. Unlike a traditional
consulting company, our consultants are well-known experts in .NET and many of them
are MVPs, authors, and trainers. We specialize in Microsoft .NET development and
utilize Agile Development and Extreme Programming practices to provide fast pace
quick turnaround results. Our software development model is a mix of Agile Development,
traditional SDLC, and Waterfall models.
|
|
Click here to learn more about C# Consulting. |
|
|
|
|
|
|
|
Introducing MaxV - one click. infinite control. Hyper-V Hosting from MaximumASP.
Finally – a virtual platform that delivers next-generation Windows Server 2008 Hyper-V virtualization technology from a managed hosting partner you can truly depend on. Visit www.maximumasp.com/max for a FREE 30 day trial. Hurry offer ends soon.
Climb aboard the MaxV platform and take advantage of High Availability, Intelligent Monitoring, Recurrent Backups, and Scalability – with no hassle or hidden fees.
As a managed hosting partner focused solely on Microsoft technologies since 2000, MaximumASP is uniquely qualified to provide the superior support that our business is built on. Unparalleled expertise with Microsoft technologies lead to working directly with Microsoft as first to offer IIS 7 and SQL 2008 betas in a hosted environment; partnering in the Go Live Program for Hyper-V; and product co-launches built on WS 2008 with Hyper-V technology.
|
Dynamic PDF
ceTE software specializes in components for dynamic PDF generation and manipulation. The DynamicPDF™ product line allows you to dynamically generate PDF documents, merge PDF documents and new content to existing PDF documents from within your applications.
|
Boost the performance of your .NET applications
“ANTS Profiler took us straight to the specific areas of our code which were the cause of our performance issues." Terry Phillips, Sr. Developer, Harley-Davidson Dealer Systems. Download your free trial of ANTS Profiler.
|
Go.NET
Build custom interactive diagrams, network, workflow editors, flowcharts, or software design tools. Includes many predefined kinds of nodes, links, and basic shapes. Supports layers, scrolling, zooming, selection, drag-and-drop, clipboard, in-place editing, tooltips, grids, printing, overview window, palette. 100% implemented in C# as a managed .NET Control. Document/View/Tool architecture with many properties&events. Optional automatic layout.
|
Dundas Software
Dundas Chart for .NET is the most advanced .NET charting package available today. With an extremely complete feature set, elegant architecture and easy implementation, Dundas Chart can quickly add advanced Charting functionality to enhance and transform ASP.NET and Windows Forms applications. Whether you are implementing charting into internal projects, or building applications for clients, Dundas Chart offers advanced technology and advanced results to get the most out of data.
|
|
|
|
|
|
|
|
|
Download
Files:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|