首页 > 代码库 > 作业4 - 桌面冰球游戏的软件设计(初步)

作业4 - 桌面冰球游戏的软件设计(初步)

 

iceHocky - 桌面冰球游戏

 

功能介绍


桌面:  桌面坐标系的原点设置在正中心,x轴方向向右,y轴方向向下,四轴的Frame为边框,冰球碰撞后回反弹(碰撞后的速度关于碰撞面法向对称),上下两个hole为球洞。

冰球: 具有参数speed和angle,分别表示冰球运动的速度大小和方向。

显示部件: 显示冰球、击球器的位置速度信息等。

待添加功能:     更改桌面、冰球等尺寸参数 添加开始、结束界面;

        增加计分功能;

        击球器与冰球碰撞后的速度计算;

        考虑简化功能,仅仅只是接受位置速度等信息然后可视化;

        


动画示意

技术分享

(桌面录像gif动画由软件screenToGif制作) 

 


 

总结

  涉及到的细节较多,需要多尝试多练习才能熟练掌握Qt的各种模块功能;

  整个功能存在许多错误的地方,速度的计算不严格,碰撞的检测没有依赖物理引擎,没有数学物理模型支撑,仅仅依靠qt中item的碰撞检测实现;

  数据接口的思想很重要,如果有两个类在使用的时候需要have access to each other,可以简单的在自身的类中创建对方类的指针,在实例化的时候将指针作为构造函数参数传入,不能直接访问的private成员应额外增加接口函数,此外数据、信息的传递还可以通过信号与槽、共享memory、dbus等方式实现;

  

代码github链接:https://github.com/tangyuanjie/iceHocky

 

作业4 - 桌面冰球游戏的软件设计(初步)