C#开发WPF/Silverlight动画及游戏系列教程(Game Course):(二十五)完美捕捉精灵之神器 -- HitTest
2010-09-30 20:48:15 来源:WEB开发网核心提示: 每次鼠标移动的时候我们必须清空精灵容器,然后对鼠标当前的点在Carrier中的位置进行点击测试,C#开发WPF/Silverlight动画及游戏系列教程(Game Course):(二十五)完美捕捉精灵之神器 -- HitTest(8),通过前面的HitFilter和HitResult过滤后得到
每次鼠标移动的时候我们必须清空精灵容器,然后对鼠标当前的点在Carrier中的位置进行点击测试,通过前面的HitFilter和HitResult过滤后得到所有位于鼠标位置的精灵放进容器,然后遍历精灵容器里的所有精灵,只有当该点位于精灵Canvas里的位置处于精灵的有效实体区域时,才算真正的捕获到了精灵。一旦捕获到了精灵则同时更改鼠标光标为1号光标然后退出循环;这里我为了测试是否精确的捕获了精灵对象,设置了名叫label3的文本来显示抓取到的精灵名字。
到此就完成了整个HitTest精确捕获精灵流程,下面我在地图密集的区域内添加30个拥有不同的名字的怪物精灵,然后尝试移动鼠标去分别捕获,通过label3中的名字显示该方法实现起来是极其准确的,比卫星定位还要精确与高效^_^||:
已经能完美捕捉想要的精灵了,但是如何让被捕获的精灵进行特效显示呢?目前的网络游戏中最常用的方式有两种:1、对被捕获的精灵进行描边;2、让被捕获的精灵半透明化。
第一种方法的实现需要首先为精灵控件中的身体部分控件添加一个WPF专有的OuterGlowBitmapEffect效果:
<Image x:Name="Body" Stretch="Fill">
<Image.BitmapEffect>
<OuterGlowBitmapEffect GlowColor="Blue" GlowSize="5" Noise="0" Opacity="1" />
</Image.BitmapEffect>
</Image>
Tags:开发 WPF Silverlight
编辑录入:爽爽 [复制链接] [打 印]- ››开发Android 日历教程
- ››开发学院总结 Win 8实用技巧大全
- ››开发学院原创教程:把win8的IE10放桌面上方法(非...
- ››silverlight全屏显示图片
- ››Silverlight MVVM 模式(一) 切近实战
- ››开发者眼中的Windows Phone和Android
- ››开发学院教你用SQL 语句最快速清空MySQL 数据表的...
- ››WPF学习笔记12. Binding (5)
- ››WPF学习笔记11. Binding (4)
- ››WPF学习笔记10. Binding (3)
- ››WPF学习笔记9. Binding (2)
- ››WPF学习笔记8. Binding
更多精彩
赞助商链接