C++ÓïÑԿγÌÉè¼ÆÒ»º£µ×ÊÀ½ç
Ò»¡¢ÊµÑéÄÚÈÝ
º£µ×ÓÐÎåÌõÓ㣬ÆäÖÐËÄÌõÀ´»ØËæ»úÓζ¯£¬ÓÉÍæ¼ÒÓüüÅÌW A S D¿ØÖÆÁíÍâÒ»ÌõÓζ¯¡£ ÒªÇóÈçÏ£º
1¡¢ ÓÎÏ·³õʼ½çÃæÈçÏÂͼ¡£
2¡¢ À´»ØÓζ¯µÄËÄÌõÓ㣬´ÓÆÁÄ»×ó±ßÓνøÀ´£¬¾ùÒÑÒ»¸öËæ»úËÙ¶ÈˮƽÓζ¯¡£´ÓÆÁÄ»ÓÒ²à
ÓγöÈ¥£¬ºÜ¿ìÓÖ´ÓÆÁÄ»ÓÒ²àÓγöÀ´£¬¾ÍÕâÑùÀ´»ØÓζ¯¡£
3¡¢ Íæ¼ÒÓÃWASD¼ü¿ØÖÆÒ»ÌõÓãÏòÉÏ¡¢×ó¡¢Ï¡¢ÓÒ·½ÏòÓζ¯¡£ËÉ¿ª°´¼üʱ£¬Íæ¼ÒµÄÓã¾Í
Í£Ö¹Óζ¯¡£
4¡¢ Íæ¼ÒµÄÓãÓÁÄ»±ß½çʱ£¬²»ÄܼÌÐøÍùǰÓΡ£
ÓÎÏ·³õʼ½çÃæ
¶þ¡¢ÊµÑéÖ¸ÄÏ
ʵÑéÒ»¿ªÊ¼ÊµÑé
¡¾ÊµÑéÈÎÎñ¡¿
²½ÖèÒ»¡¢´ò¿ªFunCode£¬´´½¨Ò»¸öµÄC++ÓïÑÔÏîÄ¿£» ²½Öè¶þ¡¢µ¼ÈëSeaFishÄ£°å¡£
¡¾ÊµÑé˼·¡¿ °´ÊµÑéÖ¸µ¼Íê³É¡£
¡¾ÊµÑéÖ¸µ¼¡¿
1¡¢ ´ò¿ªFunCode£¬µã»÷¡°ÏîÄ¿¡±²Ëµ¥£¬Ñ¡Ôñ¡°´´½¨C++¹¤³Ì¡±
×¢Ò⣺¹¤³ÌÃûÃû³ÆÒªÇó×Öĸ¿ªÍ·£¬Ö»Äܰüº¬×ÖĸºÍÊý×Ö£¬ÇÒÃû×ÖÖм䲻ÄÜÓпոñ¡£ 2¡¢ µã»÷²Ëµ¥¡°ÏîÄ¿¡±Öеġ°µ¼ÈëµØÍ¼Ä£¿é¡±£¬Èçͼһ¡£Ìø³öÒ»¸ö¶Ô»°¿ò£¬Ñ¡ÖС°SeaFish¡±
Ä£°å£¬µã»÷¡°µ¼Èëµ½¹¤³Ì¡±°´Å¥£¬Èçͼ¶þ¡£
ͼ Ò» ͼ ¶þ 3¡¢ µ¼Èë³É¹¦ºóµÄ£¬½çÃæÈçÏÂͼËùʾ£º
µØÍ¼²»½ö°üÀ¨½çÃæÉè¼Æ£¬»¹°üÀ¨¸ÃÓÎÏ·¿ÉÄÜÒªÓõ½µÄÆäËû¾«Áé¡£Ìí¼Óµ½¡°³¡¾°¡±Öеľ«Á飬¶¼ÒѾȡºÃÃû³Æ£¬²¢¸ù¾Ý³ÌÐòÒªÇóÉèÖúÃÖÐÐĵ㡢Á´½ÓµãµÈ£¬Ñ§ÉúÖ»ÐèÒª
Ö±½Ó±à³Ì¾Í¿ÉÒÔ¡£±¾ÊµÑéÖ¸µ¼ÖУ¬¾«ÁéµÄÃüÃûÃû³ÆÓëÄ£°å²»Ïàͬ£¬¿É½«Ãû³Æ°´ÊµÑéÖ¸µ¼ÉèÖá£
ʵÑé¶þÈÃfishÓζ¯
¡¾ÊµÑéÄÚÈÝ¡¿
²½ÖèÒ»¡¢ÉèÖÃfish0ÍùÌØ¶¨·½ÏòÒÆ¶¯
¡¾ÊµÑé˼·¡¿
µ÷ÓÃSetSpriteLinearVelocityº¯ÊýÉèÖþ«ÁéµÄÒÆ¶¯Ëٶȼ´¿É¡£
¡¾ÊµÑéÖ¸µ¼¡¿
1¡¢ ½øÈëLessonX.hÖÐÌí¼ÓÈçϵijÉÔ±±äÁ¿ÉùÃ÷:
CSprite* m_pFish;
2¡¢ ÔÚLessonX.cppÖеĹ¹Ô캯ÊýÀïÃæÌí¼Ó¸Ã±äÁ¿µÄ³õʼ»¯´úÂ룺 m_pFish=new CSprite(\
3¡¢ ͬʱÐ޸Ĺ¹Ô캯ÊýÖÐm_iGameState µÄֵΪ2£¬ÕâÑùÓÎÏ·Æô¶¯µÄʱºò¾ÍÖ±½Óµ÷ÓÃ
GameRunº¯ÊýʹÓàÓζ¯¡£
4¡¢ ÔÚGameRunº¯ÊýÀïÃæÌí¼ÓÏÂÃæÒ»ÐдúÂ룺
m_pFish->SetSpriteLinearVelocity(30, 30); ÕâÑùÓã¾ÍÄÜÓζ¯ÁË¡£
ʵÑéÈýÓãÅöµ½±ß½çÍ£Ö¹Óζ¯
¡¾ÊµÑéÄÚÈÝ¡¿
²½ÖèÒ»¡¢±ß½ç¼ì²â£¬ÓãÅöµ½±ß½çËÙ¶ÈΪ0
¡¾ÊµÑé˼·¡¿
µ±ÏµÍ³¼ì²âµ½ÓãÅöײµ½ÊÀ½ç±ß½çµÄʱºòµ÷ÓÃSetSpriteLinearVelocityº¯ÊýʹÓãµÄËÙ¶ÈΪ0¡£
¡¾ÊµÑéÖ¸µ¼¡¿
1¡¢ ½øÈëLessonX.hÖÐÌí¼ÓÈçϵijÉÔ±±äÁ¿£º
float m_fScreenLeft ; // ÆÁÄ»×ó±ß½çÖµ float m_fScreenRight ; // ÆÁÄ»Óұ߽çÖµ float m_fScreenTop ; // ÆÁÄ»Éϱ߽çÖµ float m_fScreenBottom ; // ÆÁĻϱ߽çÖµ
2¡¢ ÔÚLessonX.cppÖеĹ¹Ô캯ÊýÀïÃæÌí¼ÓÒÔÉϱäÁ¿µÄ³õʼ»¯´úÂ룬ͬʱ½«
m_iGameStateµÄÖµ¸ÄΪ1£¬ÕâÑùÓÎÏ·¿ªÊ¼Ö±½Ó¿ªÊ¼³õʼ»¯²Ù×÷£º
m_iGameState = 1; m_fScreenBottom = 0.f; m_fScreenLeft = 0.f; m_fScreenRight = 0.f; m_fScreenTop = 0.f;
3¡¢ ×¢Ê͵ôʵÑé¶þÖÐgamerun()ÖÐÌí¼ÓµÄÄÇÒ»ÐдúÂë¡£ÔÚGameInit»ñÈ¡ÊÀ½ç±ß½çµÄÖµ£¬
ͬʱÉèÖÃÓãµÄ±ß½çÏÞÖÆºÍ³õʼËÙ¶È£º
// »ñÈ¡ÆÁÄ»µÄ±ß½çÖµ
m_fScreenLeft = CSystem::GetScreenLeft(); m_fScreenRight = CSystem::GetScreenRight(); m_fScreenTop = CSystem::GetScreenTop();
m_fScreenBottom = CSystem::GetScreenBottom();
// ÉèÖþ«ÁéÊÀ½ç±ß½ç
m_pFish->SetSpriteWorldLimit(WORLD_LIMIT_NULL, m_fScreenTop, m_fScreenRight, m_fScreenBottom); m_pFish->SetSpriteLinearVelocity( 15, 0);
m_fScreenLeft,
4¡¢ ´¦ÀíÊÀ½ç±ß½çÅöײ£¬½¨Á¢×Ô¶¨Ò庯ÊýOnSpriteColWorldLimit£¨Èç¹ûϵͳÒÑÉùÃ÷£¬ÔòºöÂÔ´´½¨º¯ÊýOnSpriteColWorldLimitµÄ²½Ö裩£º 1£© ÔÚLessonX.hÖÐÌí¼Ó¸Ãº¯ÊýµÄÉùÃ÷£º
void OnSpriteColWorldLimit( const char *szName, const int iColSide );
2£© ÔÚLessonX.cppÖÐÌí¼Ó¸Ãº¯ÊýµÄ¶¨Òå´úÂ룺
void CGameMain::OnSpriteColWorldLimit( const char *szName, const int iColSide ) { }
3£© Èç¹ûϵͳ¼ì²âµ½ÓãÅöײÁËÊÀ½ç±ß½ç£¬Ôòµ÷ÓÃSetSpriteLinearVelocityº¯Êý½«ÓãµÄ
ËÙ¶ÈÉèÖÃΪ0£¬ÔÚÉÏÃæµÄº¯Êý¶¨ÒåÀïÃæÌí¼ÓÈçϵĴúÂ룺
if(strcmp(szName, \ { m_pFish->SetSpriteLinearVelocity(0, 0); //dSetSpriteFlipX(\ }
4£© ×îºóÔÚMain.cppÖеÄOnSpriteColWorldLimitµÄº¯ÊýÀïÌí¼Ó¶Ô×Ô¶¨Ò庯ÊýµÄµ÷ÓÃ
´úÂ룺
g_GameMain.OnSpriteColWorldLimit(szName,iColSide);
ʵÑéËÄÓãÅöµ½±ß½çºó°´Ïà·´·½ÏòÓζ¯
¡¾ÊµÑéÄÚÈÝ¡¿ ²½ÖèÒ»¡¢Åöײ¼ì²â
²½Öè¶þ¡¢ÉèÖÃÓãµÄËÙ¶ÈΪ·´·½Ïò
¡¾ÊµÑé˼·¡¿
µ±ÏµÍ³¼ì²âµ½ÓãÅöײµ½ÊÀ½ç±ß½çµÄʱºòµ÷ÓÃSetSpriteLinearVelocityº¯ÊýʹÓãµÄËÙ¶ÈΪÔÀ´ËٶȵÄÏà·´Êý£¬ÈçÔÀ´ÊÇ15.f£¬ÅöײºóΪ-15.f£¬ÔÀ´ÊÇ-15.f£¬ÅöײºóΪ15.f¡£ÔÙµ÷ÓÃSetSpriteFlipXº¯ÊýÊÇÓãµÄͼƬ·×ª£¬ÈÃÓã¼ÌÐøÓζ¯¼´¿É¡£
¡¾ÊµÑéÖ¸µ¼¡¿
1¡¢ ÔÚLessonX.cppÖеÄOnSpriteColWorldLimitº¯ÊýÀïÃæ£¬½«ÔÀ´µÄ´úÂë×¢Ê͵ô¡£