移动和重绘位图图像会留下一条"轨迹"? (C ++)

时间:2014-10-19 03:26:07

标签: c++ bitmap redraw

我正在尝试移动并重新绘制图像但遇到以下问题:

http://tinypic.com/r/2m26kbm/8

以下是我用来强制移动,显示,然后使用Invalidate()的代码。

    private: System::Void eventTimer_Tick(System::Object^  sender, System::EventArgs^  e) {
           if (!listOfBots->IsEmpty())
           {
              listOfBots->MoveBots();
              listOfBots->ShowBots();
           }
           Invalidate();
            }

这是我的show方法:

void VBot::Show()
{ 
   Graphics ^ g = panel->CreateGraphics();
   g->DrawImageUnscaled( image, x, y );
   g->~Graphics();
}

这就是我的Move()所有内容:

void SpinBot::Move()
{
   y += 2;
   x += 8;
}

和我的构造函数:

SpinBot::SpinBot(int atX, int atY, Panel ^ thisPanel) : VBot(atX, atY, thisPanel)
{
   energy = 500;
   image = gcnew Drawing::Bitmap("spinBotImg.bmp");
}

如果您需要更多可能的代码,我会更新此代码。我不确定到底发生了什么。任何帮助表示赞赏。

0 个答案:

没有答案