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
时间: 2024-10-22 00:52:25