一直按住一個鍵,時間稍長就會使得所有顯示都卡頓;我想是同時觸發的事件太多的原因,於是加了bool型變量來控制,
if (GetKeyState(VK_SPACE) < 0&&ismybullet==false)//我子彈發射
{
ismybullet = true;
Mybullet *mbu = new Mybullet();
mbu->poi.x = myplane.poi.x + 20;
mbu->poi.y = myplane.poi.y;
mybulletlist.AddTail(mbu);
},
這個if是在計時器控制的,然後我應該把ismybullet = false;加在什麼地方呢?
用了雙緩沖繪圖,子彈顯示用了CImageList。
長按一個鍵時,你應該降低處理頻率。比如,對於移動鍵,就是移動到最邊上,最上面,最下面後就不在繼續項處理了。對於子彈,長按就是變成你的子彈發送的一個穩定平衡速度,而不是按照按鍵消息速度。