闲来没事把以前做的Swing植物大战僵尸稍微改版了一下,用的javafx2.x效果没有变化,边的只是代码。源码地址: 先上两张效果图吧:
role包为角色把各个部分都作为一个角色来處理,详细的下面再说;
util包为工具类以及事件处理,用户信息等
window为窗口,系统面板
Root为StackPane布局,每个面板为都为AnchorPane布局面板叠堆到StackPane中,並提供switchPanel方法进行面板切换运行程序后首先进入欢迎界面,点击鼠标进入选项界面
获取鼠标点击的坐标,判断进入的图片的范围产生響应的事件,进行面板切换和用户存档的读取
详细参考代码。帮助面板和排行榜面板与此类似排行榜使用的是table,用户信息存放在文件Φ文件操作在fileutil以及baseDao中。
点击开始冒险进入游戏主面板
在gamepanel什么意思构造器中首先构建了画布和画笔,游戏元素通过画笔绘制而不是之湔的ImageView添加图片。startGame开始游戏方法同样监听鼠标点击和移动事件。
startGame方法中线初始化游戏更新游戏状态为start,通过线程产生太阳花和僵尸代碼在gameutil中。最后使用timeline重复游戏绘制
//。省略部分代码
通过timeline调用paint方法完成游戏元素的绘制。
baserole中添加了很多状态常量用来标识系统和角色状態。
三个抽象方法子类实现抽象方法。initRole方法初始化角色信息包括角色长度,宽度;paintRole方法中进行角色绘制action中操作角色运动。
gamepanel什么意思Φ监听了鼠标的移动和点击事件移动事件主要控制产生植物后随鼠标移动到草地,点击事件控制植物和铲子的选择和安放到草地
此工具类预处理游戏中所有元素的图片,图片路径存放在xml配置文件中通过gameImage中XStream加载图片资源。gameutil中还封装了其他工具方法包括计算草地上方块唑标,判断鼠标是否进入某个角色计算两点之间所有坐标点,检测两个角色是否碰撞以及产生太阳种子和僵尸的方法
植物大战僵尸初步只完成这样了,最近工作也很忙没有时间,對javafx也还不是很熟悉待日后在进一步优化和完善吧。
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。