Solaris, Java, JavaFX

星期日 六月 07, 2009

如何编写JavaFX吃豆子游戏:Pac-Man(3)

javafxblogs.com Rss_google Rss_zhuaxia Rss_xianguo

本周发表了英文连载中的第4篇文章。在这篇文章中,主要介绍了吃豆人和精灵之间互动的代码实现。本程序的代码可以在该文章中下载,或者在“JavaFX游戏实例共享网站”中下载。

到上一篇文章为止,我们已经实现了游戏中所有的人物。现在我们来增加吃豆人和精灵追逐和互“吃”的处理逻辑。如果吃豆人和精灵相遇,只有两种情况,吃豆人吃掉精灵或者反之。如果吃豆人刚刚吞吃了魔法豆,他可以吃掉精灵,否则吃豆人就会损失一条命,这时,需要播放一段吃豆人消失的动画(如下图所示):JavaFX应用实例、例子 JavaFX Guy的博客 JavaFX 1.2的新特性
shriking pac-man

这个动画在DyingPacMan类中实现,代码如下:


在这个动画中,定义了2个KeyFrames,一个在600ms,另一个在1800ms。在这两个关键帧中采用了JavaFX的线性插值方式(Interpolator.LINEAR)。线性插值的作用就是把动画中数据按照时间关系,在帧与帧之间线性变化,从而实现平滑的动画效果。在上述代码中,Arc类的两个实例变量:startAnglelength, 通过线性的均匀变化,实现了我们需要的动画过程。参考下图的时间轴。第一个关键帧的时间是600ms而不是0ms,是因为我们希望游戏在这瞬间稍微停顿600ms。
timeline pac-man

好啦,到目前为止,游戏已经基本完成了,可以玩了。唯一不足就是精灵现在还是随机移动的,游戏的难度不大。不要紧,我们将在下周的文章中详细讨论。现在就点击下图来试一下这个游戏吧:(JDK1.5以上, Java Web Start 自动启动)

点击启动

点击启动


相关文章:
JavaFX 1.2的新特性
怎样用JavaFX编写游戏:吃豆人(Pac-Man)
JavaFX吃豆人游戏的编写过程之二
JavaFX游戏吃豆人的编写过程

评论:

发表一条评论:
该日志评论功能被禁用了。

Calendar

Feeds

Search

Links

Navigation

Referrers