文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>Silverlight-弹球(一)

Silverlight-弹球(一)

时间:2011-01-19  来源:dark1982

目标:

1:可以发射一个弹球,在给定范围内不停的弹射。

2:可以用鼠标控制弹球的发射角度。

3:入射角度和反射角度符合基本的几何原理。  球的速度保持一定。

要点:

1:使用StoryBoard和DoubleAnimation来实现球的运动。

2:通过边界测试计算弹球的运动轨迹和边界的交点。

3:计算弹球撞击边界时的入射角和反射角。

 

该版本只有一个弹球,在以后的版本中会有任意多个弹球,并且弹球在运动中可能会互相撞击。

 

下面大致看一下代码:

1:弹球的定义,只有一个自定义属性-方向

    public class Ball:Control
{
public Direction CurrentPosition = Direction.Top;
}

2:弹球的样式

代码
 <Style x:Name="StyleBall" x:Key="StyleBall" TargetType="ctrl:Ball">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ctrl:Ball">
<!-- Template's Root Visual -->
<Image Source="Images/BlueBall.png" Height="75" Width="75"></Image>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>

3:一个边界测试帮助类

     其中以左上角为坐标原点

     直线的方程为:  y1   =   k1*x1   +   a;   y2   =   k2*x2   +   b; 
     两线相交时,x1   =   x2,   y1   =   y2   
     x1   =   (b   -   a)   /   (k1   -   k2) 
    其中k是斜率,a是和Y轴的交点。斜率可以通过Math.Tan(angle), 注意这里的角度是弧度制的。

程序代码

 

 

排行榜 更多 +
找茬脑洞的世界安卓版

找茬脑洞的世界安卓版

休闲益智 下载
滑板英雄跑酷2手游

滑板英雄跑酷2手游

休闲益智 下载
披萨对对看下载

披萨对对看下载

休闲益智 下载