实验名称:二维射击游戏
实验要求:
- 绘制出子弹模型
- 按左右键可以调整在水平方向的位置
- 窗口中有一蓝色正方形在窗口内移动
- 按空格键进行射击
- 子弹沿y轴方向射出,如击中正方形,则正方形变为红色。
实验步骤:方向键移动我军,空格键发射炮弹
实验缺陷:未能实现一边移动一边打炮的良好体验
实验截图:
项目源码(共分为4个头文件和4个源文件):
Bullet.h,子弹对象的封装类:
#include <Windows.h>
#include <gl\glut.h>
#include <stdio.h>
class Bullet
{
public:
Bullet(int x,int y);
~Bullet(void);
void move();
public:
GLfloat x;
GLfloat y;
GLfloat width;
GLfloat height;
GLfloat speed;
};
Main.h,定义了几个窗口数据
#define WIN_WIDTH 500
#define WIN_HEIGHT 500
#define VIEW_WIDTH 500
#define VIEW_HEIGHT 500
Scene.h,场景对象的封装类,用来绘制其他对象:
#include <Windows.h>
#include <gl\glut.h>
#include <stdio.h>
#include <math.h>
#include <list>
#include "Bullet.h"
#include "Worm.h"
#define BOX_WIDTH 10
#define BOX_HEIGHT 10
using namespace std;
class Scene
{
public:
Scene(void);
~Scene(void);
void drawBu