一.项目简介
实现桌面宠物并实现联网。
初衷是希望有个桌面小助手一样的在桌面上动起来和自己互动,而且希望可以用自己喜欢点,觉得可爱的角色。
码云仓库链接https://gitee.com/jellysheep/development_of_desktop_pet.git
二.设计思路
1.建立Pet类为其主父类,其它类Girl类继承并实现Skill接口继承,利用DAO模式获得其,好感度,名字,年龄,性别的属性;
2.建立Gui调用不同的宠物类的方法实现MVC,以及和宠物的互动例如动作与唱歌;
3.建立登录与注册,再次使用DAO获得数据;
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连接在一起
五.操作演示
1.登录注册
2.互动
双击互动会使得宠物的好感度增加,拖拽改变动作。
3.对话
4.记账
6.setting界面(好感度超过24时属性界面里的图片时睁开眼睛的)
调出信息面板
六.总结与感想
1.Java确实是一门很方便好用的语言,有许多的方法可以调用,而且拥有继承接口等方法,可以实现更多功能和方便合作;
2.在项目开始前应该和队友多多交流,在没有全面交流时经常会有一种无力感以及后期的错误,例如方法要求不同等等
3.代码的优化书写是为节省用户的时间给用户更好的体验,但在更新代码时也要注意自己的投入,使之达到一个平衡
4.git很方便远程的代码书写,要学会利用
5.
测试的过程中遇到了很多问题比如线程,在鼠标进行操作的时候要怎么去变化,通过监听器去修改一个flag值在线程里加上一个比较flag来判断什么时候要做什么事情,还有服务器。在使用服务器作为数据库,要注意的有很多;首先要先在阿里云控制台设置端口的出入, 一般数据库的端口为3306,但是服务器并没有默认该端口可以通过,所以不开的话将不能通过3306端口访问数据库,同时还要在云端数据库运行允许外网ip访问权限的开放的命令,并且设置外网访问密码;还有和队友们对接的时候往往会出现意想不到的问题,好比如我调用队友写的菜单中的一个选项,会跳出一个GUI但是在关闭这个弹窗的时候会把其它GUI一起关闭这时候就需要队友修改自己的代码;
改进方面,就是互动的动作可能太少了,时间的不足没办法让我们的GUI宠物动作更加丰富,因为很多图片都需要我们自己去PS修改才能用;
通过这次课程设计,让我明白了团队合作有很大的好处,同时默契也是团队合作中的关键,团队合作使我灵活应用所学的知识,完成自己团队分工的内容;学会了很多东西,也知道可如何在服务器上架构数据库,怎么连接远程数据库,GUI的布局管理;这些都是日后实用的,只有不断的学习、实践,再学习、再实践才会成长。
6.
通过一周不到的努力设计,终于属于我们团队的桌面宠物诞生了,虽然功能并没有QQ宠物的完善,但是最重要的是我们的努力,不光是为了情怀,更是为了学会JAVA这门面向对象编程的语言,由于桌面宠物主打gui模块的设计,所以通过这次学习使我对于java图形界面的操作更为流畅,一些老师没教的东西也通过自主学习了解到。
虽然我没有负责类的设计与数据库的管理,但合作设计课设的时候都有一起探讨,这样我也学到了数据库以及一些算法的知识,不得不说实践才是硬道理,当初课堂上没有懂得的知识也突然恍然大悟。
就单独拿图形界面的设计来讲,之前没有学会怎么给界面加背景美化,给按钮加图标等等,也通过这次课设学习到,而对于一个游戏而言,必不可少的便是多线程的使用,音乐播放的停止不代表宠物的退出,这一切都由多线程解决,我也是如此才对多线程理解更为深刻
而之所以选择桌面宠物,作为曾经的童年回忆,“QQ宠物”早已被很多网友遗忘在了记忆的角落,如今迎来它的停运,或许是对过去的怀恋,大家纷纷发文告别青春,虽然有时候很烦,但如今真的要离别,还是有些不舍,真正感慨的或许不是QQ宠物,而是曾经的自己。
桌面宠物online------------------面对对象程序综合设计2020年
原文:https://www.cnblogs.com/zlshy/p/12174219.html