这个程序一开始结构就设计得不好,后面思路也不正确。
你可以先用vc6生成一个简单的win32程序来看。
一基本结构是:
1.WinMain入口函数。
2.MyRegisterClass注册窗口函数。(在WinMain中调用)
3.InitInstance创造窗口并显示。(在WinMain中调用)
4.WndProc窗口过程,用来捕捉消息,并执行事件。
所以在WinMain中就是下面情况:
WinMain
{
MyRegisterClass;
InitInstance;
(GetMessage)or(PeekMessage);//这里是捕捉消息。
}
MyRegisterClass(){}
InitInstance(){}
WndProc(){}
二:捕捉消息后如何响应,其实就是消息来了如何调用程序。
在WndProc中调用
WndProc()
{
case 某某消息:
调用执行的函数;
}
比如你这个游戏:
WndProc()
{
。。。。。。。。。
case VK_SPACE::
ball();//调用球类碰撞动画
。。。。。。。
}
ball(){}
三:peekmessage和getmessage的区别
你这个程序只要getmessage就可以,peekmessage不需要。在WinMain中如下:
while (GetMessage (&messages, NULL, 0, 0))
{
/* Translate virtual-key messages into character messages */
TranslateMessage(&messages);
/* Send message to WindowProcedure */
DispatchMessage(&messages);
}
return messages.wParam;
四:球类碰撞动画的思考
变量:
kmaxballnum=10 最多10个小球
ktouchnum=5 最多碰5次
函数:
drawball()//画小球
ballmove(方向,速度)//小球移动
方向 balltouch() //小球撞倒墙壁,返回新方向
removeball()//5次碰撞后擦除小球。
希望对你有帮助