Silverlight 解密游戏 之十五 地震

       在前面的文章中我们制作了粒子效果、暗示效果,如果玩家找不到物品在图片上疯狂点击时该怎么办呢?本篇将为游戏添加地震效果,当玩家在3秒内点击次数过多时就会使图片晃动以达到该效果

在Office 图片中疯狂点击,看看会发生什么(好鼠标慎用^_^):

Get Microsoft Silverlight

 

1. 我们需要将地震效果将加载于Office 图片以及所有Path,新建StoryBoard,命名为ShakeStoryboard。开始录制,选择magnifierCanvas,在时间轴中依次增加4个Keyframe,分别将Left值设为0-10100

createsb

record

将ShakeStoryboard 的RepeatBehavior 设置为5x,可让其重复5次:

5x

StoryBoard 录制完成后,将会在XAML 生成如下代码

<Storyboard x:Name="ShakeStoryboard" RepeatBehavior="5x">     <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" 
Storyboard.TargetName="magnifierCanvas"
Storyboard.TargetProperty="(Canvas.Left)"> <EasingDoubleKeyFrame KeyTime="00:00:00" Value="0"/> <EasingDoubleKeyFrame KeyTime="00:00:00.2000000" Value="-10"/> <EasingDoubleKeyFrame KeyTime="00:00:00.5000000" Value="10"/> <EasingDoubleKeyFrame KeyTime="00:00:00.7000000" Value="0"/> </DoubleAnimationUsingKeyFrames> </Storyboard>

 

2. 当玩家在3秒间隔内连续点击10次就产生地震效果,首先在UserControl 中创建3个SetGlobalCounteraction1个ControlStoryboardAction

counter

一个SetGlobalCounteraction,将CounterKey 设为TooManyClicks,CounterMaxValue设为10

1

将ControlStoryboardAction 的TriggerType设为GlobalCounterMaxReachedTrigger,当TooManyClicks 达到10次时启动ShakeStoryboard:

2

第二个SetGlobalCounteraction,当TooManyClicks 达到10次时,则将其重置为0:

3

最后一个SetGlobalCounteraction,将TriggerType 设为TimerTrigger,用来每3秒钟重置TooManyClicks:

4

 

3. 最后需要在Office 图片中加入IncrementGlobalCounteraction,用来为TooMangClicks 计数:

increment

EventName 设为MouseLeftButtonDown,InrementCounterValueBy 设为1

5

 

运行程序看看效果吧,源代码下载:

相关文章

如何在Silverlight4(XAML)中绑定IsEnabled属性?我试过简单的...
我正在编写我的第一个vb.net应用程序(但我也会在这里标记c#,...
ProcessFile()是在UIThread上运行还是在单独的线程上运行.如...
我从同行那里听说,对sharepoint的了解对职业生涯有益.我们不...
我正在尝试保存一个类我的类对象的集合.我收到一个错误说明:...
我需要根据Silverlight中的某些配置值设置给定控件的Style.我...