c++大作业初步方案

3d国际象棋游戏

I. 实现目标

  • 能够实现基本国际象棋的操作
  1. 利用键盘选择棋子移动(后期可尝试添加鼠标操作棋子)
  2. 利用窗口判断棋局胜负,将军时能够提示。
  • 实现基本的3d视角操作
  1. 利用方向键以及鼠标移动摄像机角度
  2. 利用按键或鼠标滚轮移动摄像机远近
  • 棋子棋盘场景的美化建模:
  1. 实现天空盒背景
  2. 进行棋子建模
  3. 棋盘与棋子纹理

II. 技术分析

  • 开发环境
  1. API:openGL, GLUT
  2. 软件:VS2017, 3dmax
  3. 语言:C++
    *环境分析:*本工程需要开发3d场景,为日后平台可移植性考虑选用openGL作为三维图形api,由于工程所需三维处理并不要求复杂,从易用性考虑利用glut工具库处理底层操作系统层面I/O以及接口调用。
  • 难点
  1. 3d场景的绘制,天空盒的实现及棋盘棋子的三维绘制,棋子模型的导入。
  2. 键盘鼠标事件捕捉以及场景互动,棋子控制交互。
  3. 移动是否合乎规则的判定,棋局胜负判定。
  • 程序架构设计
  1. 实现功能概要:
    输入:对鼠标点击旋转场景,滚轮或键盘按键±控制场景缩放,wasd控制当前选中棋盘格,控制棋子移动。
    输出:主要游戏窗口UI,负责显示棋盘背景等游戏画面,提示窗口UI,负责提示游戏输赢以及一些特殊情况的警告。
    棋盘绘制:利用纹理贴图实现。
    棋子绘制:利用3dmax绘制静态棋子3ds模型文件,程序读入作为棋子模型。
    交互规则:实现棋子移动可行性判断,两方对局视角切换,棋局输赢判断。
  2. 面对对象的程序设计:
    棋盘类:主要实现棋子移动判定,棋盘存储,胜局判断,当前应下棋方判定。
    纹理类:负责加载导入棋盘天空纹理贴图(主要为位图文件)。
    模型类:负责加载棋子模型(主要为3ds文件)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值