初衷是希望有个桌面小助手一样的在桌面上动起来和自己互动,而且希望可以用自己喜欢点,觉得可爱的角色。
图片借用了网络上各路大佬得图片,主要宠物gui也是基于其上。感谢。目前找不到出处了没挂上很抱歉。
二.设计思路
1.建立Pet类为其主父类,其它类Girl类继承并实现Skill接口继承,利用DAO模式获得其,好感度,名字,年龄,性别的属性;
2.建立Gui调用不同的宠物类的方法实现MVC,以及和宠物的互动例如动作与唱歌;
4.为宠物添加其它功能,由于桌面宠物使一个桌面互动程序,主要是为了休闲,所以只要基础建好,可以添加许多功能。这里我实现了一个记账的功能(建立类与dao模式);
5.加入提醒互动功能。因为每一个宠物我们这里跳出的提醒语句相同所以,直接建立一个类,调用数据库,写出gui实现。
三.小组成员与分工
四.主要模块代码
1.User模块(MVC与DAO)
注册模块中获得种族,新建一个Fox类或者Girl类进入testbody以获得不同的gui和界面
2.Pet模块
Pet属于抽象父类,skill是技能接口表达逻辑上宠物能实现的技能;
①运用了MVC与DAO,
利用Girl里的方法sing()和apper()使得BodyGui实现音乐与动画,
音乐有一个MusicPlayer类,在sing()中调用这里的代码,实现是girl在sing而不是在实现播放音乐
②使用多线程更迭图片实现互动
但是由于pet是抽象类,所以在获得数据时不能实体化,这里利用PetDao构建,想过每个宠物一个库但是未免太麻烦.
③在这个界面上弹出对话框的界面实现对话和提醒的互动
也许会有更好的写法,但是目前没有想到就先这么写。
3.Accounter模块
同样是使用了MVC与Dao
4.Reminder模块
这个类建立读数据返回语句
在Pet的Gui上以对话框的形式提现利用多线程
5.音乐模块
6.操作setting界面
主要实现查看宠物的属性的功能
7.网络服务器数据库
租用了阿里云的服务器,实现MySQL的连接
8.设置了图标,类似与qq会的右下角的工具栏,实现功能页面
9.各个Gui的连接
实现传参,主要以user为参数进行传递与调用方法将Gui连接在一起
五.操作演示
2.互动
双击互动会使得宠物的好感度增加,拖拽改变动作。
3.对话
4.记账
6.setting界面(好感度超过24时属性界面里的图片时睁开眼睛的)
调出信息面板
六.总结与感想
1.Java确实是一门很方便好用的语言,有许多的方法可以调用,而且拥有继承接口等方法,可以实现更多功能和方便合作;
2.在项目开始前应该和队友多多交流,在没有全面交流时经常会有一种无力感以及后期的错误,例如方法要求不同等等
4.git很方便远程的代码书写,要学会利用
5.
测试的过程中遇到了很多问题比如线程,在鼠标进行操作的时候要怎么去变化,通过监听器去修改一个flag值在线程里加上一个比较flag来判断什么时候要做什么事情,还有服务器。在使用服务器作为数据库,要注意的有很多;首先要先在阿里云控制台设置端口的出入,一般数据库的端口为3306,但是服务器并没有默认该端口可以通过,所以不开的话将不能通过3306端口访问数据库,同时还要在云端数据库运行允许外网ip访问权限的开放的命令,并且设置外网访问密码;还有和队友们对接的时候往往会出现意想不到的问题,好比如我调用队友写的菜单中的一个选项,会跳出一个GUI但是在关闭这个弹窗的时候会把其它GUI一起关闭这时候就需要队友修改自己的代码;
通过这次课程设计,让我明白了团队合作有很大的好处,同时默契也是团队合作中的关键,团队合作使我灵活应用所学的知识,完成自己团队分工的内容;学会了很多东西,也知道可如何在服务器上架构数据库,怎么连接远程数据库,GUI的布局管理;这些都是日后实用的,只有不断的学习、实践,再学习、再实践才会成长。
6.
虽然我没有负责类的设计与数据库的管理,但合作设计课设的时候都有一起探讨,这样我也学到了数据库以及一些算法的知识,不得不说实践才是硬道理,当初课堂上没有懂得的知识也突然恍然大悟。
就单独拿图形界面的设计来讲,之前没有学会怎么给界面加背景美化,给按钮加图标等等,也通过这次课设学习到,而对于一个游戏而言,必不可少的便是多线程的使用,音乐播放的停止不代表宠物的退出,这一切都由多线程解决,我也是如此才对多线程理解更为深刻