作业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

时间: 2024-10-22 00:52:25

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

桌面冰球游戏总结说明

桌面冰球游戏说明 桌面冰球游戏中使用的类与对象说明 Ball 类: class Ball:public QGraphicsItem 成员属性: Speed:速度 Angle:运动方向 Ratio:图形比例 Radius:球的半径 操作属性: Advance:根据单位采样时间前进: xvel =speed*1.0/FRECUENCY *qCos(angle); yvel = speed*1.0/FRECUENCY *qSin(angle); collisionCalcualte(collision

软件设计之基于Java的连连看小游戏(一)——开题及游戏首页的制作

原本计划紧张忙碌的考试月在图书馆和实验室度过,结果突如其来为期两周的软件设计把课余时间几乎捆绑在了机房.软设没有太多知识上的要求,只要成品简洁美观.实用准确即可.考虑了很久决定要用Java swing做一个完善的连连看小游戏. (一)工作计划安排: 1.16周完成游戏界面的制作以及图形消除功能的实现. 2.17周完成连线的显示以及菜单功能的实现(退出.再来一局等功能),并进行界面及性能的优化. 今天第一天确定了具体的实施方案,决定了游戏界面要达到的效果,并开始着手制作游戏首页的界面. (二)目前

代写android编程作业、代写游戏作业

代写android编程作业.代写游戏作业功能要求分析该游戏要实现的功能描述如下: 关于:可以让玩家了解游戏的一些开发信息等. 帮助:可以让玩家了解游戏的相关玩法,学会如何玩这个游戏. 开始游戏:点击可以进入游戏界面,开始玩游戏. 设置:设置游戏中音乐和音效的开关状态.退出:退出游戏. 练习模式:玩家与系统之间的对战,利用android重力感应让乒乓球进行移动. 对战模式:玩家与玩家之间的对战,利用android重力感应让乒乓球进行移动. 另外,该游戏设计流程主要分三个阶段. 第一个阶段是游戏登录

软件设计

软件设计 一定是创建订单的时候填充market字段,我曾经一度打算在回调的时候再根据回调方来填充Market,但是如果没有回调呢?Market这样的标志性字段一定要依赖于靠谱的操作: 对于重载方法要注意,尤其套调用的重载方法,对于某些核心校验必须要放置在里层方法调用,否则因为重载都是public出去的,都可以被外界调用,如果在外层方法实现校验,里层重载方法被外界直接调用,校验会被跳过:考虑CheckMarket是放在CreateOrder(String encryptedString)还是Cre

【转】游戏新手教学设计

只靠新手教学,够呛~ 对于新手玩家,游戏一开始通常会有个 新手教学 ,上来先把游戏的主要功能介绍一遍.但教学结束后,玩家独自面对游戏时,难度一下子就很高了,突然面对绝壁高山的赶脚. 这样的游戏很常见,应该说是大多数游戏都是这样. Morden Command是个 塔防+即时 的游戏:经过一顿新手教学,在战斗中如何操作,基本还能掌握,但各种武器的购买.升级,就实在没太搞明白.好像一位着急的老师,冲上来猛一顿讲,讲完转身就走了,其实学生我完全没跟上. 仅仅靠 新手教学 就想解决掉新手玩家难上手的问题

游戏UI框架设计(五): 配置管理与应用

游戏UI框架设计(五) --配置管理与应用 在开发企业级游戏/VR/AR产品时候,我们总是希望可以总结出一些通用的技术体系,框架结构等,为简化我们的开发起到"四两拨千金"的作用.所谓"配置管理"是指一个游戏项目(软件项目),很多需要经常变化的需求或者数据,最好以配置文件的形式存在,从而代替"硬编码"方式.      这里笔者就对游戏产品中大量应用到动态加载的情形,开发出一套通用的配置管理(脚本)工具.该工具可以很方便的对于具备"键值对&

游戏UI框架设计(7): 资源国际化技术

游戏UI框架设计(7) --资源国际化技术 说起"资源国际化"技术,个人认为可以追述到微软Window2000 PC操作系统的发布,在这之前windows98操作系统的开发都是先由美国总部出一个英文版本,然后在发布windows 版本之后的大约一年后,全世界其他语言版本的操作系统才能面世. 在这一年中,就是微软驻各个国家分公司的多语言版本的翻译工作,需要从操作系统的核心到外围软件,全部翻译为所在国家语言,不留死角.       这种情况对于微软来说需要为多语言版本付出额外非常大的经济负

iOS游戏开发 软件开发 UNITY3D软件外包 APP定制

iOS游戏开发 软件开发 UNITY3D软件外包 APP定制 软件开发是根据用户要求建造出软件系统或者系统中的软件部分的过程.软件开发是一项包括需求捕捉.需求分析.设计.实现和测试的系统工程.软件一般 是用某种程序设计语言来实现的.通常采用软件开发工具可以进行开发.软件分为系统软件和应用软件,并不只是包括可以在计算机上运行的程序,与这些程序相关 的文件一般也被认为是软件的一部分. 软件设计思路和方法的一般过程,包括设计软件的功能和实现的算法和方法.软件的总体结构设计和模块设计.编程和调试.程序联

游戏UI框架设计(五): 配置管理与应用

游戏UI框架设计(五) --配置管理与应用 在开发企业级游戏/VR/AR产品时候,我们总是希望可以总结出一些通用的技术体系,框架结构等,为简化我们的开发起到"四两拨千金"的作用.所谓"配置管理"是指一个游戏项目(软件项目),很多需要经常变化的需求或者数据,最好以配置文件的形式存在,从而代替"硬编码"方式. 这里笔者就对游戏产品中大量应用到动态加载的情形,开发出一套通用的配置管理(脚本)工具.该工具可以很方便的对于具备"键值对"