fSpeedX= 15.f;//ÏòÓÒµÄʱºòX·½ÏòµÄËÙ¶ÈΪÕýÖµ break;
}
4£© µ÷Óú¯ÊýÉèÖÃÓãµÄËÙ¶È£º
m_pMyFish->SetSpriteLinearVelocity(fSpeedX, fSpeedY);
5£© ÔÚMain.cppÖÐOnKeyDownº¯ÊýÀïÃæÌí¼Ó¶Ô¸Ã×Ô¶¨Ò庯ÊýµÄµ÷Óãº
g_GameMain.OnKeyDown(iKey,bAltPress,bShiftPress,bCtrlPress);
5¡¢ ´¦Àí¼üÅÌÊÍ·ÅÏûÏ¢ÐèÒªÌí¼ÓÒ»¸ö×Ô¶¨Ò庯ÊýOnKeyUp£º
1£© ÔÚLessonX.hÖÐÌí¼Ó¸Ãº¯ÊýµÄÉùÃ÷£º void OnKeyUp( const int iKey );
2£© ÔÚLessonX.cppÖÐÌí¼Ó¸Ãº¯ÊýµÄ¶¨Ò壺
void CGameMain::OnKeyUp( const int iKey ) { }
3£© Åжϰ´Ïµİ´¼ü¼üÖµ²¢ÉèÖÃËÙ¶ÈֵΪ0£¬ÔÚÉÏÃæµÄº¯ÊýÀïÃæÌí¼ÓÈçÏ´úÂ룺
float fSpeedX, fSpeedY; switch(iKey) {
case KEY_W: case KEY_A: case KEY_S: case KEY_D: fSpeedX = 0.f; fSpeedY = 0.f; } 4£© µ÷Óú¯ÊýÉèÖÃÓãµÄËÙ¶È£º
m_pMyFish->SetSpriteLinearVelocity(fSpeedX, fSpeedY);
5£© ÔÚMain.cppÖÐOnKeyUpº¯ÊýÀïÃæÌí¼Ó¶Ô¸Ã×Ô¶¨Ò庯ÊýµÄµ÷Ó㺠g_GameMain.OnKeyUp(iKey);
ʵÑéÆß¼üÅÌ¿ØÖÆÓãµÄͼƬ·×ª
¡¾ÊµÑéÄÚÈÝ¡¿
²½Öè¡¢ÏìӦϵͳ°´¼üÏûϢʹÓãÓζ¯£¬Í¬Ê±Èç¹ûÍù·´·½ÏòÓÎÔò·×ªÓãµÄͼƬ
¡¾ÊµÑé˼·¡¿
¶¨ÒåËĸö±äÁ¿m_fSpeedLeft¡¢m_fSpeedRight¡¢m_fSpeedTop¡¢m_fSpeedBottom±íʾÓãÍùËĸö·½ÏòÓζ¯µÄËÙ¶È£¬Òò´ËÖ»Òª¿ØÖÆÕâËĸö±äÁ¿µÄÕý¸º¾Í¿ÉÒÔ¿ØÖÆÓãµÄÓζ¯ÁË£¬Í¬Ê±Åжϰ´¼ü°´ÏÂÁË·´·½ÏòµÄ¼üֵʱ¾Í·×ªÓãµÄͼ¡£ÀýÈçµ±°´ÏÂAʹÓãÍù×óÓζ¯£¬Èç¹û´Ëʱ°´ÏÂDÔò½«Óã·×ªÍùÓÒÓΡ£
¡¾ÊµÑéÖ¸µ¼¡¿
1¡¢ ÔÚLessonX.hÖÐÌí¼ÓÈçϱäÁ¿ÉùÃ÷£º
float m_fSpeedLeft ;// Óã4¸ö·½ÏòµÄËÙ¶È float m_fSpeedRight ;
float m_fSpeedTop ; float m_fSpeedBottom ;
2¡¢ ÔÚLessonX.cppÖеĹ¹Ô캯ÊýÀïÃæÌí¼ÓÒÔÉϱäÁ¿µÄ³õʼ»¯´úÂ룺
m_fSpeedBottom= 0.f; m_fSpeedLeft= 0.f; m_fSpeedRight= 0.f; m_fSpeedTop= 0.f;
3¡¢ Åжϰ´ÏµļüÖµ£¬·ÖÇé¿ö´¦ÀíÓëµÄËÙ¶È£¬ÔÚOnKeyDownÖн«ÔÀ´µÄ´úÂë×¢Ê͵ô£¬
ͬʱÌí¼ÓÒÔÏ´úÂ룺
1£© ¸ù¾Ý²»Í¬¼üÖµÉèÖÃÓ㲻ͬµÄËÙ¶È£º
switch(iKey) {
case KEY_W: m_fSpeedTop = -10.f; break; case KEY_A: m_fSpeedLeft = -15.f; break; case KEY_S: m_fSpeedBottom = 10.f; break; case KEY_D: m_fSpeedRight = 15.f; break; }
2£© ÒòΪÿ´Î¼üֵת»»µÄʱºòÓã»áÍ£Ö¹ÏÂÀ´£¬¼´ËÙ¶ÈΪ0£¬´Ëʱ¸ù¾Ý°´¼üÖØÐ¸øÓ㸳еÄËÙ¶È£¬ËùÒÔ´ËʱֻҪÅжÏm_fSpeedLeft + m_fSpeedRightÓë0µÄ´óС¾Í¿ÉÒÔ¾ö¶¨ÊÇ·ñ·×ªÍ¼Æ¬ÁË¡£
if((m_fSpeedLeft + m_fSpeedRight) > 0) m_pMyFish->SetSpriteFlipX( false); else if((m_fSpeedLeft + m_fSpeedRight) < 0) m_pMyFish->SetSpriteFlipX( true); 3£© ×îºó¸øÓãÉèÖÃËÙ¶È£º
m_pMyFish->SetSpriteLinearVelocity( m_fSpeedLeft + m_fSpeedRight, m_fSpeedTop + m_fSpeedBottom);
4¡¢ ÅжÏÊͷŵļüÖµ£¬½«ÓãËùÓз½ÏòµÄËÙ¶ÈÉèÖÃΪ0£¬ÔÚOnKeyUpÖн«ÔÀ´µÄ´úÂë×¢ÊÍ
µô£¬Í¬Ê±Ìí¼ÓÒÔÏ´úÂ룺
1£© ½«ÓãËùÓз½ÏòËÙ¶ÈÉèÖÃΪ0
switch(iKey) {
case KEY_W: m_fSpeedTop = 0.f; break;
}
case KEY_A: m_fSpeedLeft = 0.f; break; case KEY_S: m_fSpeedBottom = 0.f; break; case KEY_D: m_fSpeedRight = 0.f; break;
2£© ÓÉÓÚÍæ¼Ò¿ÉÄÜÊÍ·ÅÁË·ÇWASDÖеÄÒ»¸ö¼ü£¬Òò´ËÕâÀïͬÑùÐèÒªÔÙ´ÎÅжÏm_fSpeedLeft + m_fSpeedRightµÄÖµ£»À´¾ö¶¨ÊÇ·ñ·×ªÓãµÄͼƬ
if((m_fSpeedLeft + m_fSpeedRight) > 0) m_pMyFish->SetSpriteFlipX( false); else if((m_fSpeedLeft + m_fSpeedRight) < 0) m_pMyFish->SetSpriteFlipX( true); 3£© ×îºó¸øÓãÉèÖÃËÙ¶È£º
m_pMyFish->SetSpriteLinearVelocity( m_fSpeedTop + m_fSpeedBottom);
m_fSpeedLeft
+
m_fSpeedRight,
ʵÑé°Ë·â×°¼üÅÌ¿ØÖÆÓãÓζ¯µÄ´úÂë
¡¾ÊµÑéÄÚÈÝ¡¿
²½Öè¡¢½«¼üÅÌ¿ØÖÆÓãÓζ¯µÄ¶¯×÷¶ÀÁ¢Ð´³ÉÒ»¸öº¯Êý
¡¾ÊµÑé˼·¡¿
ÀàÖжà¸öº¯ÊýÖд¦ÀíÁ˼üÅÌ¿ØÖÆÓãÓζ¯µÄ´úÂ룬Òò´Ë¿ÉÒÔ½«Æäд³ÉÒ»¸öº¯Êý¹©ÆäËûº¯Êýµ÷Óá£
¡¾ÊµÑéÖ¸µ¼¡¿
1¡¢ Ìí¼ÓÒ»¸ö×Ô¶¨Ò庯ÊýSwimming´¦Àí¼üÅÌ¿ØÖÆÓãÓζ¯µÄ¶¯×÷¡£ÔÚLessonX.hÖÐÌí¼Ó¸Ã
º¯ÊýµÄÉùÃ÷£º void Swimming(); 2¡¢ ÔÚLessonX.cppÖÐÌí¼Ó¸Ãº¯ÊýµÄ¶¨Ò壺 void CGameMain::Swimming() { }
3¡¢ ×îºó´¦Àí¼üÅÌÅжÏÓãÊÇ·ñ·×ªÒÔ¼°¸³¸øÓãËٶȵ͝×÷£¬ÔÚÉÏÃæµÄ¶¨ÒåÖÐÌí¼ÓÈçÏ´ú
Â룺 if((m_fSpeedLeft + m_fSpeedRight) > 0)
m_pMyFish->SetSpriteFlipX(false);
else if((m_fSpeedLeft + m_fSpeedRight) < 0)
m_pMyFish->SetSpriteFlipX(true);
m_pMyFish->SetSpriteLinearVelocity( m_fSpeedLeft + m_fSpeedRight, m_fSpeedTop +
m_fSpeedBottom);
4¡¢ ×îºó½«OnKeyDownºÍOnKeyUpº¯ÊýÖеÄÈçÏ´úÂë×¢ÊͲ¢Ìí¼ÓSwimmingº¯ÊýµÄµ÷
ÓôúÂë:
1£© ×¢Ê͵ôÒÔÏ´úÂ룺
if((m_fSpeedLeft + m_fSpeedRight) > 0) m_pMyFish->SetSpriteFlipX(false); else if((m_fSpeedLeft + m_fSpeedRight) < 0) m_pMyFish->SetSpriteFlipX(true);
m_pMyFish->SetSpriteLinearVelocity( m_fSpeedTop + m_fSpeedBottom); 2£© Ìí¼ÓSwimmingº¯Êýµ÷ÓÃ
Swimming(); ÖÁ´Ë£¬±¾ÊµÑé½áÊø¡£
m_fSpeedLeft + m_fSpeedRight,