6.3 SpringingBall(弹动的小球)
需求:在一个300×400的窗口中显示一个直径为20的小球,小球自动斜向45°移动,当撞到窗口任意一个边框的时候都反弹。
分析:仍旧依照上例中动画呈现的方法,在循环中完成改变坐标、重绘面板、停留3个步骤。需要考虑的是,小球改变坐标的方式是由小球的移动方向决定的,而小球有4种方向:左上、左下、右上、右下,这里需要有一个变量来记录当前小球的移动方向。当小球撞上窗口边框的时候,小球的移动方向会发生改变,而小球方向的变化是由两个因素决定的:小球撞上窗口边框之前的移动方向和小球撞上的是窗口4个边框中的哪一个。

代码6.4-1

代码6.4-2

代码6.4-3
【代码6.4】“弹动的小球”的实现案例


