C#开发WPF/Silverlight动画及游戏系列教程(Game Course):(二十五)完美捕捉精灵之神器 -- HitTest
2010-09-30 20:48:15 来源:WEB开发网EfficaciousSection由4个数组成,以上图为例,它的EfficaciousSection = new double []{80,125,50,145},其中第一个数字表示红色区域左边线距离图片左的距离,第二个数字表示红色区域右边距离图片左边距离,第三个数字表示红色区域上边距离图片顶部的距离,第四个数字代表红色区域底边距离图片顶部的距离,上面所说的红色区域即为精灵的有效实体区域,在后面的鼠标点击或移动判断中,只有当鼠标进入精灵的有效实体区域时我们才变换鼠标光标。
精灵获得了有效实体区域,是否代表可以完美准确的捕捉精灵对象了呢?我们将窗体鼠标移动方法进行如下改进:
if (e.Source is QXSpirit) {
QXSpirit Spirit = e.Source as QXSpirit;
Point p = e.GetPosition(Spirit);
if (p.X >= Spirit.EfficaciousSection[0] && p.X <= Spirit.EfficaciousSection[1]
&& p.Y >= Spirit.EfficaciousSection[2] && p.Y <= Spirit.EfficaciousSection[3]) {
this.Cursor = Super.getCursor(1);
} else {
this.Cursor = Super.getCursor(0);
}
}
然后再运行一下游戏,结果更奇怪的事情出现了:
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
更多精彩
赞助商链接