基于MFC对话框 想做一款2D横版游戏,类似GBA恶魔城,想问一些问题
本人新手。但是想尝试一下做个2D横版的小游戏。
一开始就遇到了一些问题,所以想问一下各位前辈。
1、比如我按下d键,人物向右边跑动。这个功能我实现了。但是有些缺陷。
就是我在OnKeyDown函数中设置一个计时器:
if (0x44==nChar)
{
SetTimer(1,15,NULL);
}
然后在OnTimer函数中用写显示图片的代码,但是发现,我按下d键的时候,人物一开始只播放了跑步的第一帧,过了大约半秒左右吧,才会连续播放后面的动画。
这就有点像在文本框按下一个按键,一开始只会显示一个字母,等过了一下才会连续显示一串字母。
我的播放图片的代码大概是这么写的:
CClientDC pDC(this);
Graphics gra(pDC.m_hDC);
CRect rect;
GetClientRect(&rect);
Bitmap bmp(rect.right,rect.bottom); //依窗口大小创建内存画布
Graphics buffer(&bmp);//Gaphics对象引用内存画布
buffer.Clear(Color::White);//清除内存画布并以白色填充
//上面这段代码是利用双缓冲显示图像,防闪烁
KillTimer(1);
if(m_nSrcCrouchImageX>448)
{
m_nSrcCrouchImageX=448;
}
buffer.DrawImage(m_pBitmap ,m_nPlayerX, 150, m_nSrcCrouchImageX, 0, 64, 64, UnitPixel);
gra.DrawImage(&bmp, 0, 0);
m_nSrcCrouchImageX+=64;