/Multi_Gravity

黑框框比赛作品,控制台2D仿真天体物理引擎游戏

Primary LanguageC++

Multi-Gravity

作者:GoldenSea Tinfait

作品介绍

Multi_Gravity是一款基于c++的太空物理2D模拟引擎游戏,能让玩家最真实地体验到在浩瀚的宇宙中受到星球引力的牵引的乐趣和自由遨游的快感。游戏的一个小目标是玩家需要驾驶引力场中的飞船消灭所有敌人。

  • 一、游戏设计特点:
    • 1.自行研发的2D天体物理引擎。模仿真实的多体引力物理效果,而且所驾驶的飞船和发射的子弹会受到各个星球的引力,模拟实际生活中航天器绕星球的运动状态。
    • 2.具有一定的游戏目标性。在仿真的太空战斗系统中,玩家可以发射子弹来摧毁外星飞行物,并在巨大的开放世界地图中自由探索。同时设置了专门的游戏教学场景,便于玩家上手。
    • 3.基于有限元的轨道预测系统,预测未来航向的技术将会指引你前行,也能够预测出将要射出子弹的轨迹,来更好地预判以及消灭敌人。
    • 4.酷炫的CG动画与RGB全彩图片展示。
  • 二、游戏技术特点
    • 1.控制台渲染技术: 采用了三种不同的渲染模式,提前存储渲染,实时渲染与RGB全彩渲染,能够做到流畅输出字符画画面。同时使用双线程模式,将物理计算与渲染模块分离,使画面更加流畅。
    • 2.2D天体物理引擎 在程序设计中,我们套用了现实世界中的航天动力模型,对多体引力的计算与分析完全基于实际公式。采用了基于有限元的轨道预测技术对场景中的大量物体同时进行多体引力轨道计算。
    • 3.物理->图像映射关系 对于物理处理中的飞船,敌机,轨道,星球,背景等元素,我们寻找到了合理的映射模式,能够在尽量节省CPU算力的情况下,做到流畅地将其映射至屏幕之上。独特的字符画剪切,叠加,打点方法,使得画面绘制更加简单。
    • 4.多语言合作能力 虽然本项目基于c++开发,但同时在对CG视频处理及Ascii字符画处理中,运用到了python的图像处理和视频处理模块,并以字符画文本文件形式存储于项目之中。