01±±¿Æ´óÊîÆÚ¼ÆËã»úʵ¼ùFunCodeÓÎÏ·Éè¼Æ+C++¿Î³ÌÉè¼Æ - º£µ×ÊÀ½ç - ͼÎÄ

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º¯ÊýÀïÃæ£¬½«Ô­À´µÄ´úÂë×¢Ê͵ô¡£

ÁªÏµ¿Í·þ£º779662525#qq.com(#Ìæ»»Îª@)