• 作业四


    二轴桌面冰球游戏的软件设计

    一、游戏简介

    《桌面冰球》是一场在桌面上展开角逐的游戏。在游戏中玩家操纵球棍把球打进对方的球门即可,虽然游戏的玩法非常简单,但是想要在游戏中获胜,还是非常考验击打球和控制球的方向的。在游戏中玩家可以选择一个球进行比赛,也可以选择两个球。两个球的比赛相对于一个球的比赛在控制上更难一些。我们只讨论一个球的情况。

    二、功能分析及任务分配

    软件模块包括:

    1. 冰球桌面仿真环境
      练习模式下:由仿真环境随机发球给击球器,因此仿真环境要能随机发球,然后根据冰球和击球器的当前状态实时生成画面。
      对战模式下:有两个击球器,因此两个击球器都要有运动模拟,根据冰球和两个击球器的当前状态实时生成画面。
      此模块可基于QT和ODE完成。
      由物理引擎组和图形化组完成。
      QT生成冰球桌面环境(包括球和击打器)的图形界面,物理引擎模拟冰球与击球器和挡板的碰撞产生的实际运动。通信时,仿真环境返回冰球和击球器的实时位置和速度。

    2. 两轴平面直角机械手的控制
      有个比较奇怪的问题——这游戏是软件自己玩还是有玩家的啊?如果是玩家玩,那么就根据玩家的指令击打就行了;如果是自己玩,那么就要制定运动策略,使球能够进洞。看题目应该是后者。
      输入:冰球当前运动状态;
      输出:击球点和击球速度;
      实现:机械手的轨迹插补和加减速控制。
      此模块由用户接口和轨迹插补组共同完成。
      由C++实现,软件用QT。

    三、关键算法##

    1. 确定击球点;
    2. 已知击球点,以及对方球门位置,经挡板反射后,冰球速度大小不变,入射角等于出射角,由此可知冰球要进洞所需的速度(大小和方向);
    3. 已知冰球所需速度以及当前速度,根据动量定理和能量守恒,可计算出击球器的击球速度;
    4. 已知击球点和击球速度,还有击球器当前状态,进行合适的轨迹插补和加减速控制。
  • 相关阅读:
    mssql sqlserver 验证整型函数分享
    SQL存储过程解密
    MSSQL sqlserver系统函数教程分享
    union的使用
    select子句
    软件测试用例设计方法
    软件测试模型与测试过程
    selenium定位元素方法
    kali渗透综合靶机(六)--FristiLeaks靶机
    kali渗透综合靶机(五)--zico2靶机
  • 原文地址:https://www.cnblogs.com/lihanyan/p/6206051.html
Copyright © 2020-2023  润新知