• 模拟小球匀速运动


    如何自动模拟小球匀速运动,在碰到边界的时候,无能量损失继续运动。

    背景和小球加载处理完毕。

    小球运动坐标。

    void MyPaint(HDC hdc)
    {
     SelectObject(bufdc,bg);
     BitBlt(mdc,0,0,640,480,bufdc,0,0,SRCCOPY);

     SelectObject(bufdc,ball);
     BitBlt(mdc,x,y,60,91,bufdc,60,0,SRCAND);
     BitBlt(mdc,x,y,60,91,bufdc,0,0,SRCPAINT);

     BitBlt(hdc,0,0,640,480,mdc,0,0,SRCCOPY);

     x+=vx;
     if (x<=0)
     {
      x=0;
      vx=-vx;
     }
     else if (x>=rect.right-60)
     {
      x=rect.right-60;
      vx=-vx;
     }
     y+=vy;
     if (y<=0)
     {
      y=0;
      vy=-vy;
     }
     else if (y>=rect.bottom-91)
     {
      y=rect.bottom-91;
      vy=-vy;
     }

     tPre=GetTickCount();
    }

    首先想到是在主消息循环里面加

    while (GetMessage(&msg, NULL, 0, 0))
     {
      if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg))
      {
       TranslateMessage(&msg);
       DispatchMessage(&msg);
       while(true)
       {
        MyPaint(hdc);
        Sleep(1000);
       }
      }
     }

    效果很不明显。

  • 相关阅读:
    最短路-dij
    链式前向星
    B树、B+树
    C++类
    差分约束
    数位DP
    Markdown编辑器:表格
    git使用笔记
    leetcode 162. 寻找峰值(二分)
    python matplotlib包的安装注意事项:报错——No such file or dir : tmp/matplotlib-xxxxxx
  • 原文地址:https://www.cnblogs.com/batman425/p/3282173.html
Copyright © 2020-2023  润新知