日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Silverlight 解谜游戏 之四 粒子特效

發布時間:2023/12/9 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Silverlight 解谜游戏 之四 粒子特效 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

? 前幾篇一直在Blend中工作沒體現出開發者的作用,本篇將為訂書器(Stapler)添加自定義粒子效果,當訂書器被點擊時產生更好的視覺效果。其中將使用到nerdplusart?的Silverlight Particle Generator?粒子特效工具。

在結束本章內容后,點擊Stapler 和Candies 將達到以下效果:

?

?

1. 在Projects面板中新增Interactivity?文件夾,再為Interactivity 新增ParticlesBehavior?子文件夾:

2. 右鍵ParticlesBehavior文件夾->Add New Item->Behavior,添加ParticlesBehavior

3.?下載Silverlight Particle Generator 源代碼,將代碼中的ParticleControl.xaml?和ParticleControl.xaml.cs?文件加入(Add Existing Item)到ParticlesBehavior 文件夾:

4. 右鍵項目點擊“Edit in Visual Studio”,對PaticlesBehavior.cs進行編輯來跟蹤鼠標移動位置。將ParticlesBehavior 類聲明改為Behavior<Canvas>,通過修改后AssociatedObject 類型將成為Canvas。在OnAttached 和OnDetaching 方法中分別添加和刪除MouseMove 事件,當鼠標移動時便可記錄下當前鼠標位置:

public class ParticlesBehavior : Behavior<Canvas> {private Point currentMousePosition;public ParticlesBehavior(){this.ShowParticles = new ActionCommand(this.OnShowParticles);}protected override void OnAttached(){base.OnAttached();AssociatedObject.MouseMove += new MouseEventHandler(AssociatedObject_MouseMove);}protected override void OnDetaching(){base.OnDetaching();AssociatedObject.MouseMove -= new MouseEventHandler(AssociatedObject_MouseMove);}void AssociatedObject_MouseMove(object sender, MouseEventArgs e){currentMousePosition = e.GetPosition(null);}public ICommand ShowParticles{get;private set;}private void OnShowParticles(){ParticleControl p = new ParticleControl();p.OffsetX = currentMousePosition.X;p.OffsetY = currentMousePosition.Y;AssociatedObject.Children.Add(p);}
}

?

5. VS里編譯后回到Blend,在Assets->Behavior 中將會看到ParticlesBehavior 選項,將ParticlesBehavior 加入LayoutRoot中:

點擊Triggers右側的“+”按鈕添加新EventTrigger;點擊EventTrigger將SourceName設為staplerPath,EventName設為MouseLeftButtonDown;再次點擊“+”為可為其他物品添加ParticlesBehavior特效。另,在ParticlesBehavior.cs中增加一些代碼,便可出現下圖中Particles Properties設置窗口(詳情可下載源代碼):

6. 在Blend中F5,點擊圖片中的訂書器(Stapler)便會出現粒子效果(但其不會自動消失),再點擊Candies也會出現粒子效果,問題是所有的粒子效果仍然不能消失。打開ParticleControl.xaml.cs 進行編輯:??
??? a. 在ParticleControl 類中定義int?型totalParticlesCreated?
??? b. 將this.particles.Count?替換為totalParticlesCreated??
??? c. 在SpawnParticle方法最后添加totalParticlesCreated++?
至此粒子效果就會自動消失了。

?

7. 最后為staplerPath添加RemoveElementAction,目的是為了每個物品只能點擊一次:

將SourceName 和TargetName 都設置為staplerPath,EventName依然為MouseLeftButtonDown:

源代碼下載:





本文轉自Gnie博客園博客,原文鏈接:http://www.cnblogs.com/gnielee/archive/2010/01/02/silverlight-puzzle-game-part4.html,如需轉載請自行聯系原作者

總結

以上是生活随笔為你收集整理的Silverlight 解谜游戏 之四 粒子特效的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。