在前面的文章中我们制作了粒子效果、暗示效果,如果玩家找不到物品在图片上疯狂点击时该怎么办呢?本篇将为游戏添加地震效果,当玩家在3秒内点击次数过多时就会使图片晃动以达到该效果。
在Office 图片中疯狂点击,看看会发生什么(好鼠标慎用^_^):
1. 我们需要将地震效果将加载于Office 图片以及所有Path,新建StoryBoard,命名为ShakeStoryboard。开始录制,选择magnifierCanvas,在时间轴中依次增加4个Keyframe,分别将Left值设为0,-10,10,0:
将ShakeStoryboard 的RepeatBehavior 设置为5x,可让其重复5次:
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个SetGlobalCounterAction、1个ControlStoryboardAction:
第一个SetGlobalCounterAction,将CounterKey 设为TooManyClicks,CounterMaxValue设为10:
将ControlStoryboardAction 的TriggerType设为GlobalCounterMaxReachedTrigger,当TooManyClicks 达到10次时启动ShakeStoryboard:
第二个SetGlobalCounterAction,当TooManyClicks 达到10次时,则将其重置为0:
最后一个SetGlobalCounterAction,将TriggerType 设为TimerTrigger,用来每3秒钟重置TooManyClicks:
3. 最后需要在Office 图片中加入IncrementGlobalCounterAction,用来为TooMangClicks 计数:
EventName 设为MouseLeftButtonDown,InrementCounterValueBy 设为1:
运行程序看看效果吧,源代码下载:
本文转自Gnie博客园博客,原文链接:http://www.cnblogs.com/gnielee/archive/2010/01/21/silverlight-puzzle-game-part15.html,如需转载请自行联系原作者