首页 理论教育 使用Java开发多媒体动画,欢迎加入!

使用Java开发多媒体动画,欢迎加入!

时间:2023-11-26 理论教育 版权反馈
【摘要】:现在学习设计实例12-5多媒体动画welcomeYou。下面的程序welcomeYou1.java将制作能暂停、恢复运动的动画并有音乐伴奏。运行程序welcomeYou.java产生如图12-4所示的动画,并有伴有音乐。由于程序welcomeYou2.java的大部分代码与welcomeYou1.java相同,下面仅提供与程序welcomeYou2.java不同的部分,请读者作为练习自己完成整个程序。图12-6 具有背景的动画下面的程序对Duke的运动作一点改进,使它能沿一条曲线“走动”。多线程在多媒体动画中的应用三。图12-7 从空中沿曲线“走”下的Duke下面介绍这条曲线的设计算法。

使用Java开发多媒体动画,欢迎加入!

现在学习设计实例12-5多媒体动画welcomeYou。从简单到复杂,一步一步地完成这个动画。下面的程序welcomeYou1.java将制作能暂停、恢复运动的动画并有音乐伴奏。

【例12-5】多线程在多媒体动画中的应用一(无背景图像)。

978-7-111-44824-2-Part02-103.jpg

978-7-111-44824-2-Part02-104.jpg

978-7-111-44824-2-Part02-105.jpg

运行程序welcomeYou.java产生如图12-4所示的动画,并有伴有音乐。

现在要在这幅动画中加入背景图像。前景图像能与背景图像合成的条件是前景图像的背景是透明的。否则达不到动画的效果,参见图12-5。这10幅T0-T9的gif图像满足这个条件。如果你的前景图像的背景是不透明的,那就要作改变背景透明度的处理。一些图像处理软件,比如,Photoshop都能处理透明度,比较简单的方法是利用Windows2000/XP中“附件”→“画图”软件。

【例12-6】多线程在多媒体动画中的应用二(加入背景图像)。

由于程序welcomeYou2.java的大部分代码与welcomeYou1.java相同,下面仅提供与程序welcomeYou2.java不同的部分,请读者作为练习自己完成整个程序。

978-7-111-44824-2-Part02-106.jpg

图12-4 图形动画

978-7-111-44824-2-Part02-107.jpg

图12-5 前景图像的背景不透明的效果

1)在声明中增加

978-7-111-44824-2-Part02-108.jpg

2)在init()方法中,在

978-7-111-44824-2-Part02-109.jpg

之后,加入如入语句

978-7-111-44824-2-Part02-110.jpg

3)在paint()方法中,加入语句

978-7-111-44824-2-Part02-111.jpg

放在程序块

978-7-111-44824-2-Part02-112.jpg

之前,其作用是覆盖前景图像。

运行程序结果如图12-6所示。Java图标Duke“站在”山上,具有背景以后整个动画似乎生动一些。(www.xing528.com)

978-7-111-44824-2-Part02-113.jpg

图12-6 具有背景的动画

下面的程序对Duke的运动作一点改进,使它能沿一条曲线“走动”。另一方面,由于在屏幕上多次作图,所以程序在运行时有严重的闪烁,所以下面的程序加入了双缓冲代码,改善动画的质量。

【例12-7】多线程在多媒体动画中的应用三。前景图像从左上角延一条曲线y=8.944*sqrt(x)从小到大“走”到中央,并应用双缓冲技术减少闪烁。

978-7-111-44824-2-Part02-114.jpg

978-7-111-44824-2-Part02-115.jpg

978-7-111-44824-2-Part02-116.jpg

978-7-111-44824-2-Part02-117.jpg

运行结果如图12-7所示,这个Duke从屏幕左上角沿曲线“走”下来。

978-7-111-44824-2-Part02-118.jpg

图12-7 从空中沿曲线“走”下的Duke

下面介绍这条曲线的设计算法。图像左上角坐标为(0,0),Duke最终位置坐标为(180,120),如图12-8所示。

本程序设计的曲线是

978-7-111-44824-2-Part02-119.jpg

由于点(0,0)(180,120)都在这条曲线上,所以可以算得系数

978-7-111-44824-2-Part02-120.jpg

另一方面,Duke原图尺寸为55X68(像素),在图像放大时要按此比例进行。为此设计图像的宽度w和高度h按比例

978-7-111-44824-2-Part02-121.jpg

随着k的增大而增大,当宽高达到设计要求时不再增大:

978-7-111-44824-2-Part02-122.jpg

如果要更为逼真地作出动画效果,可对云层的透明度进行处理。

978-7-111-44824-2-Part02-123.jpg

图12-8 Duke路线设计示意图

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈