• 大小: 266KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-15
  • 语言: 其他
  • 标签: 小球碰撞  反弹  

资源简介

空格键每按次生成小球,共10,然后碰撞反弹

资源截图

代码片段和文件信息

#include“qiu.h“
//消息处理函数 
bool ball;
int shuliang;
LRESULT CALLBACK WndProc( HWND hWnd//窗口句柄
   UINT msg//消息
   WPARAM wParam//消息附加信息
   LPARAM lParam)//消息附加信息
{
//判断消息
switch( msg )
{
case WM_DESTROY://销毁消息
PostQuitMessage( 0 ) ;//退出消息
break ;
case WM_KEYDOWN://键盘按下
switch( wParam )//检测按下的键值
{
case VK_ESCAPE://键值是esc键
//关闭消息
PostMessage( hWnd WM_CLOSE NULL NULL ) ;
break ;
case VK_SPACE:
ball = true;
break;
}
break ;
/*case WM_KEYUP:
switch(wParam)
{
case VK_SPACE:
ball = false;
break;
}
break;*/
}
//接受没有处理的消息
return DefWindowProc( hWnd msg wParam lParam ) ;
}
//主函数 
INT WINAPI WinMain( HINSTANCE hInstance//实例句柄
    HINSTANCE hPrevInstance//前实例句柄
LPSTR CmdLine//命令行消息
INT CmdShow )//显示命令
{
WNDCLASS wc ;//窗口类
HWND hWnd ;//窗口句柄
MSG msg ;//消息结构体
wc.cbClsExtra = 0 ;//类的附加内存
wc.cbWndExtra = 0 ;//窗口的附加内存
//窗口背景色黑色
wc.hbrBackground = (HBRUSH)GetStockobject( BLACK_BRUSH ) ;
wc.hCursor = LoadCursor( NULL IDC_ARROW ) ;//鼠标
wc.hIcon = LoadIcon(NULL IDI_WINLOGO) ;//设置标题栏图标
wc.hInstance = hInstance ;//实例句柄
wc.lpfnWndProc = WndProc ;//指定消息处理函数
wc.lpszClassName = “window“ ;//类名
wc.lpszMenuName = NULL ;//菜单名
wc.style = CS_HREDRAW|CS_VREDRAW ;//支持垂直和水平重绘
//注册窗口类
RegisterClass( &wc ) ;
//创建窗口
hWnd = CreateWindowEx( WS_EX_TOPMOST//窗口在最顶端
                   “window“//窗口类
   “我的第一个窗口“//窗口标题栏的名字
   WS_OVERLAPPEDWINDOW//窗口风格
   0 //x坐标
   0 //y坐标
   WINDOW_WIDTH//宽
   WINDOW_HEIGHT//高
   NULL//父类句柄
   NULL//菜单句柄
   hInstance//实例句柄
   NULL ) ;//扩展参数
//窗口句柄为空代表窗口没有创建成功就返回
if ( NULL == hWnd )
{
MessageBox( NULL “窗口创建失败!“ “error“ MB_OK ) ;
return 0 ;
}
HDC hDc = GetDC( hWnd ) ;//画布
HDC hMDc = CreateCompatibleDC( hDc ) ;//位于内存和hDc相匹配的画布
//黑色的位图
HBITMAP hBitMap = CreateCompatibleBitmap( hDc WINDOW_WIDTH WINDOW_HEIGHT ) ;
//将位图画在内存画布中(重要不执行此操作不会出东西)
Selectobject( hMDc hBitMap ) ;
//挡板的笔刷
HBRUSH hBrushBar = CreateSolidBrush( 0xff00ff ) ;
//背景的颜色笔刷
HBRUSH hBBrush = CreateSolidBrush( 0x000000 ) ; 
//球的颜色
HBRUSH hYBrush = CreateSolidBrush( 0x00ffff ) ; 

//背景区域
RECT BRect = { 0 0 WINDOW_WIDTH WINDOW_HEIGHT } ;

//球的区域
RECT RectBall = {WINDOW_WIDTH / 2 - 25
                 WINDOW_HEIGHT - 120
                 WINDOW_WIDTH / 2 + 25
 WINDOW_HEIGHT - 70} ;
//球的速度
POINT Speed = {5 5};
//创建球的矩形区域
HRGN hRgn = CreateRectRgnIndirect( &RectBall ) ;
//显示窗口
ShowWindow( hWnd CmdShow ) ;
//更新窗口
UpdateWindow( hWnd ) ;
//消息处理循环
while ( TRUE )
{
//从消息队列拾取消息
if ( PeekMessage( &msg//消息结构体
  NULL//获得消息的句柄为null代表全部窗口都获得
  0//获得消息的最小范围
  0//获得消息的最大范围 0代表全部
  PM_REMOVE ) )//从消息队列中删除消息
{
//如果消息为退出消息就跳出循环
if ( msg.message == WM_QUIT )
break ;
//转换消息
TranslateMessage( &msg ) ;

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       2337  2009-07-28 17:55  小球\Debug\BuildLog.htm

     文件      16651  2009-07-28 17:55  小球\Debug\qiu.obj

     文件     338944  2009-07-28 17:55  小球\Debug\vc70.idb

     文件      94208  2009-07-28 17:55  小球\Debug\vc70.pdb

     文件     110592  2009-07-28 17:55  小球\Debug\xuhaiyang.exe

     文件     496312  2009-07-28 17:55  小球\Debug\xuhaiyang.ilk

     文件     461824  2009-07-28 17:55  小球\Debug\xuhaiyang.pdb

     文件       4933  2009-07-28 17:55  小球\qiu.cpp

     文件        189  2009-07-28 17:20  小球\qiu.h

     文件      35840  2009-07-29 00:11  小球\xuhaiyang.ncb

     文件        907  2009-07-28 16:33  小球\xuhaiyang.sln

    ..A..H.      8192  2009-07-29 00:11  小球\xuhaiyang.suo

     文件       3413  2009-07-28 17:20  小球\xuhaiyang.vcproj

     目录          0  2009-07-28 17:55  小球\Debug

     目录          0  2009-07-28 17:55  小球

----------- ---------  ---------- -----  ----

              1574342                    15


评论

共有 条评论