Skip to content

Latest commit

 

History

History
37 lines (21 loc) · 2.09 KB

README-deprecated.md

File metadata and controls

37 lines (21 loc) · 2.09 KB

Build Status

Simflow

注:此README为项目前期编写,项目最终报告请移步docs文件夹

需求分析

 本项目是一个基于物理的模拟游戏(Simflow),其功能参考自一个更庞大的物理沙盒游戏。我们将从描述现实世界的物理定律出发,比如流体NS方程、热方程等等,提供一个可交互的物理环境,达到寓教于乐的效果。

模拟内容

 玩家可以向环境中任意地添加各种物质,其表现形式为1像素大小的粒子。物质的种类主要为粉尘、固体、液体、气体;各个种类下有细分的物质,比如固体下有金属、木头,液体下有水等等。

 同时,物质之间可以产生相互作用,包括物理上的交互(碰撞、传热)、化学上的交互(反应)。而对于各个种类的物质,我们将尽可能地还原其在现实中的行为,比如气体、液体的运动遵循流体方程,物质间传热遵循温度方程等。

 因为时间比较有限,我们仅挑选这些比较核心的功能实现。若时间充裕,我们还将考虑实现火、酸等更多物质,丰富模拟的表现力。

开发环境及工具

  • 本项目基于C++17、ImGui框架实现。

  • 整体架构基于MVVM。

  • 使用了Travis-CI实现持续集成。

开发计划和分工

 本项目的复杂度主要集中在Model层。考虑到这个特性,我们安排两人进行Model层、ViewModel层的开发,一人进行View层的开发。

  • 第一轮迭代由陈婉仪负责View、Window层,钟嘉农、上官越负责ViewModel、Model层。预期效果为实现固体、粉尘,主要是固体粉尘间的碰撞、粉尘与大气的交互(粉尘对大气产生扰动,由NS方程模拟大气流动)。

  • 第二轮迭代 ... 预期效果为实现液体,主要是液体自身的交互,液体与粉尘、固体、大气间的交互。

    1. 粉尘、液体交互,液体自身交互
    2. 升级版碰撞检测
    3. 温度