鼠标控制多边形移动与射击。
运行结果:
源代码:
#include <windows.h>
#include <tchar.h>
#pragma comment(lib, "winmm.lib") //调用PlaySound函数所需库文件t
#pragma comment(lib, "Msimg32.lib")
#define WINDOW_WIDTH 800
#define WINDOW_HEIGHT 600
#define WINDOW_TITLE L"【游戏程序设计】鼠标交互"
struct Missiles //结构体代表导弹
{
int x,y; //导弹坐标
bool exsit; //导弹是否存在
};
HINSTANCE hInst;
HDC hdc, mdc, bufdc; //全局设备环境句柄与全局内存DC句柄
HBITMAP hJ10, hMissibles, hBackGround; //各个位图存储人物,导弹,背景
HFONT hFont; //字体
DWORD g_iNow, g_iPre; //声明两个变量来记录时间,g_tPre记录上一次绘图的时间,g_tNow记录此次准备绘图的时间
int g_iX, g_iY, g_iXNow, g_iYNow; // 代表鼠标光标所在位置,g_iXNow,g_iYNow代表当前人物坐标,也就是贴图的位置
int g_iBulletNum, g_iBGOffset; //g_iBGOffset为滚动背景所要裁剪的区域宽度,g_iBulletNum记录剑侠现有导弹数目
HWND hwnd;
Missiles Bullet[30]; //声明一个Missiles类型的数组,用来存储剑侠发出导弹。
int MyWindowClass(HINSTANCE);
BOOL InitInstance(HINSTANCE, int);
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
void MyDraw(HWND);
/*****************************************************************************************************************
在不同的应用程序中,在此处添加相关的全局变量
******************************************************************************************************************/
int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPreInstace,
LPSTR lpCm