£Ã£è£á£ð£ô£å£ò.£µ£³ [ ¥·¥å¡¼¥Æ¥£¥ó¥°¥²¡¼¥à£±£³¡§Çúȯ¥¨¥Õ¥§¥¯¥È ]
¢£¥¨¥Õ¥§¥¯¥È
¥¨¥Õ¥§¥¯¥È¤È¤Ò¤È¤¯¤Á¤Ë¸À¤Ã¤Æ¤â¡¢¼ÂºÝ¤Ë¤Ï¿§¡¹¤Ê¤â¤Î¤¬¤¢¤ê¤Þ¤¹¡£¥·¥å¡¼¥Æ¥£¥ó¥°¥²¡¼¥à¤À¤±¤Ç¹Í¤¨¤Æ¤â¡¢¥·¥ç¥Ã¥È¤ò·â¤Ã¤¿½Ö´Ö¤ÎÁ®¸÷¤ä¡¢Å¨¥¥ã¥é¥¯¥¿¡¼¤òÅݤ·¤¿¤È¤¤ÎÇúÉ÷¤Ê¤É¤¬»×¤¤É⤫¤Ó¤Þ¤¹¤Í¡£
¤½¤ì°Ê³°¤Ë¤â¡¢¥¢¥¤¥Æ¥à¤ò¼è¤Ã¤¿½Ö´Ö¤Ë¥¥ã¥é¥¯¥¿¡¼¤¬¸÷¤ë¤è¤¦¤Ë¤·¤¿¤ê¤¹¤ì¤Ð¡¢¤½¤ì¤âΩÇɤʥ¨¥Õ¥§¥¯¥È¤Ç¤¹¡£¥²¡¼¥à¤Î³«»Ï»þ¤Ë¡¢¥¿¥¤¥È¥ë¥í¥´¤¬¥«¥Ã¥È¥¤¥ó¤·¤Æ¤¯¤ë¤è¤¦¤Ë¤¹¤ì¤Ð¤³¤ì¤â¥¨¥Õ¥§¥¯¥È¤Ç¤¹¤Í¡£
º£²ó¤Ï¡¢¥·¥å¡¼¥Æ¥£¥ó¥°¥²¡¼¥à¤Ë¡¢Çúȯ¤Î¥¨¥Õ¥§¥¯¥È¤òÄɲ䷤Ƥߤ¿¤¤¤È»×¤¤¤Þ¤¹¡£
¤³¤ì¤¬¼ÂÁõ¤Ç¤¤ë¤È¡¢Å¨¥¥ã¥é¥¯¥¿¡¼¤¬Çúȯ¤·¤Ê¤¬¤é¾Ã¤¨¤ë¤Î¤Ç¡¢¥·¥ç¥Ã¥È¤¬Åö¤¿¤Ã¤¿´¶¿¨¤¬¶¯¤¯¤Ê¤ê¤Þ¤¹¤Í¡£¥×¥ì¥¤¥ä¡¼¤¬ÈïÃÆ¤·¤¿ºÝ¤â¡¢¤ª¤â¤ï¤º¡Ø¤·¤Þ¤Ã¤¿¡ª¡Ù¤È¸À¤¤¤¿¤¯¤Ê¤ë¤Ç¤·¤ç¤¦¡£
Çúȯ¤Î¥¨¥Õ¥§¥¯¥È¤Ê¤ó¤Æ¤Û¤ó¤Î¾®¤µ¤Ê¤³¤È¤Ç¤¹¤¬¡¢¤¢¤ë¤È¤Ê¤¤¤È¤Ç¤Ï¥²¡¼¥à¤Î´°À®ÅÙ¤¬°ã¤Ã¤Æ¤¤Þ¤¹¡£¸«¤¿Ìܤ⤫¤Ê¤êÎɤ¯¤Ê¤ê¤Þ¤¹¡£
¹Í¤¨Êý¤È¤·¤Æ¤Ï¡¢¥¥ã¥é¥¯¥¿¡¼¤ò¥¢¥Ë¥á¡¼¥·¥ç¥ó¤µ¤»¤¿¤È¤¤Î¤è¤¦¤Ë¡¢Çúȯ¤Î¥¨¥Õ¥§¥¯¥ÈÍѲèÁü¤òÀÚ¤êÂØ¤¨¤Ê¤¬¤éϢ³¤·¤ÆÉ½¼¨¤·¤Þ¤¹¡£º£²ó¤Ï°Ê²¼¤Î£µËç¤Î²èÁü¤ò»È¤Ã¤Æ¡¢Çúȯ¤Î¥¨¥Õ¥§¥¯¥È¤ò¼ÂÁõ¤µ¤»¤Æ¤ß¤ë¤³¤È¤Ë¤·¤Þ¤·¤ç¤¦¡£²èÁü¤ÎÂ礤µ¤Ï40¡ß40¥Ô¥¯¥»¥ë¤Ç¤¹¡£
¤³¤ì¤¬Ï¢Â³¤·¤ÆÉ½¼¨¤µ¤ì¤ë¤È¡¢¤Þ¤ë¤ÇÇúȯ¤·¤Æ¤¤¤ë¤è¤¦¤Ë¸«¤¨¤Þ¤¹¡£Â¿Ê¬¡Ä¡Ä¡£
¢£¥æ¡¼¥¶¡¼¥Õ¥©¡¼¥à¤Î½àÈ÷
¤Þ¤º¤Ï¡¢Á°²ó¤Þ¤Ç¤ËºîÀ®¤·¤Æ¤¤¤ë¥·¥å¡¼¥Æ¥£¥ó¥°¥²¡¼¥à¤Ë¡¢Çúȯ¤Î¥¨¥Õ¥§¥¯¥ÈÍѲèÁü¤ò¥í¡¼¥É¤·¤Þ¤·¤ç¤¦¡£
Àè¤Û¤É¤Î£µËç¤Î²èÁü¤ò¥æ¡¼¥¶¡¼¥Õ¥©¡¼¥à¾å¤Î¥¤¥á¡¼¥¸¥³¥ó¥È¥í¡¼¥ë¤Ë¥í¡¼¥É¤·¤Æ¡¢Ì¾Á°¤òÊѹ¹¤·¤Þ¤¹¡£

²èÁü¤ò¥¥Á¥ó¤È¥í¡¼¥É¤·¤Æ¡¢Ì¾Á°¤òÊѹ¹¤·¤Þ¤¹¡£
¼ÂºÝ¤Ë²èÌ̾å¤Ç¥¨¥Õ¥§¥¯¥È¤È¤·¤Æ»È¤ï¤ì¤ë¥¤¥á¡¼¥¸¥³¥ó¥È¥í¡¼¥ë¤Ï¡¢¥Õ¥ì¡¼¥à¤ÎÃæ¤ËÇÛÃÖ¤·¤Þ¤¹¡£

¤³¤³¤ÇÇÛÃÖ¤·¤¿£³¤Ä¤Î¥¤¥á¡¼¥¸¥³¥ó¥È¥í¡¼¥ë¤Ï̾Á°¤ò
¤½¤·¤ÆËº¤ì¤Æ¤Ï¤Ê¤é¤Ê¤¤¤Î¤¬¡¢
¥²¡¼¥à¤ò³«»Ï¤·¤¿¤È¤¤Ë¡¢»Ï¤á¤«¤éÇúȯÍѤΥ¨¥Õ¥§¥¯¥È¤¬É½¼¨¤µ¤ì¤Æ¤¤¤Æ¤Ï¤ª¤«¤·¤¤¤Ç¤¹¤«¤é¡¢É¬¤º
¤³¤³¤Þ¤Ç¤Ç¤¤¿¤é¡¢¥æ¡¼¥¶¡¼¥Õ¥©¡¼¥à¤Î½àÈ÷¤ÏOK¤Ç¤¹¡£¼¡¤Ï¥³¡¼¥É¤òµ½Ò¤·¤Æ¤¤¤¤Þ¤¹¡£
¢£Çúȯ¥¨¥Õ¥§¥¯¥È¤Î¹Í¤¨Êý
Çúȯ¤Î¥¨¥Õ¥§¥¯¥È¤Ï¡¢¥²¡¼¥à¤Î¥¥ã¥é¥¯¥¿¡¼¤È¤¤¤¦¤ï¤±¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£¤¢¤¯¤Þ¤Ç¤â±é½Ð¤Î¤Ò¤È¤Ä¤Ë²á¤®¤Þ¤»¤ó¡£¤Ç¤¹¤¬¡¢¥×¥í¥°¥é¥à¤«¤é¸«¤¿¾ì¹ç¤Ë¤Ï¥¥ã¥é¥¯¥¿¡¼¤È¤Î°ã¤¤¤Ï¤Û¤È¤ó¤É¤¢¤ê¤Þ¤»¤ó¡£
Î㤨¤Ð¡ØÅ¨¥¥ã¥é¥¯¥¿¡¼¡Ù¤Ï¡¢²èÌ̤γ°¤«¤é¾¡¼ê¤Ë½Ð¤Æ¤¤Æ¡¢Êü¤Ã¤Æ¤ª¤±¤Ð¾¡¼ê¤Ë²èÌ̳°¤Ø¾Ã¤¨¤Æ¤¤¤¤Þ¤¹¡£Çúȯ¥¨¥Õ¥§¥¯¥È¤À¤Ã¤ÆÆ±¤¸¤Ç¤¹¡£¥·¥ç¥Ã¥È¤¬¥Ò¥Ã¥È¤·¤¿¤È¤¤Ë¾¡¼ê¤ËȯÀ¸¤·¤Æ¡¢°ìÄê»þ´Öɽ¼¨¤µ¤ì¤¿¤é¾¡¼ê¤Ë¾Ã¤¨¤Þ¤¹¡£¤Ç¤¹¤«¤é¡¢Å¨¥¥ã¥é¥¯¥¿¡¼¤Î½èÍý¤ÈƱ¤¸¤è¤¦¤Ê´¶¤¸¤Ç¥×¥í¥°¥é¥à¤òÁȤá¤Ð¡¢¤½¤ì¤ÇÇúȯ¤Î¥¨¥Õ¥§¥¯¥È¤òºîÀ®¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
¤³¤ó¤Êή¤ì¤Ç¤ä¤ì¤Ð¤¤¤¤¤ï¤±¤Ç¤¹¤Í¡£
¤½¤ì¤Ç¤Ï¤Þ¤º¡¢Çúȯ¥¨¥Õ¥§¥¯¥ÈÍѤˡ¢¹½Â¤ÂΤÈÊÑ¿ô¤ò½àÈ÷¤·¤Þ¤¹¡£
¹½Â¤ÂΤÎÍ×ÁǤϡ¢¥¥ã¥é¥¯¥¿¡¼ÍѤι½Â¤ÂΤȤ«¤Ö¤Ã¤Æ¤¤¤ëÉôʬ¤â¤¢¤ê¤Þ¤¹¤¬¡¢À衹¤ò¹Í¤¨¤Æ°ì±þÊ̤Τâ¤Î¤òÍѰդ·¤Æ¤ª¤¤Þ¤¹¡£
Type Obj
X As Single
Y As Single
W As Single
H As Single
Par As Long
End Type
Public Burst_Data(2) As Obj
Çúȯ¤Î¥¨¥Õ¥§¥¯¥È¤ÏƱ»þ¤Ë¤¤¤¯¤Ä¤âȯÀ¸¤¹¤ë²ÄǽÀ¤¬¤¢¤ê¤Þ¤¹¡£¤½¤³¤ÇÀè¤Û¤É¤â¥Õ¥ì¡¼¥àÆâ¤Ë£³¤Ä¤Î¥¤¥á¡¼¥¸¥³¥ó¥È¥í¡¼¥ë¤òÇÛÃÖ¤·¤¿¤ï¤±¤Ç¤¹¡£Æ±¤¸¤è¤¦¤Ë¡¢Çúȯ¥¨¥Õ¥§¥¯¥ÈÍѤÎÇÛÎóÊÑ¿ô¤â¡¢¡Ø
¤µ¤é¤Ë¡¢¥¥ã¥é¥¯¥¿¡¼¤Ê¤É¤ÈƱ¤¸¤è¤¦¤ËÄê¿ô¤ò»È¤Ã¤ÆÇúȯ¥¨¥Õ¥§¥¯¥È¤ÎÂ礤µ¤òÀè¤ËÄêµÁ¤·¤Æ¤ª¤¤Þ¤¹¡£
Çúȯ¥¨¥Õ¥§¥¯¥È¤Î¸µ¤È¤Ê¤ë²èÁü¤Ï¡¢40¡ß40¥Ô¥¯¥»¥ë¤Ç¤·¤¿¤Í¡£¤È¤¤¤¦¤³¤È¤Ï¡¢¥æ¡¼¥¶¡¼¥Õ¥©¡¼¥à¾å¤ËÇÛÃÖ¤µ¤ì¤Æ¤¤¤ë¥¤¥á¡¼¥¸¥³¥ó¥È¥í¡¼¥ë¤ÎÂ礤µ¤Ï¡¢30¡ß30¥Ý¥¤¥ó¥È¤Ë¤Ê¤ê¤Þ¤¹¡£¤³¤ì¤Ï¥Ý¥¤¥ó¥È¤È¥Ô¥¯¥»¥ë¤È¤¤¤¦Ã±°Ì¤Î°ã¤¤¤«¤éȯÀ¸¤¹¤ëÂ礤µ¤Îº¹¤Ç¤·¤¿¤Í¡£
¥³¡¼¥É¤ÎÃæ¤Ç°·¤¤¤ä¤¹¤¯¤¹¤ë¤¿¤á¤Ë30¥Ý¥¤¥ó¥È¤ò¤¢¤é¤«¤¸¤áȾʬ¤Ë¤·¤Æ¤ª¤¡¢¤½¤ì¤òÄê¿ô²½¤·¤¿¤Î¤¬¡¢¤³¤Î
²èÌ̾å¤Ë¥¨¥Õ¥§¥¯¥È¤òÇÛÃÖ¤¹¤ëÃʳ¬¤Ë¤Ê¤ë¤È¡¢¤³¤ÎÄê¿ô¤¬Èó¾ï¤ËÌò¤ËΩ¤Á¤Þ¤¹¡£¤¢¤È¤Ç»È¤¤¤Þ¤¹¤Î¤Ç¡¢Äê¿ô¤ÎÀë¸À¤À¤±¤Ï¤·¤Ã¤«¤ê¤ä¤Ã¤Æ¤ª¤¤¤Æ¤¯¤À¤µ¤¤¤Í¡£
¢£¥¨¥Õ¥§¥¯¥ÈÀ¸À®¡¢´ÉÍý¤Þ¤Ç
¤½¤ì¤Ç¤ÏÁᮡØÇúȯ¥¨¥Õ¥§¥¯¥ÈÀ¸À®¥×¥í¥·¡¼¥¸¥ã¡Ù¤òºî¤ê¤Þ¤·¤ç¤¦¡£
Ũ¥¥ã¥é¥¯¥¿¡¼¤ä¥·¥ç¥Ã¥È¤Î¤È¤¤ÈƱ¤¸¤è¤¦¤Ë¡¢¥¨¥Õ¥§¥¯¥È¤òÀ¸À®¤¹¤ëºÂɸ¤Ï¡¢°ú¿ô¤È¤·¤Æ¼õ¤±¼è¤ë¤è¤¦¤Ë¤·¤Æ¤ª¤¤Þ¤¹¡£
¤³¤¦¤¹¤ë¤³¤È¤Ç¡¢¤É¤Î¾ì½ê¤Ç¥·¥ç¥Ã¥È¤¬¥Ò¥Ã¥È¤·¤Æ¤â¡¢Ç¤°Õ¤Î¾ì½ê¤Ë¥¨¥Õ¥§¥¯¥È¤òÀ¸À®¤¹¤ë¤³¤È¤¬¤Ç¤¤ë¤è¤¦¤Ë¤Ê¤ë¤«¤é¤Ç¤¹¤Í¡£
¤³¤³¤Þ¤Ç½çÈÖ¤Ë¿Ê¤á¤Æ¤¤Æ¤¤¤ì¤Ð¡¢¤³¤ÎÆâÍÆ¤ÏÌäÂê¤Ê¤¤¤È»×¤¤¤Þ¤¹¡£
¤ä¤Ã¤Æ¤¤¤ë¤³¤È¤Ï»ê¶Ëñ½ã¤Ç¤¹¡£
ÇúȯÍѤΥ¨¥Õ¥§¥¯¥È¤Î¿ô¤À¤±·«¤êÊÖ¤·½èÍý¤·¤Þ¤¹¤Î¤Ç¡¢¤Þ¤º¤Ï
ºÇ½é¤ËÍ×ÁÇ
Í×ÁÇ
¤µ¤é¤Ë¡¢¤³¤³¤ÇÍ×ÁÇ
¤½¤·¤Æ¡¢¤Ò¤È¤Ä¤ÎÇúȯ¥¨¥Õ¥§¥¯¥È¤òÀ¸À®¤·¤¿¤é¡¢
¤µ¤Æ¡¢¤³¤³¤Þ¤Ç¤Ï¤Ä¤¤¤Æ¤³¤ì¤Æ¤¤¤Þ¤¹¤«¡©
¼¡¤Ï¡¢¾å¤Î¥×¥í¥·¡¼¥¸¥ã¤ÇÀ¸À®¤·¤¿Çúȯ¥¨¥Õ¥§¥¯¥È¤ò¡¢´ÉÍý¤¹¤ë¤¿¤á¤Î¥×¥í¥·¡¼¥¸¥ã¤òºî¤ê¤Þ¤·¤ç¤¦¡£
¾¯¤·Ä¹¤¤¤Ç¤¹¤¬¡¢¤Ò¤È¤Ä¤Ò¤È¤Ä¸«¤Æ¤¤¤¤Þ¤·¤ç¤¦¡£
¤Þ¤º¤Ï¡¤Ç¤¹¡£
º£²ó¤Ï¤³¤³¤ÇÀë¸À¤·¤Æ¤¤¤ëÊÑ¿ô
·«¤êÊÖ¤·½èÍý¤Ç¡¢É½¼¨¤µ¤ì¤Æ¤¤¤ë¥¨¥Õ¥§¥¯¥ÈÁ´¤Æ¤ò½èÍý¤·¤Æ¤¤¤¤Þ¤¹¡£
¤Þ¤º¤Ï
¤½¤·¤Æ¡¢¢¤Ç¼¨¤¹¤è¤¦¤Ë¡¢Í×ÁÇ
¤³¤³¤Ç¡¢Í×ÁÇ
¤â¤·¤â¡¢Í×ÁÇ
¤½¤·¤Æ¼¡¤Ë¤¡£
¤³¤³¤Ç¤Ï¥æ¡¼¥¶¡¼¥Õ¥©¡¼¥à¾å¤Î¥¤¥á¡¼¥¸¥³¥ó¥È¥í¡¼¥ë¤Î½èÍý¤ò¤·¤Æ¤¤¤Þ¤¹¡£Àè¤Û¤É¤Þ¤Ç¤Ï¤¢¤¯¤Þ¤Ç¤â¥Ç¡¼¥¿¾å¤Ç¤Î½èÍý¤Ç¤·¤¿¤¬¡¢¤³¤³¤Ç¼ÂºÝ¤Ë¥³¥ó¥È¥í¡¼¥ë¤Î²èÁü¤ÎÀÚ¤êÂØ¤¨¤Ê¤É¤ò¤·¤Æ¤¤¤ë¤ï¤±¤Ç¤¹¡£
¢£¤Þ¤È¤á¡¢Á´¥³¡¼¥É·ÇºÜ
¤µ¤Æ¡¢Á°²ó¤Þ¤Ç¤ËºîÀ®¤·¤Æ¤¤¤ë¥³¡¼¥É¤Ë¡¢¾åµ¤Î¥³¡¼¥É¤òÄɲä·¤Þ¤¹¡£
¤¿¤À¤·¡¢ÎÐʸ»ú¤Çɽ¼¨¤µ¤ì¤Æ¤¤¤ëÉôʬ¤ò¤è¤¯¸«¤Æ¤â¤é¤¨¤ì¤Ð¤ï¤«¤ê¤Þ¤¹¤¬¡¢ÊÑ¿ô¤Î½é´ü²½¤Ê¤É¤âÄɲäµ¤ì¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢Ãí°Õ¤·¤Æ¤¯¤À¤µ¤¤¤Í¡£
Declare Function GetTickCount Lib "kernel32" () As Long
Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
Declare Sub Sleep Lib "kernel32.dll" (ByVal dwMillsecounds As Long)
Type Chara
X As Single
Y As Single
W As Single
H As Single
Lif As Long
Typ As Long
Par As Long
End Type
Type Shot
X As Single
Y As Single
Vis As Boolean
Typ As Long
End Type
Type Obj
X As Single
Y As Single
W As Single
H As Single
Par As Long
End Type
Public Player_Data As Chara
Public Enemy_Data(9) As Chara
Public P_Shot_Data(4) As Shot
Public E_Shot_Data(9) As Shot
Public Burst_Data(2) As Obj
Public Shot_Interval As Long
Public Total_Count As Long
Public Const Left_Key As Long = 37
Public Const Up_Key As Long = 38
Public Const Right_Key As Long = 39
Public Const Down_Key As Long = 40
Public Const Esc_Key As Long = 27
Public Const Shot_Key As Long = 90
Public Const Player_Size As Single = 9
Public Const Shot_Size As Single = 3
Public Const Enemy_Size As Single = 9
Public Const Burst_Size As Single = 15
Sub Init()
With Player_Data
.X = 100
.Y = 180
.W = 3
.H = 3
.Lif = 1
.Typ = 0
.Par = 0
End With
Erase P_Shot_Data
Erase E_Shot_Data
Erase Enemy_Data
Erase Burst_Data
Shot_Interval = 0
Total_Count = 0
End Sub
Sub Main()
Dim Flg As Boolean
Dim Stm As Long
Call Init
Flg = False
Do Until Flg
Stm = GetTickCount
Total_Count = Total_Count + 1
Call Stage_Count
Call Player_Action
Call P_Shot_Action
Call Enemy_Action
Call E_Shot_Action
Call Burst_Action
DoEvents
Do
Call Sleep(1)
Loop Until GetTickCount - Stm > 30
If GetAsyncKeyState(Esc_Key) < 0 Then Flg = True
Loop
End Sub
Sub Stage_Count()
Randomize
Select Case Total_Count Mod 200
Case 0
Call Enemy_Begin(Int(Rnd * 120) + 40, -10, 1)
Case 50
Call Enemy_Begin(Int(Rnd * 120) + 40, -10, 2)
Case 100
Call Enemy_Begin(Int(Rnd * 120) + 40, -10, 3)
End Select
End Sub
Sub Player_Action()
With Player_Data
If GetAsyncKeyState(Left_Key) < 0 Then .X = .X - 3
If GetAsyncKeyState(Up_Key) < 0 Then .Y = .Y - 3
If GetAsyncKeyState(Right_Key) < 0 Then .X = .X + 3
If GetAsyncKeyState(Down_Key) < 0 Then .Y = .Y + 3
If .X - Player_Size < 0 Then .X = Player_Size
If .X + Player_Size > 200 Then .X = 200 - Player_Size
If .Y - Player_Size < 0 Then .Y = Player_Size
If .Y + Player_Size > 200 Then .Y = 200 - Player_Size
If Shot_Interval = 0 Then
If GetAsyncKeyState(Shot_Key) < 0 Then
Call P_Shot_Begin(.X, .Y, 0)
Shot_Interval = 1
End If
Else
Shot_Interval = Shot_Interval + 1
If Shot_Interval > 7 Then Shot_Interval = 0
End If
End With
With UserForm1.Player
.Left = Player_Data.X - Player_Size
.Top = Player_Data.Y - Player_Size
End With
End Sub
Sub P_Shot_Begin(X As Single, Y As Single, Typ As Long)
Dim L As Long
For L = 0 To 4
With P_Shot_Data(L)
If Not .Vis Then
.X = X
.Y = Y
.Typ = Typ
.Vis = True
UserForm1.Controls("P_Shot" & L + 1).Visible = True
Exit For
End If
End With
Next
End Sub
Sub P_Shot_Action()
Dim L As Long
Dim LL As Long
For L = 0 To 4
With P_Shot_Data(L)
If .Vis Then
.Y = .Y - 6
If .Y < -5 Then .Vis = False
For LL = 0 To 9
If Enemy_Data(LL).Lif > 0 Then
If .X - 2 < Enemy_Data(LL).X + Enemy_Data(LL).W Then
If .X + 2 > Enemy_Data(LL).X - Enemy_Data(LL).W Then
If .Y - 2 < Enemy_Data(LL).Y + Enemy_Data(LL).H Then
If .Y + 2 > Enemy_Data(LL).Y - Enemy_Data(LL).H Then
.Vis = False
With Enemy_Data(LL)
Call Burst_Begin(.X, .Y)
.Lif = 0
End With
Exit For
End If
End If
End If
End If
End If
Next
With UserForm1.Controls("P_Shot" & L + 1)
If P_Shot_Data(L).Vis Then
.Left = P_Shot_Data(L).X - Shot_Size
.Top = P_Shot_Data(L).Y - Shot_Size
Else
.Visible = False
End If
End With
End If
End With
Next
End Sub
Sub Enemy_Begin(X As Single, Y As Single, Typ As Long)
Dim L As Long
For L = 0 To 9
With Enemy_Data(L)
If .Lif = 0 Then
.X = X
.Y = Y
.W = 5
.H = 5
.Typ = Typ
.Lif = 1
.Par = 0
With UserForm1.Controls("Enemy" & L + 1)
.Visible = True
Select Case Typ
Case 1
.Picture = UserForm1.Enemy_s1.Picture
Case 2, 3
.Picture = UserForm1.Enemy_s2.Picture
End Select
End With
Exit For
End If
End With
Next
End Sub
Sub Enemy_Action()
Dim L As Long
Dim TCMOD
TCMOD = Total_Count Mod 30
For L = 0 To 9
With Enemy_Data(L)
If .Lif > 0 Then
Select Case .Typ
Case 1
.Y = .Y + 1.5
Case 2
.X = .X + 0.5
.Y = .Y + 1
Case 3
.X = .X - 0.5
.Y = .Y + 1
End Select
If .X > 220 Then .Lif = 0
If .Y > 220 Then .Lif = 0
If .X < -20 Then .Lif = 0
If .Y < -20 Then .Lif = 0
If TCMOD = 0 Then
Select Case .Typ
Case 2
.Typ = 3
Case 3
.Typ = 2
End Select
Call E_Shot_Begin(.X, .Y + 2, .Typ)
End If
End If
End With
With UserForm1.Controls("Enemy" & L + 1)
If Enemy_Data(L).Lif > 0 Then
.Left = Enemy_Data(L).X - Enemy_Size
.Top = Enemy_Data(L).Y - Enemy_Size
Else
.Visible = False
End If
End With
Next
End Sub
Sub E_Shot_Begin(X As Single, Y As Single, Typ As Long)
Dim L As Long
For L = 0 To 9
With E_Shot_Data(L)
If Not .Vis Then
.X = X
.Y = Y
.Typ = Typ
.Vis = True
With UserForm1.Controls("E_Shot" & L + 1)
.Visible = True
End With
Exit For
End If
End With
Next
End Sub
Sub E_Shot_Action()
Dim L As Long
Dim LL As Long
For L = 0 To 9
With E_Shot_Data(L)
If .Vis Then
Select Case .Typ
Case 1
.Y = .Y + 4.5
Case 2
.X = .X + 0.5
.Y = .Y + 3.5
Case 3
.X = .X - 0.5
.Y = .Y + 3.5
End Select
If .X > 205 Then .Vis = 0
If .Y > 205 Then .Vis = 0
If .X < -5 Then .Vis = 0
If .Y < -5 Then .Vis = 0
If .X - 2 < Player_Data.X + Player_Data.W Then
If .X + 2 > Player_Data.X - Player_Data.W Then
If .Y - 2 < Player_Data.Y + Player_Data.H Then
If .Y + 2 > Player_Data.Y - Player_Data.H Then
.Vis = False
With Player_Data
Call Burst_Begin(.X, .Y)
.Lif = 0
End With
End If
End If
End If
End If
With UserForm1.Controls("E_Shot" & L + 1)
If E_Shot_Data(L).Vis Then
.Left = E_Shot_Data(L).X - Shot_Size
.Top = E_Shot_Data(L).Y - Shot_Size
Else
.Visible = False
End If
End With
End If
End With
Next
End Sub
Sub Burst_Begin(X As Single, Y As Single)
Dim L As Long
For L = 0 To 2
With Burst_Data(L)
If .Par = 0 Then
.X = X
.Y = Y
.W = Burst_Size
.H = Burst_Size
.Par = 1
UserForm1.Controls("Burst" & L + 1).Visible = True
Exit For
End If
End With
Next
End Sub
Sub Burst_Action()
Dim L As Long
Dim Pict As Long
For L = 0 To 2
With Burst_Data(L)
If .Par > 0 Then
Select Case .Par
Case 1
Pict = 1
Case 2, 3
Pict = 2
Case 4, 5
Pict = 3
Case 6, 7
Pict = 4
Case 8
Pict = 5
Case 9
.Par = -1
End Select
.Par = .Par + 1
With UserForm1.Controls("Burst" & L + 1)
If Burst_Data(L).Par > 0 Then
.Left = Burst_Data(L).X - Burst_Size
.Top = Burst_Data(L).Y - Burst_Size
.Picture = UserForm1.Controls("Burst_s" & Pict).Picture
Else
.Visible = False
End If
End With
End If
End With
Next
End Sub
Private Sub Com_Start_Click()
Com_Start.Enabled = False
Call Main
Unload UserForm1
End Sub
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
End
End Sub
Private Sub UserForm_Initialize()
UserForm1.Width = 220
End Sub
¤µ¤Æ¡¢º£²ó¤Î¥Ý¥¤¥ó¥È¤È¤Ê¤ë¤Î¤Ï¡¢²«¿§¤¤Ê¸»ú¤Çɽ¼¨¤µ¤ì¤Æ¤¤¤ëÉôʬ¤Ç¤¹¡£
º£²óºîÀ®¤·¤¿Çúȯ¥¨¥Õ¥§¥¯¥È¤ÎÀ¸À®¥×¥í¥·¡¼¥¸¥ã¤ò¡¢¾×ÆÍȽÄê¤ÎÃæ¤«¤é¸Æ¤Ó½Ð¤¹¤è¤¦¤Ë¤·¤Þ¤¹¡£
Á°²ó¤Þ¤Ç¤Ï¡¢¥×¥ì¥¤¥ä¡¼¥¥ã¥é¥¯¥¿¡¼¤¬¥·¥ç¥Ã¥È¤ËÈïÃÆ¤·¤¿¤È¤¤Ë¤Ï¥á¥Ã¥»¡¼¥¸¤òɽ¼¨¤·¤Æ¤¤¤Þ¤·¤¿¡£º£²ó¤ÏÇúȯ¤Î¥¨¥Õ¥§¥¯¥È¤òÀ¸À®¤¹¤ë¤è¤¦¤ËÊѹ¹¤·¤¿¤Î¤Ç¡¢Å¨¤Î¥·¥ç¥Ã¥È¤ËÅö¤¿¤Ã¤Æ¤·¤Þ¤¦¤È¡¢¤½¤³¤ËÇúȯ¤Î¥¨¥Õ¥§¥¯¥È¤¬È¯À¸¤¹¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¤Ï¤º¤Ç¤¹¡£
Ũ¥¥ã¥é¥¯¥¿¡¼¤Ë¥×¥ì¥¤¥ä¡¼¤Î¥·¥ç¥Ã¥È¤¬¥Ò¥Ã¥È¤·¤¿¾ì¹ç¤âƱÍͤǤ¹¡£Å¨¤¬»à¤ó¤À¤È¤¤Ë¡¢¤½¤³¤ËÇúȯ¤Î¥¨¥Õ¥§¥¯¥È¤¬È¯À¸¤·¤Þ¤¹¡£
¤³¤ì¤Ç¡¢¤«¤Ê¤ê¥ê¥¢¥ë¤Ë¤Ê¤Ã¤¿¤Î¤Ç¤Ï¤Ê¤¤¤Ç¤·¤ç¤¦¤«¡£
±é½Ð¤ÎÂçÀÚ¤µ¤¬¤ï¤«¤ë¤È»×¤¤¤Þ¤¹¡£
ÂçÀڤʤΤϡ¢¥¨¥Õ¥§¥¯¥È¤Ç¤¢¤Ã¤Æ¤â¡¢¤½¤Î¹Í¤¨Êý¤Ï¥¥ã¥é¥¯¥¿¡¼¤ÈƱ¤¸¤È¤¤¤¦ÅÀ¤Ç¤¹¡£
¥¥ã¥é¥¯¥¿¡¼¤Ç¤¢¤ì¡¢¥·¥ç¥Ã¥È¤Ç¤¢¤ì¡¢¤Þ¤¿¡¢¥¨¥Õ¥§¥¯¥È¤Ç¤¢¤Ã¤Æ¤â¡¢¥×¥í¥·¡¼¥¸¥ã¤òÉôÉʲ½¤·¤Æ¡ØÀ¸À®¡Ù¤È¡Ø°Üư¤ä´ÉÍý¡Ù¤òÊÌ¡¹¤Ë½èÍý¤¹¤ë¤³¤È¤Ë¤ÏÊѤï¤ê¤¢¤ê¤Þ¤»¤ó¡£
¤³¤¦¤·¤ÆÉôÉʲ½¤µ¤ì¤¿¹½Â¤¤Ë¤Ê¤Ã¤Æ¤¤¤ì¤Ð¡¢¤¦¤Þ¤¯¤¤¤«¤Ê¤«¤Ã¤¿¤È¤¤Ë¡¢¤É¤³¤¬¸¶°ø¤«¤ï¤«¤ê¤ä¤¹¤¤¤Ç¤¹¡£¤À¤ó¤À¤óÁ´ÂΤι½Â¤¤¬Ê£»¨¤Ë¤Ê¤Ã¤Æ¤¤Æ¤Ï¤¤¤Þ¤¹¤¬¡¢ºÙ¤«¤¯¶èÀڤäƹͤ¨¤ì¤Ð¤½¤ì¤Û¤ÉÆñ¤·¤¯¤Ï¤¢¤ê¤Þ¤»¤ó¡£¹Í¤¨Êý¤â»÷¤Æ¤¤¤Þ¤¹¤·¤Í¡£
Äü¤á¤º¤Ë¡¢¤¬¤ó¤Ð¤Ã¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£
¥µ¥ó¥×¥ë¥À¥¦¥ó¥í¡¼¥É¡¡¢Í¡¡¥³¥Á¥é¤è¤ê¥À¥¦¥ó¥í¡¼¥É¤Ç¤¤Þ¤¹¡£¡ÊÊÌ´Û¡Ë
¢£³Ê¸À
¥¨¥Õ¥§¥¯¥È¤â¥¥ã¥é¥¯¥¿¡¼¤âÃæ¿È¤Ï¤Û¤È¤ó¤ÉƱ¤¸
¥Ñ¥é¥á¡¼¥¿¤ò¤¦¤Þ¤¯»È¤Ã¤Æ¥¢¥Ë¥á¡¼¥·¥ç¥ó¤µ¤»¤ë
¤«¤Ã¤³¤¤¤¤¥¨¥Õ¥§¥¯¥È¤ò¼ÂÁõ¤µ¤»¤Þ¤·¤ç¤¦¡£
¥¨¥Õ¥§¥¯¥È¤È¤Ò¤È¤¯¤Á¤Ë¸À¤Ã¤Æ¤â¡¢¼ÂºÝ¤Ë¤Ï¿§¡¹¤Ê¤â¤Î¤¬¤¢¤ê¤Þ¤¹¡£¥·¥å¡¼¥Æ¥£¥ó¥°¥²¡¼¥à¤À¤±¤Ç¹Í¤¨¤Æ¤â¡¢¥·¥ç¥Ã¥È¤ò·â¤Ã¤¿½Ö´Ö¤ÎÁ®¸÷¤ä¡¢Å¨¥¥ã¥é¥¯¥¿¡¼¤òÅݤ·¤¿¤È¤¤ÎÇúÉ÷¤Ê¤É¤¬»×¤¤É⤫¤Ó¤Þ¤¹¤Í¡£
¤½¤ì°Ê³°¤Ë¤â¡¢¥¢¥¤¥Æ¥à¤ò¼è¤Ã¤¿½Ö´Ö¤Ë¥¥ã¥é¥¯¥¿¡¼¤¬¸÷¤ë¤è¤¦¤Ë¤·¤¿¤ê¤¹¤ì¤Ð¡¢¤½¤ì¤âΩÇɤʥ¨¥Õ¥§¥¯¥È¤Ç¤¹¡£¥²¡¼¥à¤Î³«»Ï»þ¤Ë¡¢¥¿¥¤¥È¥ë¥í¥´¤¬¥«¥Ã¥È¥¤¥ó¤·¤Æ¤¯¤ë¤è¤¦¤Ë¤¹¤ì¤Ð¤³¤ì¤â¥¨¥Õ¥§¥¯¥È¤Ç¤¹¤Í¡£
º£²ó¤Ï¡¢¥·¥å¡¼¥Æ¥£¥ó¥°¥²¡¼¥à¤Ë¡¢Çúȯ¤Î¥¨¥Õ¥§¥¯¥È¤òÄɲ䷤Ƥߤ¿¤¤¤È»×¤¤¤Þ¤¹¡£
¤³¤ì¤¬¼ÂÁõ¤Ç¤¤ë¤È¡¢Å¨¥¥ã¥é¥¯¥¿¡¼¤¬Çúȯ¤·¤Ê¤¬¤é¾Ã¤¨¤ë¤Î¤Ç¡¢¥·¥ç¥Ã¥È¤¬Åö¤¿¤Ã¤¿´¶¿¨¤¬¶¯¤¯¤Ê¤ê¤Þ¤¹¤Í¡£¥×¥ì¥¤¥ä¡¼¤¬ÈïÃÆ¤·¤¿ºÝ¤â¡¢¤ª¤â¤ï¤º¡Ø¤·¤Þ¤Ã¤¿¡ª¡Ù¤È¸À¤¤¤¿¤¯¤Ê¤ë¤Ç¤·¤ç¤¦¡£
Çúȯ¤Î¥¨¥Õ¥§¥¯¥È¤Ê¤ó¤Æ¤Û¤ó¤Î¾®¤µ¤Ê¤³¤È¤Ç¤¹¤¬¡¢¤¢¤ë¤È¤Ê¤¤¤È¤Ç¤Ï¥²¡¼¥à¤Î´°À®ÅÙ¤¬°ã¤Ã¤Æ¤¤Þ¤¹¡£¸«¤¿Ìܤ⤫¤Ê¤êÎɤ¯¤Ê¤ê¤Þ¤¹¡£
¹Í¤¨Êý¤È¤·¤Æ¤Ï¡¢¥¥ã¥é¥¯¥¿¡¼¤ò¥¢¥Ë¥á¡¼¥·¥ç¥ó¤µ¤»¤¿¤È¤¤Î¤è¤¦¤Ë¡¢Çúȯ¤Î¥¨¥Õ¥§¥¯¥ÈÍѲèÁü¤òÀÚ¤êÂØ¤¨¤Ê¤¬¤éϢ³¤·¤ÆÉ½¼¨¤·¤Þ¤¹¡£º£²ó¤Ï°Ê²¼¤Î£µËç¤Î²èÁü¤ò»È¤Ã¤Æ¡¢Çúȯ¤Î¥¨¥Õ¥§¥¯¥È¤ò¼ÂÁõ¤µ¤»¤Æ¤ß¤ë¤³¤È¤Ë¤·¤Þ¤·¤ç¤¦¡£²èÁü¤ÎÂ礤µ¤Ï40¡ß40¥Ô¥¯¥»¥ë¤Ç¤¹¡£
| ²èÁü£± | ²èÁü2 | ²èÁü3 | ²èÁü4 | ²èÁü5 |
![]() | ![]() | ![]() | ![]() | ![]() |
¤³¤ì¤¬Ï¢Â³¤·¤ÆÉ½¼¨¤µ¤ì¤ë¤È¡¢¤Þ¤ë¤ÇÇúȯ¤·¤Æ¤¤¤ë¤è¤¦¤Ë¸«¤¨¤Þ¤¹¡£Â¿Ê¬¡Ä¡Ä¡£
¢£¥æ¡¼¥¶¡¼¥Õ¥©¡¼¥à¤Î½àÈ÷
¤Þ¤º¤Ï¡¢Á°²ó¤Þ¤Ç¤ËºîÀ®¤·¤Æ¤¤¤ë¥·¥å¡¼¥Æ¥£¥ó¥°¥²¡¼¥à¤Ë¡¢Çúȯ¤Î¥¨¥Õ¥§¥¯¥ÈÍѲèÁü¤ò¥í¡¼¥É¤·¤Þ¤·¤ç¤¦¡£
Àè¤Û¤É¤Î£µËç¤Î²èÁü¤ò¥æ¡¼¥¶¡¼¥Õ¥©¡¼¥à¾å¤Î¥¤¥á¡¼¥¸¥³¥ó¥È¥í¡¼¥ë¤Ë¥í¡¼¥É¤·¤Æ¡¢Ì¾Á°¤òÊѹ¹¤·¤Þ¤¹¡£

²èÁü¤ò¥¥Á¥ó¤È¥í¡¼¥É¤·¤Æ¡¢Ì¾Á°¤òÊѹ¹¤·¤Þ¤¹¡£
Burst_s1¡ÁBurst_s5¤Þ¤Ç¤ÎÏ¢È֤ˤ·¤Æ¤ª¤¤Þ¤·¤ç¤¦¡£¤Ï¤¸¤á¤«¤é½çÈ֤˹ֺ¤ò¿Ê¤á¤Æ¤¤Æ¤¤¤ëÊý¤Ê¤é¤ï¤«¤ë¤È»×¤¤¤Þ¤¹¤¬¡¢¤³¤³¤ÇÇÛÃÖ¤·¤¿¥¤¥á¡¼¥¸¥³¥ó¥È¥í¡¼¥ë¤Ï¡Ø¸¶²è¤ÎÌò³ä¡Ù¤òô¤¦¥³¥ó¥È¥í¡¼¥ë¤Ç¤¹¡£¤Ç¤¹¤«¤é¡¢¥¨¥Õ¥§¥¯¥È¤òɽ¼¨¤¹¤ë¤È¤¤Ë¡¢¤³¤Î¥³¥ó¥È¥í¡¼¥ë¤¬¤½¤Î¤Þ¤Þɽ¼¨¤µ¤ì¤ë¤ï¤±¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£¼ÂºÝ¤Ë²èÌ̾å¤Ç¥¨¥Õ¥§¥¯¥È¤È¤·¤Æ»È¤ï¤ì¤ë¥¤¥á¡¼¥¸¥³¥ó¥È¥í¡¼¥ë¤Ï¡¢¥Õ¥ì¡¼¥à¤ÎÃæ¤ËÇÛÃÖ¤·¤Þ¤¹¡£

¤³¤³¤ÇÇÛÃÖ¤·¤¿£³¤Ä¤Î¥¤¥á¡¼¥¸¥³¥ó¥È¥í¡¼¥ë¤Ï̾Á°¤ò
Burst1¡ÁBurst3¤È¤·¤Æ¤ª¤¤Þ¤¹¡£¼ÂºÝ¤Ëɽ¼¨¤µ¤ì¤ë¤³¤È¤Ë¤Ê¤ë¤ï¤±¤Ç¤¹¤«¤é¡¢Æ©²á½èÍý¤¬¹Ô¤ï¤ì¤ë¤è¤¦¤Ë¡¢¥¥Á¥ó¤ÈBackStyle¥×¥í¥Ñ¥Æ¥£¤ä¡¢BorderStyle¥×¥í¥Ñ¥Æ¥£¤òÀßÄꤷ¤Æ¤ª¤¤Þ¤·¤ç¤¦¡£¾Ü¤·¤¯¤Ï²áµî¤Î¹ÖºÂ¤ò¤´Í÷¤¯¤À¤µ¤¤(Chapter25¤ò»²¾È)¡£¤½¤·¤ÆËº¤ì¤Æ¤Ï¤Ê¤é¤Ê¤¤¤Î¤¬¡¢
Visible¥×¥í¥Ñ¥Æ¥£¤Ç¤¹¡£¥²¡¼¥à¤ò³«»Ï¤·¤¿¤È¤¤Ë¡¢»Ï¤á¤«¤éÇúȯÍѤΥ¨¥Õ¥§¥¯¥È¤¬É½¼¨¤µ¤ì¤Æ¤¤¤Æ¤Ï¤ª¤«¤·¤¤¤Ç¤¹¤«¤é¡¢É¬¤º
Visible¥×¥í¥Ñ¥Æ¥£¤Ë¤ÏFalse¤òÀßÄꤷ¤Æ¤ª¤¤Þ¤·¤ç¤¦¡£¤³¤³¤Þ¤Ç¤Ç¤¤¿¤é¡¢¥æ¡¼¥¶¡¼¥Õ¥©¡¼¥à¤Î½àÈ÷¤ÏOK¤Ç¤¹¡£¼¡¤Ï¥³¡¼¥É¤òµ½Ò¤·¤Æ¤¤¤¤Þ¤¹¡£
¢£Çúȯ¥¨¥Õ¥§¥¯¥È¤Î¹Í¤¨Êý
Çúȯ¤Î¥¨¥Õ¥§¥¯¥È¤Ï¡¢¥²¡¼¥à¤Î¥¥ã¥é¥¯¥¿¡¼¤È¤¤¤¦¤ï¤±¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£¤¢¤¯¤Þ¤Ç¤â±é½Ð¤Î¤Ò¤È¤Ä¤Ë²á¤®¤Þ¤»¤ó¡£¤Ç¤¹¤¬¡¢¥×¥í¥°¥é¥à¤«¤é¸«¤¿¾ì¹ç¤Ë¤Ï¥¥ã¥é¥¯¥¿¡¼¤È¤Î°ã¤¤¤Ï¤Û¤È¤ó¤É¤¢¤ê¤Þ¤»¤ó¡£
Î㤨¤Ð¡ØÅ¨¥¥ã¥é¥¯¥¿¡¼¡Ù¤Ï¡¢²èÌ̤γ°¤«¤é¾¡¼ê¤Ë½Ð¤Æ¤¤Æ¡¢Êü¤Ã¤Æ¤ª¤±¤Ð¾¡¼ê¤Ë²èÌ̳°¤Ø¾Ã¤¨¤Æ¤¤¤¤Þ¤¹¡£Çúȯ¥¨¥Õ¥§¥¯¥È¤À¤Ã¤ÆÆ±¤¸¤Ç¤¹¡£¥·¥ç¥Ã¥È¤¬¥Ò¥Ã¥È¤·¤¿¤È¤¤Ë¾¡¼ê¤ËȯÀ¸¤·¤Æ¡¢°ìÄê»þ´Öɽ¼¨¤µ¤ì¤¿¤é¾¡¼ê¤Ë¾Ã¤¨¤Þ¤¹¡£¤Ç¤¹¤«¤é¡¢Å¨¥¥ã¥é¥¯¥¿¡¼¤Î½èÍý¤ÈƱ¤¸¤è¤¦¤Ê´¶¤¸¤Ç¥×¥í¥°¥é¥à¤òÁȤá¤Ð¡¢¤½¤ì¤ÇÇúȯ¤Î¥¨¥Õ¥§¥¯¥È¤òºîÀ®¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
Çúȯ¥¨¥Õ¥§¥¯¥ÈÀ¸À®¥×¥í¥·¡¼¥¸¥ã¤ò¤Ä¤¯¤ë
¢§
Çúȯ¥¨¥Õ¥§¥¯¥È¤Î´ÉÍý¥×¥í¥·¡¼¥¸¥ã¤¬¥¢¥Ë¥á¡¼¥·¥ç¥ó¤µ¤»¤ë
¢§
°ìÄê¤Î¥³¥Þ¿ô¥¢¥Ë¥á¡¼¥·¥ç¥ó¤·¤¿¤é¾Ã¤¹
¢§
Çúȯ¥¨¥Õ¥§¥¯¥È¤Î´ÉÍý¥×¥í¥·¡¼¥¸¥ã¤¬¥¢¥Ë¥á¡¼¥·¥ç¥ó¤µ¤»¤ë
¢§
°ìÄê¤Î¥³¥Þ¿ô¥¢¥Ë¥á¡¼¥·¥ç¥ó¤·¤¿¤é¾Ã¤¹
¤³¤ó¤Êή¤ì¤Ç¤ä¤ì¤Ð¤¤¤¤¤ï¤±¤Ç¤¹¤Í¡£
¤½¤ì¤Ç¤Ï¤Þ¤º¡¢Çúȯ¥¨¥Õ¥§¥¯¥ÈÍѤˡ¢¹½Â¤ÂΤÈÊÑ¿ô¤ò½àÈ÷¤·¤Þ¤¹¡£
¹½Â¤ÂΤÎÍ×ÁǤϡ¢¥¥ã¥é¥¯¥¿¡¼ÍѤι½Â¤ÂΤȤ«¤Ö¤Ã¤Æ¤¤¤ëÉôʬ¤â¤¢¤ê¤Þ¤¹¤¬¡¢À衹¤ò¹Í¤¨¤Æ°ì±þÊ̤Τâ¤Î¤òÍѰդ·¤Æ¤ª¤¤Þ¤¹¡£
'¢£ÈÆÍÑ¥ª¥Ö¥¸¥§¥¯¥È¡¡¹½Â¤ÂÎÀë¸ÀType Obj
X As Single
'²£°ÌÃÖY As Single
'½Ä°ÌÃÖW As Single
'²£ÉýH As Single
'½ÄÉýPar As Long
'¥Ñ¥é¥á¡¼¥¿End Type
'¡üÈÆÍÑ¥ª¥Ö¥¸¥§¥¯¥È¡¡ÊÑ¿ôÀë¸ÀPublic Burst_Data(2) As Obj
Çúȯ¤Î¥¨¥Õ¥§¥¯¥È¤ÏƱ»þ¤Ë¤¤¤¯¤Ä¤âȯÀ¸¤¹¤ë²ÄǽÀ¤¬¤¢¤ê¤Þ¤¹¡£¤½¤³¤ÇÀè¤Û¤É¤â¥Õ¥ì¡¼¥àÆâ¤Ë£³¤Ä¤Î¥¤¥á¡¼¥¸¥³¥ó¥È¥í¡¼¥ë¤òÇÛÃÖ¤·¤¿¤ï¤±¤Ç¤¹¡£Æ±¤¸¤è¤¦¤Ë¡¢Çúȯ¥¨¥Õ¥§¥¯¥ÈÍѤÎÇÛÎóÊÑ¿ô¤â¡¢¡Ø
Burst_Data(2)¡Ù¤È¤·¤Æ¤ª¤¡¢Í×ÁÇ¿ô¤¬£³¤Ä¤Ë¤Ê¤ë¤è¤¦¤Ë¤·¤Æ¤ª¤¤Þ¤¹¡£¤µ¤é¤Ë¡¢¥¥ã¥é¥¯¥¿¡¼¤Ê¤É¤ÈƱ¤¸¤è¤¦¤ËÄê¿ô¤ò»È¤Ã¤ÆÇúȯ¥¨¥Õ¥§¥¯¥È¤ÎÂ礤µ¤òÀè¤ËÄêµÁ¤·¤Æ¤ª¤¤Þ¤¹¡£
Public Const Burst_Size As Single = 15
Çúȯ¥¨¥Õ¥§¥¯¥È¤Î¸µ¤È¤Ê¤ë²èÁü¤Ï¡¢40¡ß40¥Ô¥¯¥»¥ë¤Ç¤·¤¿¤Í¡£¤È¤¤¤¦¤³¤È¤Ï¡¢¥æ¡¼¥¶¡¼¥Õ¥©¡¼¥à¾å¤ËÇÛÃÖ¤µ¤ì¤Æ¤¤¤ë¥¤¥á¡¼¥¸¥³¥ó¥È¥í¡¼¥ë¤ÎÂ礤µ¤Ï¡¢30¡ß30¥Ý¥¤¥ó¥È¤Ë¤Ê¤ê¤Þ¤¹¡£¤³¤ì¤Ï¥Ý¥¤¥ó¥È¤È¥Ô¥¯¥»¥ë¤È¤¤¤¦Ã±°Ì¤Î°ã¤¤¤«¤éȯÀ¸¤¹¤ëÂ礤µ¤Îº¹¤Ç¤·¤¿¤Í¡£
¥³¡¼¥É¤ÎÃæ¤Ç°·¤¤¤ä¤¹¤¯¤¹¤ë¤¿¤á¤Ë30¥Ý¥¤¥ó¥È¤ò¤¢¤é¤«¤¸¤áȾʬ¤Ë¤·¤Æ¤ª¤¡¢¤½¤ì¤òÄê¿ô²½¤·¤¿¤Î¤¬¡¢¤³¤Î
Burst_Size¤È¤¤¤¦Äê¿ô¤Ë¤Ê¤ê¤Þ¤¹¡£²èÌ̾å¤Ë¥¨¥Õ¥§¥¯¥È¤òÇÛÃÖ¤¹¤ëÃʳ¬¤Ë¤Ê¤ë¤È¡¢¤³¤ÎÄê¿ô¤¬Èó¾ï¤ËÌò¤ËΩ¤Á¤Þ¤¹¡£¤¢¤È¤Ç»È¤¤¤Þ¤¹¤Î¤Ç¡¢Äê¿ô¤ÎÀë¸À¤À¤±¤Ï¤·¤Ã¤«¤ê¤ä¤Ã¤Æ¤ª¤¤¤Æ¤¯¤À¤µ¤¤¤Í¡£
¢£¥¨¥Õ¥§¥¯¥ÈÀ¸À®¡¢´ÉÍý¤Þ¤Ç
¤½¤ì¤Ç¤ÏÁᮡØÇúȯ¥¨¥Õ¥§¥¯¥ÈÀ¸À®¥×¥í¥·¡¼¥¸¥ã¡Ù¤òºî¤ê¤Þ¤·¤ç¤¦¡£
Ũ¥¥ã¥é¥¯¥¿¡¼¤ä¥·¥ç¥Ã¥È¤Î¤È¤¤ÈƱ¤¸¤è¤¦¤Ë¡¢¥¨¥Õ¥§¥¯¥È¤òÀ¸À®¤¹¤ëºÂɸ¤Ï¡¢°ú¿ô¤È¤·¤Æ¼õ¤±¼è¤ë¤è¤¦¤Ë¤·¤Æ¤ª¤¤Þ¤¹¡£
¤³¤¦¤¹¤ë¤³¤È¤Ç¡¢¤É¤Î¾ì½ê¤Ç¥·¥ç¥Ã¥È¤¬¥Ò¥Ã¥È¤·¤Æ¤â¡¢Ç¤°Õ¤Î¾ì½ê¤Ë¥¨¥Õ¥§¥¯¥È¤òÀ¸À®¤¹¤ë¤³¤È¤¬¤Ç¤¤ë¤è¤¦¤Ë¤Ê¤ë¤«¤é¤Ç¤¹¤Í¡£
Sub Burst_Begin(X As Single, Y As Single)
Dim L As Long
For L = 0 To 2
With Burst_Data(L)
If .Par = 0 Then
.X = X
.Y = Y
.W = Burst_Size
.H = Burst_Size
.Par = 1
UserForm1.Controls("Burst" & L + 1).Visible = True
Exit For
End If
End With
Next
End Sub
Dim L As Long
For L = 0 To 2
With Burst_Data(L)
If .Par = 0 Then
.X = X
.Y = Y
.W = Burst_Size
.H = Burst_Size
.Par = 1
UserForm1.Controls("Burst" & L + 1).Visible = True
Exit For
End If
End With
Next
End Sub
¤³¤³¤Þ¤Ç½çÈÖ¤Ë¿Ê¤á¤Æ¤¤Æ¤¤¤ì¤Ð¡¢¤³¤ÎÆâÍÆ¤ÏÌäÂê¤Ê¤¤¤È»×¤¤¤Þ¤¹¡£
¤ä¤Ã¤Æ¤¤¤ë¤³¤È¤Ï»ê¶Ëñ½ã¤Ç¤¹¡£
ÇúȯÍѤΥ¨¥Õ¥§¥¯¥È¤Î¿ô¤À¤±·«¤êÊÖ¤·½èÍý¤·¤Þ¤¹¤Î¤Ç¡¢¤Þ¤º¤Ï
Forʸ¤Ç¤Î·«¤êÊÖ¤·½èÍý¤«¤é»Ï¤Þ¤ê¤Þ¤¹¡£¤½¤·¤Æ¤Þ¤º¡¢Í×ÁÇPar(¥Ñ¥é¥á¡¼¥¿)¤ÎÃͤòÄ´¤Ù¤Þ¤¹¡£¤³¤Î¥Ñ¥é¥á¡¼¥¿¤È¤¤¤¦Í×ÁǤϡ¢Çúȯ¤Î¥¨¥Õ¥§¥¯¥È¤¬º£¸½ºß¤É¤Î¤è¤¦¤Ê¾õÂÖ¤«¤òɽ¤·¤Æ¤¤¤Þ¤¹¡£Í×ÁÇPar¤ÎÃͤȥ¨¥Õ¥§¥¯¥È¤Î´Ø·¸
Par = 0¡¡¡Ä¡Ä¡¡¥¨¥Õ¥§¥¯¥È¤ÏÈóɽ¼¨
Par = 1¡¡¡Ä¡Ä¡¡1ËçÌܤβèÁü¤òɽ¼¨Ãæ
Par = 2¡¡¡Ä¡Ä¡¡2ËçÌܤβèÁü¤òɽ¼¨Ãæ
Par = 3¡¡¡Ä¡Ä¡¡°Ê²¼Æ±Íͤ˳¤¯
Par = 0¡¡¡Ä¡Ä¡¡¥¨¥Õ¥§¥¯¥È¤ÏÈóɽ¼¨
Par = 1¡¡¡Ä¡Ä¡¡1ËçÌܤβèÁü¤òɽ¼¨Ãæ
Par = 2¡¡¡Ä¡Ä¡¡2ËçÌܤβèÁü¤òɽ¼¨Ãæ
Par = 3¡¡¡Ä¡Ä¡¡°Ê²¼Æ±Íͤ˳¤¯
ºÇ½é¤ËÍ×ÁÇ
Par¤ÎÃͤòÄ´¤Ù¤Æ¡¢£°¤À¤Ã¤¿¤È¤¤À¤±¤½¤ÎÀè¤Ë¿Ê¤ß¤Þ¤¹¡£¤½¤ì°Ê³°¤Î¾ì¹ç¤Ï¡¢´û¤Ëɽ¼¨¤µ¤ì¤Æ¤¤¤ë¤È¤¤¤¦¤³¤È¤Ë¤Ê¤ë¤«¤é¤Ç¤¹¡£Í×ÁÇ
Par¤¬£°¤À¤Ã¤¿¤È¤¤Ï¡¢°ú¿ô¤È¤·¤Æ¼õ¤±¼è¤Ã¤¿Í×ÁǤò¡¢ÊÑ¿ô¤Ë³ÊǼ¤·¤Æ¤¤¤¤Þ¤¹¡£¤³¤³¤Ç¡¢Àè¤Û¤ÉÄêµÁ¤·¤¿Äê¿ôBurst_Size¤¬½Ð¤Æ¤¤Æ¤¤¤Þ¤¹¤Í¡£¤µ¤é¤Ë¡¢¤³¤³¤ÇÍ×ÁÇ
Par¤Ë£±¤òÂåÆþ¤·¤Æ¤ª¤¤Þ¤¹¡£¤³¤ì¤Ç¡¢Èóɽ¼¨¤«¤éɽ¼¨Ãæ¤ËÀÚ¤êÂØ¤ï¤ë¤ï¤±¤Ç¤¹¤Í¡£¤½¤·¤Æ¡¢¤Ò¤È¤Ä¤ÎÇúȯ¥¨¥Õ¥§¥¯¥È¤òÀ¸À®¤·¤¿¤é¡¢
Exit For¤Ç·«¤êÊÖ¤·½èÍý¤òÈ´¤±¤Æ¤ª¤¤Þ¤¹¡£¤³¤¦¤·¤Æ¤ª¤«¤Ê¤¤¤È¡¢Èóɽ¼¨¤Î¥¨¥Õ¥§¥¯¥È¤¬Á´¤Æ°ìÅÙ¤ËÀ¸À®¤µ¤ì¤Æ¤·¤Þ¤¤¤Þ¤¹¤«¤éÊѤʤ³¤È¤Ë¤Ê¤Ã¤Á¤ã¤¤¤Þ¤¹¡£¤µ¤Æ¡¢¤³¤³¤Þ¤Ç¤Ï¤Ä¤¤¤Æ¤³¤ì¤Æ¤¤¤Þ¤¹¤«¡©
¼¡¤Ï¡¢¾å¤Î¥×¥í¥·¡¼¥¸¥ã¤ÇÀ¸À®¤·¤¿Çúȯ¥¨¥Õ¥§¥¯¥È¤ò¡¢´ÉÍý¤¹¤ë¤¿¤á¤Î¥×¥í¥·¡¼¥¸¥ã¤òºî¤ê¤Þ¤·¤ç¤¦¡£
Sub Burst_Action()
Dim L As Long
Dim Pict As Long
For L = 0 To 2
With Burst_Data(L)
If .Par > 0 Then
Select Case .Par
Case 1
Pict = 1
Case 2, 3
Pict = 2
Case 4, 5
Pict = 3
Case 6, 7
Pict = 4
Case 8
Pict = 5
Case 9
.Par = -1
End Select
.Par = .Par + 1
With UserForm1.Controls("Burst" & L + 1)
If Burst_Data(L).Par > 0 Then
.Left = Burst_Data(L).X - Burst_Size
.Top = Burst_Data(L).Y - Burst_Size
.Picture = UserForm1.Controls("Burst_s" & Pict).Picture
Else
.Visible = False
End If
End With
End If
End With
Next
End Sub
Dim L As Long
Dim Pict As Long
'¡For L = 0 To 2
With Burst_Data(L)
If .Par > 0 Then
Select Case .Par
'¢Case 1
Pict = 1
Case 2, 3
Pict = 2
Case 4, 5
Pict = 3
Case 6, 7
Pict = 4
Case 8
Pict = 5
Case 9
.Par = -1
End Select
.Par = .Par + 1
'£With UserForm1.Controls("Burst" & L + 1)
If Burst_Data(L).Par > 0 Then
'¤.Left = Burst_Data(L).X - Burst_Size
.Top = Burst_Data(L).Y - Burst_Size
.Picture = UserForm1.Controls("Burst_s" & Pict).Picture
Else
.Visible = False
End If
End With
End If
End With
Next
End Sub
¾¯¤·Ä¹¤¤¤Ç¤¹¤¬¡¢¤Ò¤È¤Ä¤Ò¤È¤Ä¸«¤Æ¤¤¤¤Þ¤·¤ç¤¦¡£
¤Þ¤º¤Ï¡¤Ç¤¹¡£
º£²ó¤Ï¤³¤³¤ÇÀë¸À¤·¤Æ¤¤¤ëÊÑ¿ô
Pict¤¬½ÅÍפÊÌò³ä¤ò²Ì¤¿¤·¤Þ¤¹¡£Pict¤ÏPicture¤òû¤¯¤·¤¿¤À¤±¤Ç¤¹¡£Íפ¹¤ë¤Ë¡¢¤¤¤Þ¤É¤Î²èÁü¤òɽ¼¨¤¹¤ë¤«¤ò¤³¤ÎÊÑ¿ô¤¬´ÉÍý¤·¤Þ¤¹¡£·«¤êÊÖ¤·½èÍý¤Ç¡¢É½¼¨¤µ¤ì¤Æ¤¤¤ë¥¨¥Õ¥§¥¯¥ÈÁ´¤Æ¤ò½èÍý¤·¤Æ¤¤¤¤Þ¤¹¡£
¤Þ¤º¤Ï
Ifʸ¤ò»È¤Ã¤ÆÍ×ÁÇPar¤ÎÃͤòÄ´¤Ù¤Þ¤¹¡££°¤è¤ê¤âÂ礤¤(£±°Ê¾å)¤Ê¤é¡¢¥¨¥Õ¥§¥¯¥È¤¬É½¼¨¤µ¤ì¤Æ¤¤¤ë¤È¤¤¤¦¤³¤È¤Ê¤Î¤Ç¡¢¤½¤ÎÀè¤Î½èÍý¤Ë¿Ê¤ß¤Þ¤¹¡£¤½¤·¤Æ¡¢¢¤Ç¼¨¤¹¤è¤¦¤Ë¡¢Í×ÁÇ
Par¤Î¸½ºß¤ÎÃͤ˱þ¤¸¤Æ¡¢Select Caseʸ¤Ç½èÍý¤òʬ´ô¤µ¤»¤Þ¤¹¡£¤³¤³¤Ç¡¢Í×ÁÇ
Par¤ÎÃͤˤè¤Ã¤Æ¡¢ºÇ½é¤ËÀë¸À¤·¤¿ÊÑ¿ôPict¤ËÂåÆþ¤¹¤ë¿ôÃͤòÊѲ½¤µ¤»¤Þ¤¹¡£¤³¤³¤ÇÊÑ¿ôPict¤Ë£±¤òÂåÆþ¤·¤Æ¤¤¤ë¤Ê¤é¡¢ºÇ½ªÅª¤Ë¤Ï£±ËçÌܤΥ¨¥Õ¥§¥¯¥È²èÁü¤¬»È¤ï¤ì¤Þ¤¹¡££³¤òÂåÆþ¤·¤Æ¤¤¤ë¤Ê¤é£³ËçÌܤβèÁü¤¬»È¤ï¤ì¤Þ¤¹¤Í¡£¤â¤·¤â¡¢Í×ÁÇ
Par¤¬£¹¤À¤Ã¤¿¾ì¹ç¤Ë¤Ï¡¢º£Å٤ϥ¨¥Õ¥§¥¯¥È¤ò¾Ã¤·¤Æ¤·¤Þ¤¦¤è¤¦¤Ë¤·¤Þ¤¹¤Î¤Ç¡¢Ä¾ÀÜPar¤Ë¡Ø -1 ¡Ù¤òÂåÆþ¤·¤Æ¤·¤Þ¤¤¤Þ¤¹¡£Select Caseʸ¤Ç¤Îʬ´ô½èÍý¤¬´°Î»¤·¤¿¤é¡¢Í×ÁÇPar¤ÎÃͤò¥×¥é¥¹£±¤·¤Þ¤¹¡£¤³¤ì¤ò¤ä¤Ã¤Æ¤ª¤«¤Ê¤¤¤È¡¢¥¨¥Õ¥§¥¯¥È¤¬¥¢¥Ë¥á¡¼¥·¥ç¥ó¤µ¤ì¤Þ¤»¤ó¡£Í×ÁÇPar¤ÎÃͤαþ¤¸¤ÆÉ½¼¨¤µ¤ì¤ë²èÁü¤òÀÚ¤êÂØ¤¨¤Æ¤¤¤ë¤Î¤Ç¡¢¥ë¡¼¥×¤¹¤ë¤´¤È¤ËËè²ó¥×¥é¥¹£±¤¹¤ë¤ï¤±¤Ç¤¹¤Í¡£¤³¤ì¤¬£¤Ç¤¹¡£¤½¤·¤Æ¼¡¤Ë¤¡£
¤³¤³¤Ç¤Ï¥æ¡¼¥¶¡¼¥Õ¥©¡¼¥à¾å¤Î¥¤¥á¡¼¥¸¥³¥ó¥È¥í¡¼¥ë¤Î½èÍý¤ò¤·¤Æ¤¤¤Þ¤¹¡£Àè¤Û¤É¤Þ¤Ç¤Ï¤¢¤¯¤Þ¤Ç¤â¥Ç¡¼¥¿¾å¤Ç¤Î½èÍý¤Ç¤·¤¿¤¬¡¢¤³¤³¤Ç¼ÂºÝ¤Ë¥³¥ó¥È¥í¡¼¥ë¤Î²èÁü¤ÎÀÚ¤êÂØ¤¨¤Ê¤É¤ò¤·¤Æ¤¤¤ë¤ï¤±¤Ç¤¹¡£
¢£¤Þ¤È¤á¡¢Á´¥³¡¼¥É·ÇºÜ
¤µ¤Æ¡¢Á°²ó¤Þ¤Ç¤ËºîÀ®¤·¤Æ¤¤¤ë¥³¡¼¥É¤Ë¡¢¾åµ¤Î¥³¡¼¥É¤òÄɲä·¤Þ¤¹¡£
¤¿¤À¤·¡¢ÎÐʸ»ú¤Çɽ¼¨¤µ¤ì¤Æ¤¤¤ëÉôʬ¤ò¤è¤¯¸«¤Æ¤â¤é¤¨¤ì¤Ð¤ï¤«¤ê¤Þ¤¹¤¬¡¢ÊÑ¿ô¤Î½é´ü²½¤Ê¤É¤âÄɲäµ¤ì¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢Ãí°Õ¤·¤Æ¤¯¤À¤µ¤¤¤Í¡£
'ɸ½à¥â¥¸¥å¡¼¥ëÀèÆ¬Éôʬ
'¢¡API¡¡Àë¸ÀDeclare Function GetTickCount Lib "kernel32" () As Long
Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
Declare Sub Sleep Lib "kernel32.dll" (ByVal dwMillsecounds As Long)
'¢£¥¥ã¥é¥¯¥¿¡¼¡¡¹½Â¤ÂÎÀë¸ÀType Chara
X As Single
Y As Single
W As Single
H As Single
Lif As Long
Typ As Long
Par As Long
End Type
'¢£¥·¥ç¥Ã¥È¡¡¹½Â¤ÂÎÀë¸ÀType Shot
X As Single
Y As Single
Vis As Boolean
Typ As Long
End Type
'¢£ÈÆÍÑ¥ª¥Ö¥¸¥§¥¯¥È¡¡¹½Â¤ÂÎÀë¸ÀType Obj
X As Single
Y As Single
W As Single
H As Single
Par As Long
End Type
'¡ü¥¥ã¥é¥¯¥¿¡¼¡¡ÊÑ¿ôÀë¸ÀPublic Player_Data As Chara
Public Enemy_Data(9) As Chara
'¡ü¥·¥ç¥Ã¥È¡¡ÊÑ¿ôÀë¸ÀPublic P_Shot_Data(4) As Shot
Public E_Shot_Data(9) As Shot
'¡üÈÆÍÑ¥ª¥Ö¥¸¥§¥¯¥È¡¡ÊÑ¿ôÀë¸ÀPublic Burst_Data(2) As Obj
'¡ý¤½¤Î¾¡¡ÊÑ¿ôÀë¸ÀPublic Shot_Interval As Long
Public Total_Count As Long
'¥²¡¼¥àÃæ¤Î¥«¥¦¥ó¥¿'¢¥Äê¿ôÀë¸ÀPublic Const Left_Key As Long = 37
'¥«¡¼¥½¥ëº¸Public Const Up_Key As Long = 38
'¥«¡¼¥½¥ë¾åPublic Const Right_Key As Long = 39
'¥«¡¼¥½¥ë±¦Public Const Down_Key As Long = 40
'¥«¡¼¥½¥ë²¼Public Const Esc_Key As Long = 27
'£Å£ó£ã¥¡¼Public Const Shot_Key As Long = 90
'£Ú¥¡¼Public Const Player_Size As Single = 9
'¥×¥ì¥¤¥ä¡¼¥¥ã¥é¥¯¥¿¡¼¤Î¼ÂºÝ¤ÎÂ礤µPublic Const Shot_Size As Single = 3
'ÃÆ³Æ¼ï¤Î¼ÂºÝ¤ÎÂ礤µPublic Const Enemy_Size As Single = 9
'Ũ¥¥ã¥é¥¯¥¿¡¼¤Î¼ÂºÝ¤ÎÂ礤µPublic Const Burst_Size As Single = 15
'Çúȯ¥¨¥Õ¥§¥¯¥È¤Î¼ÂºÝ¤ÎÂ礤µ'½é´ü²½¤òôÅö¤¹¤ë¥×¥í¥·¡¼¥¸¥ãSub Init()
With Player_Data
.X = 100
.Y = 180
.W = 3
.H = 3
.Lif = 1
.Typ = 0
.Par = 0
End With
Erase P_Shot_Data
Erase E_Shot_Data
Erase Enemy_Data
Erase Burst_Data
Shot_Interval = 0
Total_Count = 0
End Sub
'¥á¥¤¥ó¥×¥í¥»¥¹¤òôÅö¤¹¤ë¥×¥í¥·¡¼¥¸¥ãSub Main()
Dim Flg As Boolean
Dim Stm As Long
Call Init
Flg = False
Do Until Flg
Stm = GetTickCount
Total_Count = Total_Count + 1
Call Stage_Count
Call Player_Action
Call P_Shot_Action
Call Enemy_Action
Call E_Shot_Action
Call Burst_Action
DoEvents
Do
Call Sleep(1)
Loop Until GetTickCount - Stm > 30
If GetAsyncKeyState(Esc_Key) < 0 Then Flg = True
Loop
End Sub
'Ũ¥¥ã¥é¥¯¥¿¡¼¤Î½Ð¸½´ÉÍý¥×¥í¥·¡¼¥¸¥ãSub Stage_Count()
Randomize
Select Case Total_Count Mod 200
Case 0
Call Enemy_Begin(Int(Rnd * 120) + 40, -10, 1)
Case 50
Call Enemy_Begin(Int(Rnd * 120) + 40, -10, 2)
Case 100
Call Enemy_Begin(Int(Rnd * 120) + 40, -10, 3)
End Select
End Sub
'¥×¥ì¥¤¥ä¡¼¥¥ã¥é¥¯¥¿¡¼¤òôÅö¤¹¤ë¥×¥í¥·¡¼¥¸¥ãSub Player_Action()
With Player_Data
'¥¡¼ÆþÎÏȽÄê¤È°Üư½èÍý¡¡If GetAsyncKeyState(Left_Key) < 0 Then .X = .X - 3
If GetAsyncKeyState(Up_Key) < 0 Then .Y = .Y - 3
If GetAsyncKeyState(Right_Key) < 0 Then .X = .X + 3
If GetAsyncKeyState(Down_Key) < 0 Then .Y = .Y + 3
'¤Ï¤ß¤À¤·Ëɻ߽èÍý¡¡If .X - Player_Size < 0 Then .X = Player_Size
If .X + Player_Size > 200 Then .X = 200 - Player_Size
If .Y - Player_Size < 0 Then .Y = Player_Size
If .Y + Player_Size > 200 Then .Y = 200 - Player_Size
'¥·¥ç¥Ã¥ÈÀ¸À®If Shot_Interval = 0 Then
If GetAsyncKeyState(Shot_Key) < 0 Then
Call P_Shot_Begin(.X, .Y, 0)
Shot_Interval = 1
End If
Else
Shot_Interval = Shot_Interval + 1
If Shot_Interval > 7 Then Shot_Interval = 0
End If
End With
'¥Õ¥©¡¼¥à¾å¤Î¡ØPlayer¡Ù¤ò¼ÂºÝ¤Ë°Üư¤¹¤ë½èÍý¡¡With UserForm1.Player
.Left = Player_Data.X - Player_Size
.Top = Player_Data.Y - Player_Size
End With
End Sub
'¥·¥ç¥Ã¥ÈÀ¸À®¥×¥í¥·¡¼¥¸¥ãSub P_Shot_Begin(X As Single, Y As Single, Typ As Long)
Dim L As Long
For L = 0 To 4
With P_Shot_Data(L)
If Not .Vis Then
.X = X
.Y = Y
.Typ = Typ
.Vis = True
UserForm1.Controls("P_Shot" & L + 1).Visible = True
Exit For
End If
End With
Next
End Sub
'¥·¥ç¥Ã¥È°Üư´ÉÍý¥×¥í¥·¡¼¥¸¥ãSub P_Shot_Action()
Dim L As Long
Dim LL As Long
For L = 0 To 4
With P_Shot_Data(L)
If .Vis Then
.Y = .Y - 6
If .Y < -5 Then .Vis = False
For LL = 0 To 9
If Enemy_Data(LL).Lif > 0 Then
If .X - 2 < Enemy_Data(LL).X + Enemy_Data(LL).W Then
If .X + 2 > Enemy_Data(LL).X - Enemy_Data(LL).W Then
If .Y - 2 < Enemy_Data(LL).Y + Enemy_Data(LL).H Then
If .Y + 2 > Enemy_Data(LL).Y - Enemy_Data(LL).H Then
.Vis = False
With Enemy_Data(LL)
Call Burst_Begin(.X, .Y)
.Lif = 0
End With
Exit For
End If
End If
End If
End If
End If
Next
With UserForm1.Controls("P_Shot" & L + 1)
If P_Shot_Data(L).Vis Then
.Left = P_Shot_Data(L).X - Shot_Size
.Top = P_Shot_Data(L).Y - Shot_Size
Else
.Visible = False
End If
End With
End If
End With
Next
End Sub
'Ũ¥¥ã¥é¥¯¥¿¡¼À¸À®¥×¥í¥·¡¼¥¸¥ãSub Enemy_Begin(X As Single, Y As Single, Typ As Long)
Dim L As Long
For L = 0 To 9
With Enemy_Data(L)
If .Lif = 0 Then
.X = X
.Y = Y
.W = 5
.H = 5
.Typ = Typ
.Lif = 1
.Par = 0
With UserForm1.Controls("Enemy" & L + 1)
.Visible = True
Select Case Typ
Case 1
.Picture = UserForm1.Enemy_s1.Picture
Case 2, 3
.Picture = UserForm1.Enemy_s2.Picture
End Select
End With
Exit For
End If
End With
Next
End Sub
'Ũ¥¥ã¥é¥¯¥¿¡¼¤òôÅö¤¹¤ë¥×¥í¥·¡¼¥¸¥ãSub Enemy_Action()
Dim L As Long
Dim TCMOD
TCMOD = Total_Count Mod 30
For L = 0 To 9
With Enemy_Data(L)
If .Lif > 0 Then
Select Case .Typ
Case 1
.Y = .Y + 1.5
Case 2
.X = .X + 0.5
.Y = .Y + 1
Case 3
.X = .X - 0.5
.Y = .Y + 1
End Select
If .X > 220 Then .Lif = 0
If .Y > 220 Then .Lif = 0
If .X < -20 Then .Lif = 0
If .Y < -20 Then .Lif = 0
If TCMOD = 0 Then
Select Case .Typ
Case 2
.Typ = 3
Case 3
.Typ = 2
End Select
Call E_Shot_Begin(.X, .Y + 2, .Typ)
End If
End If
End With
With UserForm1.Controls("Enemy" & L + 1)
If Enemy_Data(L).Lif > 0 Then
.Left = Enemy_Data(L).X - Enemy_Size
.Top = Enemy_Data(L).Y - Enemy_Size
Else
.Visible = False
End If
End With
Next
End Sub
'Ũ¥¥ã¥é¥¯¥¿¡¼¥·¥ç¥Ã¥ÈÀ¸À®¥×¥í¥·¡¼¥¸¥ãSub E_Shot_Begin(X As Single, Y As Single, Typ As Long)
Dim L As Long
For L = 0 To 9
With E_Shot_Data(L)
If Not .Vis Then
.X = X
.Y = Y
.Typ = Typ
.Vis = True
With UserForm1.Controls("E_Shot" & L + 1)
.Visible = True
End With
Exit For
End If
End With
Next
End Sub
'Ũ¥¥ã¥é¥¯¥¿¡¼¥·¥ç¥Ã¥È°Üư´ÉÍý¥×¥í¥·¡¼¥¸¥ãSub E_Shot_Action()
Dim L As Long
Dim LL As Long
For L = 0 To 9
With E_Shot_Data(L)
If .Vis Then
Select Case .Typ
Case 1
.Y = .Y + 4.5
Case 2
.X = .X + 0.5
.Y = .Y + 3.5
Case 3
.X = .X - 0.5
.Y = .Y + 3.5
End Select
If .X > 205 Then .Vis = 0
If .Y > 205 Then .Vis = 0
If .X < -5 Then .Vis = 0
If .Y < -5 Then .Vis = 0
If .X - 2 < Player_Data.X + Player_Data.W Then
If .X + 2 > Player_Data.X - Player_Data.W Then
If .Y - 2 < Player_Data.Y + Player_Data.H Then
If .Y + 2 > Player_Data.Y - Player_Data.H Then
.Vis = False
With Player_Data
Call Burst_Begin(.X, .Y)
.Lif = 0
End With
End If
End If
End If
End If
With UserForm1.Controls("E_Shot" & L + 1)
If E_Shot_Data(L).Vis Then
.Left = E_Shot_Data(L).X - Shot_Size
.Top = E_Shot_Data(L).Y - Shot_Size
Else
.Visible = False
End If
End With
End If
End With
Next
End Sub
'Çúȯ¥¨¥Õ¥§¥¯¥ÈÀ¸À®¥×¥í¥·¡¼¥¸¥ãSub Burst_Begin(X As Single, Y As Single)
Dim L As Long
For L = 0 To 2
With Burst_Data(L)
If .Par = 0 Then
.X = X
.Y = Y
.W = Burst_Size
.H = Burst_Size
.Par = 1
UserForm1.Controls("Burst" & L + 1).Visible = True
Exit For
End If
End With
Next
End Sub
'Çúȯ¥¨¥Õ¥§¥¯¥È´ÉÍý¥×¥í¥·¡¼¥¸¥ãSub Burst_Action()
Dim L As Long
Dim Pict As Long
For L = 0 To 2
With Burst_Data(L)
If .Par > 0 Then
Select Case .Par
Case 1
Pict = 1
Case 2, 3
Pict = 2
Case 4, 5
Pict = 3
Case 6, 7
Pict = 4
Case 8
Pict = 5
Case 9
.Par = -1
End Select
.Par = .Par + 1
With UserForm1.Controls("Burst" & L + 1)
If Burst_Data(L).Par > 0 Then
.Left = Burst_Data(L).X - Burst_Size
.Top = Burst_Data(L).Y - Burst_Size
.Picture = UserForm1.Controls("Burst_s" & Pict).Picture
Else
.Visible = False
End If
End With
End If
End With
Next
End Sub
'ɸ½à¥â¥¸¥å¡¼¥ë¤Ï¤³¤³¤Þ¤Ç'¤³¤³¤«¤é²¼¤Ï¥Õ¥©¡¼¥à¥â¥¸¥å¡¼¥ë¤Ëµ½Ò'¥³¥Þ¥ó¥É¥Ü¥¿¥ó¤Î¥¯¥ê¥Ã¥¯¥¤¥Ù¥ó¥ÈPrivate Sub Com_Start_Click()
Com_Start.Enabled = False
Call Main
Unload UserForm1
End Sub
'¥æ¡¼¥¶¡¼¥Õ¥©¡¼¥à¤Î¥¯¥¨¥ê¥¯¥í¡¼¥¹¥¤¥Ù¥ó¥ÈPrivate Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
End
End Sub
'¥æ¡¼¥¶¡¼¥Õ¥©¡¼¥à¤Î¥¤¥Ë¥·¥ã¥é¥¤¥º¥¤¥Ù¥ó¥ÈPrivate Sub UserForm_Initialize()
UserForm1.Width = 220
End Sub
¤µ¤Æ¡¢º£²ó¤Î¥Ý¥¤¥ó¥È¤È¤Ê¤ë¤Î¤Ï¡¢²«¿§¤¤Ê¸»ú¤Çɽ¼¨¤µ¤ì¤Æ¤¤¤ëÉôʬ¤Ç¤¹¡£
º£²óºîÀ®¤·¤¿Çúȯ¥¨¥Õ¥§¥¯¥È¤ÎÀ¸À®¥×¥í¥·¡¼¥¸¥ã¤ò¡¢¾×ÆÍȽÄê¤ÎÃæ¤«¤é¸Æ¤Ó½Ð¤¹¤è¤¦¤Ë¤·¤Þ¤¹¡£
Á°²ó¤Þ¤Ç¤Ï¡¢¥×¥ì¥¤¥ä¡¼¥¥ã¥é¥¯¥¿¡¼¤¬¥·¥ç¥Ã¥È¤ËÈïÃÆ¤·¤¿¤È¤¤Ë¤Ï¥á¥Ã¥»¡¼¥¸¤òɽ¼¨¤·¤Æ¤¤¤Þ¤·¤¿¡£º£²ó¤ÏÇúȯ¤Î¥¨¥Õ¥§¥¯¥È¤òÀ¸À®¤¹¤ë¤è¤¦¤ËÊѹ¹¤·¤¿¤Î¤Ç¡¢Å¨¤Î¥·¥ç¥Ã¥È¤ËÅö¤¿¤Ã¤Æ¤·¤Þ¤¦¤È¡¢¤½¤³¤ËÇúȯ¤Î¥¨¥Õ¥§¥¯¥È¤¬È¯À¸¤¹¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¤Ï¤º¤Ç¤¹¡£
Ũ¥¥ã¥é¥¯¥¿¡¼¤Ë¥×¥ì¥¤¥ä¡¼¤Î¥·¥ç¥Ã¥È¤¬¥Ò¥Ã¥È¤·¤¿¾ì¹ç¤âƱÍͤǤ¹¡£Å¨¤¬»à¤ó¤À¤È¤¤Ë¡¢¤½¤³¤ËÇúȯ¤Î¥¨¥Õ¥§¥¯¥È¤¬È¯À¸¤·¤Þ¤¹¡£
¤³¤ì¤Ç¡¢¤«¤Ê¤ê¥ê¥¢¥ë¤Ë¤Ê¤Ã¤¿¤Î¤Ç¤Ï¤Ê¤¤¤Ç¤·¤ç¤¦¤«¡£
±é½Ð¤ÎÂçÀÚ¤µ¤¬¤ï¤«¤ë¤È»×¤¤¤Þ¤¹¡£
ÂçÀڤʤΤϡ¢¥¨¥Õ¥§¥¯¥È¤Ç¤¢¤Ã¤Æ¤â¡¢¤½¤Î¹Í¤¨Êý¤Ï¥¥ã¥é¥¯¥¿¡¼¤ÈƱ¤¸¤È¤¤¤¦ÅÀ¤Ç¤¹¡£
¥¥ã¥é¥¯¥¿¡¼¤Ç¤¢¤ì¡¢¥·¥ç¥Ã¥È¤Ç¤¢¤ì¡¢¤Þ¤¿¡¢¥¨¥Õ¥§¥¯¥È¤Ç¤¢¤Ã¤Æ¤â¡¢¥×¥í¥·¡¼¥¸¥ã¤òÉôÉʲ½¤·¤Æ¡ØÀ¸À®¡Ù¤È¡Ø°Üư¤ä´ÉÍý¡Ù¤òÊÌ¡¹¤Ë½èÍý¤¹¤ë¤³¤È¤Ë¤ÏÊѤï¤ê¤¢¤ê¤Þ¤»¤ó¡£
¤³¤¦¤·¤ÆÉôÉʲ½¤µ¤ì¤¿¹½Â¤¤Ë¤Ê¤Ã¤Æ¤¤¤ì¤Ð¡¢¤¦¤Þ¤¯¤¤¤«¤Ê¤«¤Ã¤¿¤È¤¤Ë¡¢¤É¤³¤¬¸¶°ø¤«¤ï¤«¤ê¤ä¤¹¤¤¤Ç¤¹¡£¤À¤ó¤À¤óÁ´ÂΤι½Â¤¤¬Ê£»¨¤Ë¤Ê¤Ã¤Æ¤¤Æ¤Ï¤¤¤Þ¤¹¤¬¡¢ºÙ¤«¤¯¶èÀڤäƹͤ¨¤ì¤Ð¤½¤ì¤Û¤ÉÆñ¤·¤¯¤Ï¤¢¤ê¤Þ¤»¤ó¡£¹Í¤¨Êý¤â»÷¤Æ¤¤¤Þ¤¹¤·¤Í¡£
Äü¤á¤º¤Ë¡¢¤¬¤ó¤Ð¤Ã¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£
¥µ¥ó¥×¥ë¥À¥¦¥ó¥í¡¼¥É¡¡¢Í¡¡¥³¥Á¥é¤è¤ê¥À¥¦¥ó¥í¡¼¥É¤Ç¤¤Þ¤¹¡£¡ÊÊÌ´Û¡Ë
¢£³Ê¸À
¥¨¥Õ¥§¥¯¥È¤â¥¥ã¥é¥¯¥¿¡¼¤âÃæ¿È¤Ï¤Û¤È¤ó¤ÉƱ¤¸
¥Ñ¥é¥á¡¼¥¿¤ò¤¦¤Þ¤¯»È¤Ã¤Æ¥¢¥Ë¥á¡¼¥·¥ç¥ó¤µ¤»¤ë
¤«¤Ã¤³¤¤¤¤¥¨¥Õ¥§¥¯¥È¤ò¼ÂÁõ¤µ¤»¤Þ¤·¤ç¤¦¡£










