Silverlight2 边学边练 之三 小球自由落体

简介:

终于看到动画章节了,本篇主要针对物体移动、变形和渐变移动进行练习。 
完成小球自由落体慢镜实例,请大家多多拍砖,废话少说快快操练。 

XAML Code:

<UserControl x:Class="FallingBall.Page"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    Width="400" Height="300">
    <!--小球动画轨迹-->
    <UserControl.Resources>
        <!--创建Storyborad-->
        <Storyboard x:Name="fallDown" Storyboard.TargetName="ellipseFall">
            <!--水平移动轨迹-->
            <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(Canvas.Left)">
                <!--下落水平移动-->
                <SplineDoubleKeyFrame KeyTime="0:0:5" Value="50"/>
                <!--弹起水平移动-->
                <SplineDoubleKeyFrame KeyTime="0:0:9" Value="100"/>
            </DoubleAnimationUsingKeyFrames>
            <!--垂直移动轨迹-->
            <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(Canvas.Top)">
                <!--下落垂直移动-->
                <SplineDoubleKeyFrame KeyTime="0:0:5" Value="250"/>
                <!--落地变形移动-->
                <SplineDoubleKeyFrame KeyTime="0:0:6" Value="255"/>
                <!--反弹变形移动-->
                <SplineDoubleKeyFrame KeyTime="0:0:7" Value="250"/>
                <!--反弹垂直移动-->
                <SplineDoubleKeyFrame KeyTime="0:0:9" Value="150"/>
            </DoubleAnimationUsingKeyFrames>
            <!--小球垂直变形-->
            <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="Height">
                <!--下落无变形-->
                <SplineDoubleKeyFrame KeyTime="0:0:5" Value="50"/>
                <!--压缩垂直变形-->
                <SplineDoubleKeyFrame KeyTime="0:0:6" Value="45"/>
                <!--反弹垂直变形-->
                <SplineDoubleKeyFrame KeyTime="0:0:7" Value="50"/>
            </DoubleAnimationUsingKeyFrames>
            <!--小球水平变形-->
            <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="Width">
                <!--下落无变形-->
                <SplineDoubleKeyFrame KeyTime="0:0:5" Value="50"/>
                <!--压缩水平变形-->
                <SplineDoubleKeyFrame KeyTime="0:0:6" Value="55"/>
                <!--反弹水平变形-->
                <SplineDoubleKeyFrame KeyTime="0:0:7" Value="50"/>
            </DoubleAnimationUsingKeyFrames>
            <!--光点移动轨迹-->
            <PointAnimationUsingKeyFrames Storyboard.TargetName="ellipseBrush" 
                                          Storyboard.TargetProperty="GradientOrigin">
                <!--落地光点移动-->
                <LinearPointKeyFrame KeyTime="0:0:5" Value="0.6,0.1"></LinearPointKeyFrame>
                <!--反弹光点移动-->
                <LinearPointKeyFrame KeyTime="0:0:9" Value="0.3,0.1"></LinearPointKeyFrame>
            </PointAnimationUsingKeyFrames>
        </Storyboard>
    </UserControl.Resources>

    <Grid x:Name="LayoutRoot" Background="White">
        <Canvas>
            <!--创建小球-->
            <Ellipse x:Name="ellipseFall" Width="50" Height="50">
                <Ellipse.Fill>
                    <!--创建渐变产生光点效果-->
                    <RadialGradientBrush x:Name="ellipseBrush" RadiusX="1" RadiusY="1" GradientOrigin="1,0.5">
                        <GradientStop Color="White" Offset="0"></GradientStop>
                        <GradientStop Color="Blue" Offset="1"></GradientStop>
                    </RadialGradientBrush>
                </Ellipse.Fill>
            </Ellipse>
            <!--创建地平线-->
            <Path Stroke="Black" Data="M0,300 L400,300 Z"/>
        </Canvas>
    </Grid>

</UserControl>

C# Code:

namespace FallingBall
{
    public partial class Page : UserControl
    {
        public Page()
        {
            InitializeComponent();
            //开始动画
            fallDown.Begin();
        }
    }
}

效果图:

fallingball

参考自《Pro Silverlight2 in C# 2008》CHAPTER 9 ■ ANIMATION 
下次要搞一个汽车人变形动画~~





本文转自Gnie博客园博客,原文链接:http://www.cnblogs.com/gnielee/archive/2009/07/25/silverlight2-learning-falling-ball.html,如需转载请自行联系原作者

相关文章
|
5月前
泡泡龙游戏开发实战教程(4):泡泡停靠处理
泡泡龙游戏开发实战教程(4):泡泡停靠处理
71 0
|
5月前
|
C# 图形学
【Unity】2D游戏-愤怒的小鸟教学实战(附源码和实现步骤 超详细)
【Unity】2D游戏-愤怒的小鸟教学实战(附源码和实现步骤 超详细)
325 2
|
定位技术 C++
C++实现俄罗斯方块(附代码)
C++实现俄罗斯方块(附代码)
C++实现俄罗斯方块(附代码)
|
API 图形学 C++
【Unity趣味编程】——c++实现小球的自由移动
【Unity趣味编程】——c++实现小球的自由移动
130 0
游戏开发零基础入门教程(5):不要挡住我,我要去上面
这一节我们学习了层级管理,以及通过使用拖拽的方式来调整层级的顺序。 在真实的游戏中可能会包含很多的层级,在调整层级时,不要忘记口诀:谁挡住了我,我就去谁的上面。 试着在游戏中加入更多的层级,拖拽调整层级的顺序,然后观察编辑区中的图片显示效果。
150 0
|
前端开发 JavaScript 程序员
2023将至,前端程序员们应该一起放个烟花庆祝一下,走起
前言:小时候,在我印象中,每到快过年的时候就有很多卖炮仗的,一般也就是阳历的12月份到明年的正月15号卖炮仗的商家比较多,省下买辣条的钱去买炮仗,在老家也就过年和除夕两天及正月15日这几天放烟花和炮仗比较猛,现在年纪大了,听不得炮仗那种噪声了,也考虑到环保,工作之后的程序员以代码的形式演绎一下烟花的效果。
262 0
2023将至,前端程序员们应该一起放个烟花庆祝一下,走起
|
JavaScript 前端开发 测试技术
用Threejs做一只会动的3D玉兔祝大家中秋快乐
中秋佳节即将来临,以此文提前祝朋友们中秋佳节快乐,幸福安康。
234 0
用Threejs做一只会动的3D玉兔祝大家中秋快乐
|
前端开发 程序员 图形学
WebGL小姐姐教我学画画之起手式
WebGL小姐姐教我学画画之起手式
123 0
|
iOS开发
iOS动画开发之五——炫酷的粒子效果(二)
iOS动画开发之五——炫酷的粒子效果
329 0
iOS动画开发之五——炫酷的粒子效果(二)
|
iOS开发
iOS动画开发之五——炫酷的粒子效果(一)
iOS动画开发之五——炫酷的粒子效果
369 0