我想搞个小游戏玩玩!但是不知道该如何限制,人物角色移动的呢
说白了 就是不想让人物去穿墙~!
这个该如何实现的??
另外一个就是
想这种人物动作图片都在一起的!
该用什么函数去拆解他们并把那个背景给去掉呢
谢谢!!
晚上就 来结贴

解决方案 »

  1.   

    神啊!难道没有取消图片背景色的API函数??
      

  2.   

    用这个函数
    void TransparentBlt2( HDC hdc0,
     int nX0,int nY0,
     int nW0,int nH0,
     HDC hdc1,
     int nX1,int nY1,
     int nW1,int nH1,
     UINT Tcol
     )
    {
    HBITMAP hBMP   =CreateCompatibleBitmap(hdc0,nW0, nH0);
    HBITMAP mBMP   =CreateBitmap(nW0,nH0,1,1,NULL);
    HDC hDC    =CreateCompatibleDC(hdc0);
    HDC mDC    =CreateCompatibleDC(hdc0);
    HBITMAP oldBMP =(HBITMAP)SelectObject(hDC, hBMP);
    HBITMAP oldmBMP=(HBITMAP)SelectObject(mDC, mBMP);
    if (nW0==nW1&&nH0==nH1)
    BitBlt(hDC,0,0,nW0,nH0,hdc1,nX1,nY1,SRCCOPY);
    else
    StretchBlt(hDC,0,0,nW0,nH0,hdc1,nX1,nY1,nW1,nH1,SRCCOPY); SetBkColor(hDC, Tcol);
    BitBlt(mDC,0,0,nW0,nH0,hDC,0,0,SRCCOPY);
    SetBkColor(hDC, RGB(0,0,0));
    SetTextColor(hDC, RGB(255,255,255));
    BitBlt(hDC,0,0,nW0,nH0,mDC,0,0,SRCAND);
    SetBkColor(hdc0,RGB(255,255,255));
    SetTextColor(hdc0,RGB(0,0,0)); BitBlt(hdc0,nX0,nY0,nW0,nH0,mDC,0,0,SRCAND);
    BitBlt(hdc0,nX0,nY0,nW0,nH0,hDC,0,0,SRCPAINT); SelectObject(hDC, oldBMP);
    DeleteDC(hDC);
    SelectObject(mDC, oldmBMP);
    DeleteDC(mDC);
    DeleteObject(hBMP);
    DeleteObject(mBMP);
    }