C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(四十七)远距离单体攻击与单体魔法
2010-09-30 21:09:12 来源:WEB开发网这把飞箭来在实际中的旋转可以参考第40节中的极光魔法处理,但同时又有些许的不同:极光魔法是不动的,当播放完所有帧后即消失;而飞箭是运动的,从主角的手中飞出,消失于敌人中心。此时,我选择通过类型为DecorationTypes.Loop的QXDecoration创建飞箭实体,当精灵远距离攻击时,创建对象并进行相应旋转,最后为其添加一个Storyboard飞行动画,并注册storyboard.Completed事件当动画播放完后(即到达敌人中心时)才清除掉该对象,关键代码如下:
//假如是远距离攻击,则射放出相应的对象
if (LongDistanceAttack) {
QXDecoration ammunition = new QXDecoration() {
Code = 7,
EndFrame = 4,
BodyWidth = 80,
BodyHeight = 29,
CenterX = 40,
CenterY = 15,
Coordinate = new Point(this.Coordinate.X, this.Coordinate.Y - 40),
DecorationType = DecorationTypes.Loop,
};
//旋转
ammunition.RenderTransform = new RotateTransform() {
CenterX = ammunition.CenterX,
CenterY = ammunition.CenterY,
Angle = Super.GetAngle(enemy.Coordinate.Y - this.Coordinate.Y, enemy.Coordinate.X - this.Coordinate.X)
};
this.ParentCanvas.Children.Add(ammunition);
//向目标移动,当到达后消失
Super.MoveToTarget(ammunition, ammunition.Coordinate, new Point(enemy.Coordinate.X, enemy.Coordinate.Y - ammunition.CenterY), 1, 1, 1);
}
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
更多精彩
赞助商链接