- 518
- 0
- 约8.15千字
- 约 12页
- 2017-09-07 发布于陕西
- 举报
——《打砖块》
学院:
班级:
学号:
姓名:
游戏设计规则
游戏开始时,小球会停在挡板正中间,且此时挡板可左右自由移动,当按下空格键后小球会弹出,并在程序设定的区域内不停的碰撞反弹。当小球碰到墙壁、挡板和砖块时,均会以相反的速度反弹,并且砖块被碰撞后会自动消失。挡板可左右移动以接住小球,若小球没有被接住,超出指定区域下边缘,则程序会自动提示“游戏结束”,点击“确定”后退出程序。当所有的砖块均消失时,程序会弹出提示“恭喜你,你赢了”。
游戏设计思路
整个游戏可以分为三个类:小球类、挡板类和砖块类。
其中最简单的当然是挡板了,在回调函数中增加“WM_KEYDOWN”的按键消息,在里面编写控制挡板移动的代码,挡板的移动是通过“上、下、左、右”四个键来实现的。
砖块在整个程序中负责两件事情,其一是程序初始化时随着小球和挡板出现在游戏界面中,再就是被小球碰到后消失。控制砖块出现与否是通过一个bool变量“blockExist”来实现的,当该变量为“true”时,就将砖块贴到目标DC上,否则就不贴。由于砖块数量很多,故可以用一个for循环来实现,所有的砖块用的都是一张图片,而变化的只是砖块的坐标。
本游戏中最复杂的要数小球了,因为小球要涉及到很多碰撞检测和反弹,而且这其中还和砖块、挡板有联系。小球涉及到的碰撞有:小球与墙壁碰撞、小球与挡板碰撞、小球与砖块碰撞。碰撞检测实际上是检测小球的坐标是否进入了某个特定的区域,若进入了,则小球要反弹;否则,按原来的路线继续前进。小球能不断的反弹,事实上靠的是小球速度方向的改变,对于小球而言,它能出现在某个点上,是它所在坐标系中的坐标导致的。若设小球的坐标为(x_ball,y_ball),其速度为水平:vx,竖直:vy,将其坐标与速度之间建立赋值关系,即:x_ball+=vx,y_ball-=vy。只要对其坐标进行相对应的计算,就能控制小球的反弹了。
游戏主要代码
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
// TODO: Place code here.
MSG msg;
HACCEL hAccelTable;
// Initialize global strings
LoadString(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING);
LoadString(hInstance, IDC_APIDEMOGAME, szWindowClass, MAX_LOADSTRING);
MyRegisterClass(hInstance);
// Perform application initialization:
if (!InitInstance (hInstance, nCmdShow))
{
return FALSE;
}
hAccelTable = LoadAccelerators(hInstance, (LPCTSTR)IDC_APIDEMOGAME);
// Main message loop:
while (GetMessage(msg, NULL, 0, 0))
{
if (!TranslateAccelerator(msg.hwnd, hAccelTable, msg))
{
TranslateMessage(msg);
DispatchMessage(msg);
}
}
return msg.wParam;
}
ATOM MyRegisterClass(HINSTANCE hInstance)
{
WNDCLASSEX wcex;
wcex.cbSize = sizeof(WNDCLASSEX);
wcex.style = CS_HREDRAW | CS_VREDRAW;
wcex.lpfnWndProc = (WNDPROC)WndProc;
wcex.cbClsExtra = 0;
wcex.cbWndExtra = 0;
wcex.hInstance = hInstance;
wcex.hIcon = LoadIcon(hInstance, (LPCTSTR)IDI_APIDEMOGAME);
wcex.hCursor = LoadCursor(
您可能关注的文档
- [常州市]某医院规划与建筑设计方案.doc
- “犯罪人—被害人和解”的制度设计与司法践行.doc
- 《Java程序设计》练习十.doc
- 《Java程序设计》模拟练习三.doc
- ××多层框架结构基础设计.doc
- 13万吨年中等分子量聚丙烯酰胺干燥设备设计.doc
- B2C网站设计.doc
- C语言及程序设计课程试卷答案.doc
- GB J74-1984石油库设计规范.doc
- SY 0075-1993油罐区防火堤设计规范.doc
- 八年级语文下册na文言文阅读专练(二).pptx
- 2025年福建莆田秀屿区南日镇卫生院第一轮编外人员招聘2人笔试历年题库附答案解析.docx
- 八年级语文下册nb文言文阅读专练(一) (2).pptx
- 八年级语文下册n2 回延安 (5).pptx
- 2025年福建莆田秀屿区南日镇卫生院第一轮编外人员招聘2人笔试历年题库附答案解析.docx
- 2025年福建莆田市荔城区东洋中学代课教师招聘1人笔试试题附答案解析.docx
- 八年级语文下册nc文言文阅读专练(一) (3).pptx
- 2025年福建莆田市莆投智泊科技有限公司职业经理人招聘2人笔试历年题库附答案解析.docx
- 八年级语文下册ne写作 (2).pptx
- 2025年福建莆田市荔城区东洋中学代课教师招聘1人笔试备考题库附答案解析.docx
原创力文档

文档评论(0)