£Ã£è£á£ð£ô£å£ò.£´£· [ ¥·¥å¡¼¥Æ¥£¥ó¥°¥²¡¼¥à£·¡§¥·¥ç¥Ã¥È¤ò·â¤Ä¢ ]
¢£¥·¥ç¥Ã¥È¤Ï¥¥ã¥é¥¯¥¿¡¼
¤µ¤Æ¡¢Á°²ó¤Î³¤¤Ç¤¹¡£º£²ó¤ÎÆâÍÆ¤ò¤·¤Ã¤«¤ê½¬ÆÀ¤Ç¤¤ì¤Ð¡¢¥×¥ì¥¤¥ä¡¼¥¥ã¥é¥¯¥¿¡¼¤¬¥·¥ç¥Ã¥È¤ò·â¤Æ¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£¤³¤ì¤Ç¤«¤Ê¤ê¥²¡¼¥à¤é¤·¤¯¤Ê¤ê¤Þ¤¹¡£³Ú¤·¤ß¤Ç¤¹¤Í¡£
¥·¥ç¥Ã¥È¤ò·â¤Ä¤Î£²²óÌܤȤʤ뺣²ó¤Ï¡¢¥·¥ç¥Ã¥È¤Î¡ØÀ¸À®¤È°Üư¡Ù¤Ë¤Ä¤¤¤Æ¹Í¤¨¤Æ¤ß¤Þ¤¹¡£
¥×¥ì¥¤¥ä¡¼¥¥ã¥é¥¯¥¿¡¼¤òºîÀ®¤¹¤ëºÝ¤Ë¤Ï¡¢¥æ¡¼¥¶¡¼¤Î¥¡¼ÆþÎϤò¼õ¤±¼è¤Ã¤Æ¡¢¥¥ã¥é¥¯¥¿¡¼¤¬°Üư¤¹¤ë¤è¤¦¤Ë¤·¤Þ¤·¤¿¤Í¡£¥²¡¼¥à¤¬¹Ô¤ï¤ì¤Æ¤¤¤ëºÇÃæ¡¢¥×¥ì¥¤¥ä¡¼¤Î¥¡¼ÆþÎϤˤè¤Ã¤Æ°Üư¤¹¤ëÊý¸þ¤¬·è¤Þ¤ë¤ï¤±¤Ç¤¹¤«¤é¡¢¤É¤Î¤è¤¦¤Ê°Üư¤ò¹Ô¤¦¤«¤Ï¾ï¤Ë°ìÄꤷ¤Æ¤¤¤Ê¤¤¤ï¤±¤Ç¤¹¡£
¤³¤ì¤ËÂФ·¤Æ¥·¥ç¥Ã¥È¤Î¾ì¹ç¤Ï¡¢°ìÅÙȯ¼Í¤µ¤ì¤¿¤é¤½¤Î¤¢¤È¥×¥ì¥¤¥ä¡¼¤Î¥¡¼Áàºî¤Ê¤É¤Ë±Æ¶Á¤µ¤ì¤ëɬÍפϤ¢¤ê¤Þ¤»¤ó¤Í¡£Ã±½ã¤Ë·è¤á¤é¤ì¤¿Æ°¤¤ò±ä¡¹¤È³¤±¤ì¤Ð¤¤¤¤¤À¤±¤Ç¤¹¡£
¤Ç¤¹¤«¤é¡¢¹Í¤¨Êý¤È¤·¤Æ¤Ï¡ØÆ°¤¤¬°ìÄê¤Îµ¬Â§¤Ë¤è¤Ã¤ÆÄêµÁ¤µ¤ì¤¿¥¥ã¥é¥¯¥¿¡¼¡Ù¤ÈƱ¤¸¤Ç¤¹¡£¥×¥ì¥¤¥ä¡¼¥¥ã¥é¥¯¥¿¡¼¤ò°Üư½èÍý¤·¤¿¤È¤¤ÈƱ¤¸¤è¤¦¤Ë¡¢¥·¥ç¥Ã¥È¤ò°ì¼ï¤Î¥¥ã¥é¥¯¥¿¡¼¤È¤·¤Æ¹Í¤¨¤ì¤Ð¡¢ÊÌÃÊÆñ¤·¤¤¤³¤È¤â¤¢¤ê¤Þ¤»¤ó¤Í¡£
¥·¥ç¥Ã¥È¤Ï¾å¤Ç½ñ¤¤¤¿¤è¤¦¤Ë¡¢°ì¼ï¤Î¥¥ã¥é¥¯¥¿¡¼¤È¤·¤Æ¹Í¤¨¤Þ¤¹¡£
¤½¤³¤Ç¡¢¥×¥ì¥¤¥ä¡¼¥¥ã¥é¥¯¥¿¡¼¤òºîÀ®¤·¤¿¤È¤¤ÈƱ¤¸¤è¤¦¤Ë¡¢¤Þ¤º¤Ï¥·¥ç¥Ã¥ÈÀìÍѤι½Â¤ÂΤòÍѰդ·¤Þ¤·¤ç¤¦¡£
¤³¤Î¹½Â¤ÂΤϡ¢Å¨¥¥ã¥é¥¯¥¿¡¼¤Î·â¤Ä¥·¥ç¥Ã¥È¤Ë¤â»È¤¨¤ë¤è¤¦¤Ë¤·¤Æ¤¤¤Þ¤¹¡£¤Þ¤¡¡¢ºÙ¤«¤¤¤³¤È¤Ï»È¤¤¤Ê¤¬¤éÀâÌÀ¤·¤Æ¤¤¤¤Þ¤¹¡£
¼¡¤Ë¡¢¤³¤Î¹½Â¤ÂΤò»È¤Ã¤Æ¡¢¥·¥ç¥Ã¥ÈÍѤÎÇÛÎóÊÑ¿ô¤òÍѰդ·¤Þ¤¹¡£
ÊÑ¿ô¤Î·¿¤¬¡Ø
Á°²ó¤â½ñ¤¤¤¿¤è¤¦¤Ë¡¢º£²ó¤Ï¥·¥ç¥Ã¥È¤ò£µÈ¯·â¤Æ¤ë¤è¤¦¤Ë¤·¤Þ¤¹¤Î¤Ç¡¢ÇÛÎó¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹¤Î»ØÄ꤬¡Ø
¤³¤ì¤é¤ò¥â¥¸¥å¡¼¥ë¤ÎÀèÆ¬Éôʬ¤ËÄɲ乤ì¤Ð¡¢²¼½àÈ÷¤ÏOK¤Ç¤¹¡£
¢£Äɲä·¤¿¤â¤Î¤Ï½é´ü²½¤¹¤ë
¤µ¤Æ¡¢¾åµ¤Î¤è¤¦¤Ë¡¢²¿¤«°·¤¦¤â¤Î¤¬Áý¤¨¤ë¤È(º£²ó¤Ç¸À¤¨¤Ð¥·¥ç¥Ã¥È)¡¢ÊÑ¿ô¤ä¹½Â¤ÂΡ¢Äê¿ô¤Ê¤É¤¬¿·¤·¤¯Áý¤¨¤Æ¤¤¤¤Þ¤¹¤Í¡£
¤³¤³¤Ç˺¤ì¤¬¤Á¤Ê¤Î¤¬¡¢¡ØÄɲä·¤¿ÊÑ¿ô¤Ê¤É¤Î½é´ü²½½èÍý¡Ù¤Ç¤¹¡£»ä¤Ï¤³¤ì·ë¹½¤ä¤Ã¤Æ¤·¤Þ¤¦¤ó¤Ç¤¹¡£
¤½¤³¤Ç¡¢º£²ó¤Î¥·¥ç¥Ã¥È´ØÏ¢¤ÇÁý¤¨¤¿ÊÑ¿ô¤Ê¤É¤Ï¡¢½é´ü²½½èÍý¤Ç¤·¤Ã¤«¤ê¥ê¥»¥Ã¥È¤¹¤ë¤è¤¦¤Ë¤·¤Æ¤ª¤¤Þ¤·¤ç¤¦¡£¥×¥ì¥¤¥ä¡¼¥¥ã¥é¥¯¥¿¡¼¤Î¹½Â¤ÂΤò½é´ü²½¤·¤Æ¤¤¤ë¡Ø
¤¢¤Î¥×¥í¥·¡¼¥¸¥ã¤ÎÃæ¤Ë¡¢º£²óÁý¤¨¤¿ÇÛÎó¤äÊÑ¿ô¤ò½é´ü²½¤¹¤ë½èÍý¤òÄɲä·¤Þ¤¹¡£
º£²óÄɲ乤ë¤Ù¤¤Ê¤Î¤Ï¡¢¡Ø
ÎФÎʸ»ú¤Çɽ¼¨¤µ¤ì¤Æ¤¤¤ëÉôʬ¤¬¡¢º£²ó¿·¤·¤¯Äɲ䵤줿Éôʬ¤Ç¤¹¡£
¤Þ¤º¡¢ÎÐʸ»ú¤Î£±¹ÔÌÜ¡¢¡Ø
¤³¤³¤ÇÅо줹¤ë¡Ø
¤³¤ì¤é¤Îˡ§¤Ë¤·¤¿¤¬¤Ã¤Æ¡¢ÇÛÎó¤ÎÁ´¤Æ¤ÎÍ×ÁǤ¬½é´ü²½¤µ¤ì¤Þ¤¹¡£
¤³¤ì¤Ç½é´ü²½¤ÏOK¤Ç¤¹¡£
¢£¥·¥ç¥Ã¥È¤ÎÀ¸À®
¥·¥ç¥Ã¥È¤Ë´Ø¤·¤Æ¤Ï¡¢¡ØÀ¸À®¡Ù¤È¡Ø°Üư¡Ù¤òʬ¤±¤Æ´ÉÍý¤¹¤ë¤è¤¦¤Ë¤·¤Þ¤¹¡£¤³¤ì¤Ï¥·¥ç¥Ã¥È¤ÎÃÂÀ¸¤«¤é¾ÃÌǤޤǤò¸«¤Æ¤ß¤ë¤È¤ï¤«¤ê¤ä¤¹¤¤¤È»×¤¤¤Þ¤¹¡£
¾å¤Î´Ê°×¥Õ¥í¡¼¤ò¸«¤ë¤È¤ï¤«¤ê¤Þ¤¹¤¬¡¢¥×¥ì¥¤¥ä¡¼¥¥ã¥é¥¯¥¿¡¼½èÍý¤ÎÃæ¤Ç¸Æ¤Ó½Ð¤µ¤ì¤ë¤Î¤Ï¡¢¡Ø¥·¥ç¥Ã¥ÈÀ¸À®¥×¥í¥·¡¼¥¸¥ã¡Ù¤Ç¤¹¡£¤½¤·¤Æ¡¢°ìÅÙ¥·¥ç¥Ã¥È¤¬À¸À®¤µ¤ì¤¿¤é¡¢¤¢¤È¤Ï¡Ø¥·¥ç¥Ã¥È°Üư¥×¥í¥·¡¼¥¸¥ã¡Ù¤¬¥·¥ç¥Ã¥È¤Î¾õÂÖ¤ò´ÉÍý¤·¤Þ¤¹¡£
Á°²óºÜ¤»¤¿¡¢¥×¥ì¥¤¥ä¡¼¥¥ã¥é¥¯¥¿¡¼¤Î¥·¥ç¥Ã¥È¤Ë´Ø¤¹¤ë½èÍý¤ÎÃæ¤Ç¡¢¡Ø
¤³¤ì¤¬¡Ø¥·¥ç¥Ã¥ÈÀ¸À®¥×¥í¥·¡¼¥¸¥ã¡Ù¤Ë¤Ê¤ê¤Þ¤¹¡£¤½¤Î»ÅÁȤߤò¾Ü¤·¤¯¸«¤Æ¤ß¤Þ¤·¤ç¤¦¡£
¤Þ¤º¡¢»Ï¤á¤ËÍý²ò¤·¤Æ¤ª¤¯¤Ù¤¤Ï¡¢¤³¤Î¥×¥í¥·¡¼¥¸¥ã¤¬£³¤Ä¤Î°ú¿ô¤ò¼è¤ë¡¢¤È¤¤¤¦¤³¤È¤Ç¤¹¡£°ìÈֺǽ顢¥×¥í¥·¡¼¥¸¥ã¤Î̾Á°¤Ë³¤±¤Æ¡Ø
°ú¿ô¤ò¼è¤ë¥×¥í¥·¡¼¥¸¥ã¤È¤¤¤¦¤³¤È¤Ï¡¢¤³¤Î¥×¥í¥·¡¼¥¸¥ã¤ò¸Æ¤Ó½Ð¤¹¤È¤¤ËÃͤò¥»¥Ã¥È¤Ë¤·¤Æ¸Æ¤Ó½Ð¤µ¤Ê¤¯¤Æ¤Ï¤¤¤±¤Þ¤»¤ó¡£¤³¤Î°ú¿ô¤Î»ÅÁȤߤϡ¢¤¸¤ã¤ó¤±¤ó¥²¡¼¥à¤òºîÀ®¤·¤¿¤È¤¤Ë¤â²òÀ⤷¤Þ¤·¤¿¤Í(Chapter20¤ò»²¾È)¡£
¤³¤ì¤¬Íý²ò¤Ç¤¤Æ¤¤¤Ê¤¤¤È¡¢Â¿Ê¬¤³¤Î¸å¤Î²òÀâ¤Ë¤Ä¤¤¤Æ¤³¤ì¤Þ¤»¤ó¡£¤è¤¯¤ï¤«¤é¤Ê¤¤¿Í¤Ï¤è¤¯Éü½¬¤·¤Æ¤ª¤¤Þ¤·¤ç¤¦¡£
¤µ¤Æ¡¢Â³¤¤¤Æ¤Ï¥×¥í¥·¡¼¥¸¥ã¤ÎÃæ¿È¤Ç¤¹¡£
¤³¤Î¥×¥í¥·¡¼¥¸¥ã¤Ç¤Ï¡¢
¤³¤Î¹½Â¤ÂΤÎÍ×ÁǤÎÃæ¤Ë¡Ø
¤µ¤Æ¡¢¡¤ÎÉôʬ¤Ç¡¢¸«¤¨¤Æ¤¤¤Ê¤¤¥·¥ç¥Ã¥È¤¬¸«¤Ä¤«¤Ã¤¿¤é¥·¥ç¥Ã¥È¤òÀ¸À®¤·¤Þ¤¹¡£
¥·¥ç¥Ã¥È¤ÎÀ¸À®¤Ç¤Ï¡¢¹½Â¤ÂΤγÆÍ×ÁǤˡ¢½çÈÖ¤ËÃͤò¥»¥Ã¥È¤·¤Æ¤¤¤¤Þ¤¹¡£
¡Ø
¥×¥í¥·¡¼¥¸¥ã¤Î¸Æ¤Ó½Ð¤·¤ÈƱ»þ¤Ë°ú¿ô¤È¤·¤Æ¼õ¤±¼è¤Ã¤¿¥Ç¡¼¥¿¤ò¡¢¹½Â¤ÂΤÎÍ×ÁǤËÂåÆþ¤·¤Æ¤¤¤ë¤Î¤Ç¤¹¤Í¡£
ƱÍͤˡ¢Í×ÁÇ
¤½¤·¤Æ¡¢£¤Î¤È¤³¤í¤Ç¤Ï¡¢¼ÂºÝ¤Ë¥æ¡¼¥¶¡¼¥Õ¥©¡¼¥à¾å¤Î¥¤¥á¡¼¥¸¥³¥ó¥È¥í¡¼¥ë¤ò¸«¤¨¤ë¤è¤¦¤Ë¤·¤Æ¤¤¤Þ¤¹¡£
¡Ø
¥æ¡¼¥¶¡¼¥Õ¥©¡¼¥à¤ËÇÛÃÖ¤·¤¿¡¢¥·¥ç¥Ã¥ÈÍѤΥ¤¥á¡¼¥¸¥³¥ó¥È¥í¡¼¥ë¤Ï¡¢¤½¤Î̾Á°¤¬¡Ø
¤³¤³¤Ç¤Ï¡¢¡Ø
¤½¤·¤ÆºÇ¸å¡¢£±¤Ä¥·¥ç¥Ã¥È¤ò·â¤Æ¤ì¤Ð½¼Ê¬¤Ê¤Î¤Ç¡¢¤½¤ì°Ê¹ß¤Î·«¤êÊÖ¤·½èÍý¤ò¹Ô¤ï¤Ê¤¤¤è¤¦¤Ë¡Ø
¤³¤³¤Þ¤Ç½ÐÍè¤ì¤Ð¡¢¥·¥ç¥Ã¥È¤ÎÀ¸À®¤Ë¤Ä¤¤¤Æ¤ÏOK¤Ç¤¹¡£
¤¢¤È¤Ï¡¢¥×¥ì¥¤¥ä¡¼¥¥ã¥é¥¯¥¿¡¼¤Î½èÍý¤ÎÃæ¤Ç¡¢¥·¥ç¥Ã¥È¤ò·â¤Ä¤Ù¤¤À¤ÈȽÃǤµ¤ì¤¿¾ì¹ç¤Ë¤³¤Î¥×¥í¥·¡¼¥¸¥ã¤ò¸Æ¤Ó½Ð¤¹¤è¤¦¤Ë¤¹¤ì¤Ð¤¤¤¤¤ï¤±¤Ç¤¹¡£¤³¤ì¤ÏºÇ¸å¤Ë¤Þ¤È¤á¤ÆÁ´ÂΤΥ³¡¼¥É¤òºÜ¤»¤Þ¤¹¤Î¤Ç¡¢¤½¤³¤Ç¾Ü¤·¤¯²òÀ⤷¤Þ¤¹¤Í¡£
¢£¥·¥ç¥Ã¥È¤Î°Üư
¤µ¤Æ¡¢¤Á¤ç¤Ã¤ÈŤ¤¤Ç¤¹¤¬¡¢¤¬¤ó¤Ð¤Ã¤Æ¥·¥ç¥Ã¥È´ØÏ¢¤Î½èÍý¤òºî¤Ã¤Æ¤·¤Þ¤¤¤Þ¤·¤ç¤¦¡£
¼¡¤Ï¡¢¥·¥ç¥Ã¥È¤Î°Üư½èÍý¤Ë¤Ä¤¤¤Æ¤Ç¤¹¡£
¡¤«¤é½çÈ֤˸«¤Æ¤¤¤¤Þ¤·¤ç¤¦¡£
¤Þ¤º¤Ï¡¢¥·¥ç¥Ã¥È¼«ÂΤ¬º£¸½ºß¸«¤¨¤Æ¤¤¤ë¤Î¤«¤É¤¦¤«¡¢
¤½¤·¤Æ¡¢¤³¤³¤Ç¸«¤¨¤Æ¤¤¤ë¤ÈȽÃǤµ¤ì¤¿¾ì¹ç¤Ë¤Ï¡¢¢¤Ç¼¨¤¹¤è¤¦¤Ë¡¢¥Ç¡¼¥¿¾å¤Ç¤ÎºÂɸ¤ò¾åÊý¸þ¤Ë°Üư¤·¤Æ¤¤¤Þ¤¹¡£½Ä°ÌÃÖ¤òɽ¤¹Í×ÁÇ
ºÂɸ°Üư¤¬¤Ç¤¤¿¤é¡¢¼¡¤Ë²èÌ̾夫¤é¾Ã¤¨¤Æ¤·¤Þ¤Ã¤Æ¤¤¤Ê¤¤¤«È½ÃǤ·¤Æ¤¤¤Þ¤¹¡£¤½¤ì¤¬£¤ÎÉôʬ¡£¥Õ¥ì¡¼¥à¤Î°ìÈÖ¾å¤Îü¤¬0¤ËÁêÅö¤¹¤ë¤ï¤±¤Ç¤¹¤«¤é¡¢½Ä°ÌÃÖ¤¬¥Þ¥¤¥Ê¥¹¤Î¿ôÃͤˤʤäƤ·¤Þ¤Ã¤Æ¤¤¤¿¤é¥·¥ç¥Ã¥È¤Ï´°Á´¤Ë²èÌ̾夫¤é¾Ã¤¨¤Æ¤¤¤ë¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£
¤½¤ó¤Ê¤È¤¤Ï¡¢¸«¤¨¤Æ¤¤¤ë¤«¤É¤¦¤«¤òÄêµÁ¤·¤Æ¤¤¤ëÍ×ÁÇ
¤½¤Î¸å¡¢¼ÂºÝ¤Î¥æ¡¼¥¶¡¼¥Õ¥©¡¼¥à¾å¤Î¥³¥ó¥È¥í¡¼¥ë¤ò¡¢º£·×»»¤·¤¿ºÂɸ¾å¤Ë°Üư¤µ¤»¤Þ¤¹¡£¤³¤ì¤Ï¥×¥ì¥¤¥ä¡¼¥¥ã¥é¥¯¥¿¡¼¤Î¤È¤¤ÈƱ¤¸¤Ç¤¹¤Í¡£
¹½Â¤ÂΤÇÄêµÁ¤·¤¿ÊÑ¿ô¤Î¥Ç¡¼¥¿¤ÇÁ´¤Æ¤Î·×»»¤ò¹Ô¤Ã¤Æ¤·¤Þ¤¤¡¢¤½¤ì¤é¤Î·ë²Ì¤ò»È¤Ã¤Æ¥³¥ó¥È¥í¡¼¥ë¤Î°ÌÃÖ¤ä
¤ä¤Ã¤Æ¤¤¤ë¤³¤È¤Ï¥×¥ì¥¤¥ä¡¼¥¥ã¥é¥¯¥¿¡¼¤Î¤È¤¤È¤Û¤È¤ó¤ÉƱ¤¸¤Ç¤¹¡£
¹½Â¤ÂΤÇÄêµÁ¤·¤¿Í×ÁÇ¡Ø
¢£¤³¤³¤Þ¤Ç¤ÎÁ´¥³¡¼¥É
¤½¤ì¤Ç¤Ï¡¢Á°²ó¤Èº£²ó¤Ç²òÀ⤷¤¿¡¢¥·¥ç¥Ã¥È¤Ë´Ø¤¹¤ë¥³¡¼¥É¤òÁ´¤Æ¼è¤êÆþ¤ì¤Æ¤ß¤Þ¤·¤ç¤¦¡£
¥×¥ì¥¤¥ä¡¼¥¥ã¥é¥¯¥¿¡¼¤Î»þ¤ËºÜ¤»¤¿¥³¡¼¥É¤è¤ê¡¢Äɲ䵤줿Éôʬ¤ÏÎФÎʸ»ú¤Çɽ¼¨¤¹¤ë¤è¤¦¤Ë¤·¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢Å¬µ¹Äɲ䷤ƤߤƤ¯¤À¤µ¤¤¡£
¤³¤³¤Þ¤Ç¤ÎÁ´¥³¡¼¥É
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
Public Player_Data As Chara
Public P_Shot_Data(4) As Shot
Public Shot_Interval 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
Sub Init()
With Player_Data
.X = 100
.Y = 180
.W = 0
.H = 0
.Lif = 1
.Typ = 0
.Par = 0
End With
Erase P_Shot_Data
Shot_Interval = 0
End Sub
Sub Main()
Dim Flg As Boolean
Dim Stm As Long
Call Init
Flg = False
Do Until Flg
Stm = GetTickCount
Call Player_Action
Call P_Shot_Action
DoEvents
Do
Call Sleep(1)
Loop Until GetTickCount - Stm > 30
If GetAsyncKeyState(Esc_Key) < 0 Then Flg = True
Loop
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
For L = 0 To 4
With P_Shot_Data(L)
If .Vis Then
.Y = .Y - 6
If .Y < -5 Then .Vis = False
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
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
¤¦¡Á¤ó¡Ä¡ÄŤ¤¡£
ÎФÎʸ»ú¤Çɽ¼¨¤µ¤ì¤Æ¤¤¤ëÉôʬ¤¬¡¢º£²óÄɲ䵤줿¥³¡¼¥É¤Ç¤¹¡£¤½¤³¤ËÍ×ÅÀ¤ò¹Ê¤Ã¤Æ¹Í¤¨¤ë¤È¡¢¤À¤¤¤¿¤¤¤ï¤«¤ë¤Î¤Ç¤Ï¤Ê¤¤¤Ç¤·¤ç¤¦¤«¡£
ÆÃ¤ËÆñ¤·¤¤¤È»×¤ï¤ì¤ë¤Î¤¬¡¢¿å¿§¤Îʸ»ú¤Çɽ¼¨¤µ¤ì¤Æ¤¤¤ëÉôʬ¡¢¥·¥ç¥Ã¥ÈÀ¸À®¥×¥í¥·¡¼¥¸¥ã¤Î¸Æ¤Ó½Ð¤·¤Ç¤¹¡£
¥·¥ç¥Ã¥È¤ÎÀ¸À®¤òôÅö¤¹¤ë¡Ø
¤Ç¤¹¤«¤é¡¢¥×¥ì¥¤¥ä¡¼¥¥ã¥é¥¯¥¿¡¼¤Î¸½ºß¤ÎºÂɸ¤ò°ú¿ô¤È¤·¤ÆÅϤ·¤Æ¡¢¤½¤Î¾ì½ê¤Ë¥·¥ç¥Ã¥È¤¬À¸À®¤µ¤ì¤ë¤è¤¦¤Ë¤¹¤ë¤Î¤Ç¤¹¤Í¡£
¥×¥ì¥¤¥ä¡¼¥¥ã¥é¥¯¥¿¡¼¤¬¡¢¡Ø
¤½¤¦¤¹¤ë¤È
¤Á¤Ê¤ß¤Ë¡¢º£²ó¤Ï°ú¿ô¤È¤·¤ÆÅϤ¹¡Ø
¤É¤Î¥×¥í¥·¡¼¥¸¥ã¤«¤é¡¢¤É¤Î¥×¥í¥·¡¼¥¸¥ã¤¬¸Æ¤Ó½Ð¤µ¤ì¤Æ¤¤¤ë¤Î¤«¡¢¤½¤³¤ò¤·¤Ã¤«¤êÍý²ò¤·¤Æ¤¤¤ì¤Ð¡¢¤ª¤Î¤º¤È¤ï¤«¤ë¤Ï¤º¤Ç¤¹¡£¾Ç¤é¤º¡¢»þ·ÏÎó¤òÀµ¤·¤¯Çİ®¤·¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¤Í¡£
¤«¤Ê¤êŤ«¤Ã¤¿¤Ç¤¹¤¬¡¢¤³¤ì¤Ç¥×¥ì¥¤¥ä¡¼¥¥ã¥é¥¯¥¿¡¼¤¬¥·¥ç¥Ã¥È¤òȯ¼Í¤Ç¤¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¤Ï¤º¤Ç¤¹¡£¥æ¡¼¥¶¡¼¥Õ¥©¡¼¥à¤ò¼Â¹Ô¤·¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£¥¡¼¥Ü¡¼¥É¤ÎZ¥¡¼¤ò²¡¤¹¤È¡¢¥×¥ì¥¤¥ä¡¼¥¥ã¥é¥¯¥¿¡¼¤¬¥·¥ç¥Ã¥È¤òȯ¼Í¤¹¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¤Ï¤º¤Ç¤¹¡£
¤¦¤Þ¤¯¤¤¤«¤Ê¤¤¤È¤¤¤¦¿Í¤Ï¡¢¤æ¤Ã¤¯¤ê¤Ç¤â¤¤¤¤¤Ç¤¹¤«¤é¡¢¤Ò¤È¤Ä¤Ò¤È¤Ä¥¨¥é¡¼¤ò¤Ä¤Ö¤·¤Æ¤¤¤¤Þ¤·¤ç¤¦¡£¥¨¥é¡¼¤¬µ¯¤¤Ê¤¤¤Î¤Ë¤¦¤Þ¤¯¤¤¤«¤Ê¤¤¾ì¹ç¤Ï¡¢¤É¤³¤«¤·¤é¤ÇÀßÄê¤ò´Ö°ã¤¨¤Æ¤¤¤ë¤Ï¤º¤Ç¤¹¡£ºÇ½é¤«¤é¤Ò¤È¤Ä¤Ò¤È¤Ä¤³¤Ê¤·¤Æ¤¤¤±¤Ð¡¢¤¤Ã¤È¤¦¤Þ¤¯¤¤¤¯¤Ï¤º¤Ç¤¹¤«¤é¤¬¤ó¤Ð¤Ã¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£
¥µ¥ó¥×¥ë¥À¥¦¥ó¥í¡¼¥É¡¡¢Í¡¡¥³¥Á¥é¤è¤ê¥À¥¦¥ó¥í¡¼¥É¤Ç¤¤Þ¤¹¡£¡ÊÊÌ´Û¡Ë
¢£³Ê¸À
½é´ü²½¤ò˺¤ì¤º¤Ë
¥·¥ç¥Ã¥È¤ÎÀ¸À®¤È°Üư¤Ïʬ¤±¤Æ¹Í¤¨¤ë
¤À¤¤¤ÖÊ£»¨¤Ë¤Ê¤Ã¤Æ¤¤Þ¤·¤¿¤Í¡£¾Ç¤ê¤Ï¶ØÊª¤Ç¤¹¡£
¤µ¤Æ¡¢Á°²ó¤Î³¤¤Ç¤¹¡£º£²ó¤ÎÆâÍÆ¤ò¤·¤Ã¤«¤ê½¬ÆÀ¤Ç¤¤ì¤Ð¡¢¥×¥ì¥¤¥ä¡¼¥¥ã¥é¥¯¥¿¡¼¤¬¥·¥ç¥Ã¥È¤ò·â¤Æ¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£¤³¤ì¤Ç¤«¤Ê¤ê¥²¡¼¥à¤é¤·¤¯¤Ê¤ê¤Þ¤¹¡£³Ú¤·¤ß¤Ç¤¹¤Í¡£
¥·¥ç¥Ã¥È¤ò·â¤Ä¤Î£²²óÌܤȤʤ뺣²ó¤Ï¡¢¥·¥ç¥Ã¥È¤Î¡ØÀ¸À®¤È°Üư¡Ù¤Ë¤Ä¤¤¤Æ¹Í¤¨¤Æ¤ß¤Þ¤¹¡£
¥×¥ì¥¤¥ä¡¼¥¥ã¥é¥¯¥¿¡¼¤òºîÀ®¤¹¤ëºÝ¤Ë¤Ï¡¢¥æ¡¼¥¶¡¼¤Î¥¡¼ÆþÎϤò¼õ¤±¼è¤Ã¤Æ¡¢¥¥ã¥é¥¯¥¿¡¼¤¬°Üư¤¹¤ë¤è¤¦¤Ë¤·¤Þ¤·¤¿¤Í¡£¥²¡¼¥à¤¬¹Ô¤ï¤ì¤Æ¤¤¤ëºÇÃæ¡¢¥×¥ì¥¤¥ä¡¼¤Î¥¡¼ÆþÎϤˤè¤Ã¤Æ°Üư¤¹¤ëÊý¸þ¤¬·è¤Þ¤ë¤ï¤±¤Ç¤¹¤«¤é¡¢¤É¤Î¤è¤¦¤Ê°Üư¤ò¹Ô¤¦¤«¤Ï¾ï¤Ë°ìÄꤷ¤Æ¤¤¤Ê¤¤¤ï¤±¤Ç¤¹¡£
¤³¤ì¤ËÂФ·¤Æ¥·¥ç¥Ã¥È¤Î¾ì¹ç¤Ï¡¢°ìÅÙȯ¼Í¤µ¤ì¤¿¤é¤½¤Î¤¢¤È¥×¥ì¥¤¥ä¡¼¤Î¥¡¼Áàºî¤Ê¤É¤Ë±Æ¶Á¤µ¤ì¤ëɬÍפϤ¢¤ê¤Þ¤»¤ó¤Í¡£Ã±½ã¤Ë·è¤á¤é¤ì¤¿Æ°¤¤ò±ä¡¹¤È³¤±¤ì¤Ð¤¤¤¤¤À¤±¤Ç¤¹¡£
¤Ç¤¹¤«¤é¡¢¹Í¤¨Êý¤È¤·¤Æ¤Ï¡ØÆ°¤¤¬°ìÄê¤Îµ¬Â§¤Ë¤è¤Ã¤ÆÄêµÁ¤µ¤ì¤¿¥¥ã¥é¥¯¥¿¡¼¡Ù¤ÈƱ¤¸¤Ç¤¹¡£¥×¥ì¥¤¥ä¡¼¥¥ã¥é¥¯¥¿¡¼¤ò°Üư½èÍý¤·¤¿¤È¤¤ÈƱ¤¸¤è¤¦¤Ë¡¢¥·¥ç¥Ã¥È¤ò°ì¼ï¤Î¥¥ã¥é¥¯¥¿¡¼¤È¤·¤Æ¹Í¤¨¤ì¤Ð¡¢ÊÌÃÊÆñ¤·¤¤¤³¤È¤â¤¢¤ê¤Þ¤»¤ó¤Í¡£
¥·¥ç¥Ã¥È¤Ï¾å¤Ç½ñ¤¤¤¿¤è¤¦¤Ë¡¢°ì¼ï¤Î¥¥ã¥é¥¯¥¿¡¼¤È¤·¤Æ¹Í¤¨¤Þ¤¹¡£
¤½¤³¤Ç¡¢¥×¥ì¥¤¥ä¡¼¥¥ã¥é¥¯¥¿¡¼¤òºîÀ®¤·¤¿¤È¤¤ÈƱ¤¸¤è¤¦¤Ë¡¢¤Þ¤º¤Ï¥·¥ç¥Ã¥ÈÀìÍѤι½Â¤ÂΤòÍѰդ·¤Þ¤·¤ç¤¦¡£
Type Shot
X As Single
Y As Single
Vis As Boolean
Typ As Long
End Type
X As Single
'¥·¥ç¥Ã¥È¤Î²£°ÌÃÖY As Single
'¥·¥ç¥Ã¥È¤Î½Ä°ÌÃÖVis As Boolean
'¥·¥ç¥Ã¥È¤¬¸«¤¨¤Æ¤¤¤ë¤«¤É¤¦¤«Typ As Long
'¥·¥ç¥Ã¥È¤Î¥¿¥¤¥×End Type
¤³¤Î¹½Â¤ÂΤϡ¢Å¨¥¥ã¥é¥¯¥¿¡¼¤Î·â¤Ä¥·¥ç¥Ã¥È¤Ë¤â»È¤¨¤ë¤è¤¦¤Ë¤·¤Æ¤¤¤Þ¤¹¡£¤Þ¤¡¡¢ºÙ¤«¤¤¤³¤È¤Ï»È¤¤¤Ê¤¬¤éÀâÌÀ¤·¤Æ¤¤¤¤Þ¤¹¡£
¼¡¤Ë¡¢¤³¤Î¹½Â¤ÂΤò»È¤Ã¤Æ¡¢¥·¥ç¥Ã¥ÈÍѤÎÇÛÎóÊÑ¿ô¤òÍѰդ·¤Þ¤¹¡£
Public P_Shot_Data(4) As Shot
ÊÑ¿ô¤Î·¿¤¬¡Ø
¡ÁAs Shot¡Ù¤È¤Ê¤Ã¤Æ¤¤¤Þ¤¹¤Í¡£Àè¤Û¤ÉÄêµÁ¤·¤¿¹½Â¤ÂΤò»È¤Ã¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢´Ö°ã¤¨¤Ê¤¤¤è¤¦¤ËÃí°Õ¤·¤Þ¤·¤ç¤¦¡£Á°²ó¤â½ñ¤¤¤¿¤è¤¦¤Ë¡¢º£²ó¤Ï¥·¥ç¥Ã¥È¤ò£µÈ¯·â¤Æ¤ë¤è¤¦¤Ë¤·¤Þ¤¹¤Î¤Ç¡¢ÇÛÎó¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹¤Î»ØÄ꤬¡Ø
P_Shot_Data(4)¡Ù¤È¤¤¤¦´¶¤¸¤Ë4¤ò»ØÄꤷ¤Æ¤¤¤Þ¤¹¡££°¤«¤é»Ï¤Þ¤ê£´¤Þ¤Ç¤Î¹ç·×£µ¤Äʬ¤Ç¤¹¡£¤³¤ì¤é¤ò¥â¥¸¥å¡¼¥ë¤ÎÀèÆ¬Éôʬ¤ËÄɲ乤ì¤Ð¡¢²¼½àÈ÷¤ÏOK¤Ç¤¹¡£
¢£Äɲä·¤¿¤â¤Î¤Ï½é´ü²½¤¹¤ë
¤µ¤Æ¡¢¾åµ¤Î¤è¤¦¤Ë¡¢²¿¤«°·¤¦¤â¤Î¤¬Áý¤¨¤ë¤È(º£²ó¤Ç¸À¤¨¤Ð¥·¥ç¥Ã¥È)¡¢ÊÑ¿ô¤ä¹½Â¤ÂΡ¢Äê¿ô¤Ê¤É¤¬¿·¤·¤¯Áý¤¨¤Æ¤¤¤¤Þ¤¹¤Í¡£
¤³¤³¤Ç˺¤ì¤¬¤Á¤Ê¤Î¤¬¡¢¡ØÄɲä·¤¿ÊÑ¿ô¤Ê¤É¤Î½é´ü²½½èÍý¡Ù¤Ç¤¹¡£»ä¤Ï¤³¤ì·ë¹½¤ä¤Ã¤Æ¤·¤Þ¤¦¤ó¤Ç¤¹¡£
¤½¤³¤Ç¡¢º£²ó¤Î¥·¥ç¥Ã¥È´ØÏ¢¤ÇÁý¤¨¤¿ÊÑ¿ô¤Ê¤É¤Ï¡¢½é´ü²½½èÍý¤Ç¤·¤Ã¤«¤ê¥ê¥»¥Ã¥È¤¹¤ë¤è¤¦¤Ë¤·¤Æ¤ª¤¤Þ¤·¤ç¤¦¡£¥×¥ì¥¤¥ä¡¼¥¥ã¥é¥¯¥¿¡¼¤Î¹½Â¤ÂΤò½é´ü²½¤·¤Æ¤¤¤ë¡Ø
Init¡Ù¤È¤¤¤¦Ì¾Á°¤Î¥×¥í¥·¡¼¥¸¥ã¤¬¤¢¤ê¤Þ¤·¤¿¤Í¡£¤¢¤Î¥×¥í¥·¡¼¥¸¥ã¤ÎÃæ¤Ë¡¢º£²óÁý¤¨¤¿ÇÛÎó¤äÊÑ¿ô¤ò½é´ü²½¤¹¤ë½èÍý¤òÄɲä·¤Þ¤¹¡£
º£²óÄɲ乤ë¤Ù¤¤Ê¤Î¤Ï¡¢¡Ø
P_Shot_Data()¡Ù¤È¡¢Á°²óÅо줷¤¿PublicÀë¸À¤ÎÊÑ¿ô¡ØShot_Interval¡Ù¤Î£²¤Ä¤Ç¤¹¡£Sub Init()
With Player_Data
.X = 100
.Y = 180
.W = 0
.H = 0
.Lif = 1
.Typ = 0
.Par = 0
End With
Erase P_Shot_Data
Shot_Interval = 0
End Sub
With Player_Data
.X = 100
.Y = 180
.W = 0
.H = 0
.Lif = 1
.Typ = 0
.Par = 0
End With
Erase P_Shot_Data
Shot_Interval = 0
End Sub
ÎФÎʸ»ú¤Çɽ¼¨¤µ¤ì¤Æ¤¤¤ëÉôʬ¤¬¡¢º£²ó¿·¤·¤¯Äɲ䵤줿Éôʬ¤Ç¤¹¡£
¤Þ¤º¡¢ÎÐʸ»ú¤Î£±¹ÔÌÜ¡¢¡Ø
Erase P_Shot_Data¡Ù¤Èµ½Ò¤µ¤ì¤Æ¤¤¤Þ¤¹¡£¤³¤³¤ÇÅо줹¤ë¡Ø
Erase¡Ù¤Ï¡¢Á´¤Æ¤ÎÇÛÎó¤ÎÍ×ÁǤò½é´ü²½¤¹¤ëÌ¿Îá¤ò½Ð¤·¤Þ¤¹¡£¿ôÃͤò°·¤¦ÊÑ¿ô·¿¤Ê¤é½é´üÃÍ¤Ï¡Ø 0 ¡Ù¡£Ê¸»úÎó¤ò°·¤¦ÊÑ¿ô·¿¤Ê¤é½é´üÃÍ¤Ï¡Ø "" (Ťµ0¤Îʸ»úÎó)¡Ù¡£True¤ÈFalse¤ò°·¤¦¥Ö¡¼¥ë·¿¤Ê¤é½é´üÃÍ¤Ï¡Ø False ¡Ù¤Ç¤¹¡£¤³¤ì¤é¤Îˡ§¤Ë¤·¤¿¤¬¤Ã¤Æ¡¢ÇÛÎó¤ÎÁ´¤Æ¤ÎÍ×ÁǤ¬½é´ü²½¤µ¤ì¤Þ¤¹¡£
P_Shot_Data¤ÏÇÛÎóÊÑ¿ô¤Ç¤¹¡£¤Ç¤¹¤«¤éErase¤ò»È¤Ã¤Æ½é´ü²½¤¹¤ë¤³¤È¤¬²Äǽ¤Ç¤¹¡£Erase¤ÏÇÛÎó¤·¤«½é´ü²½¤Ç¤¤Þ¤»¤ó¡£¤Ç¤¹¤Î¤Ç¡¢ÇÛÎó¤Ç¤Ï¤Ê¤¯Ä̾ï¤ÎÊÑ¿ô¤Ç¤¢¤ë¡ØShot_Interval¡Ù¤Ë¤ÏľÀÜ0¤òÂåÆþ¤·¤Æ¤ª¤¤Þ¤¹¡£¤³¤ì¤Ç½é´ü²½¤ÏOK¤Ç¤¹¡£
Erase¤Î»È¤¤Êý¤¬¥Ý¥¤¥ó¥È¤Ç¤¹¤Í¡£¢£¥·¥ç¥Ã¥È¤ÎÀ¸À®
¥·¥ç¥Ã¥È¤Ë´Ø¤·¤Æ¤Ï¡¢¡ØÀ¸À®¡Ù¤È¡Ø°Üư¡Ù¤òʬ¤±¤Æ´ÉÍý¤¹¤ë¤è¤¦¤Ë¤·¤Þ¤¹¡£¤³¤ì¤Ï¥·¥ç¥Ã¥È¤ÎÃÂÀ¸¤«¤é¾ÃÌǤޤǤò¸«¤Æ¤ß¤ë¤È¤ï¤«¤ê¤ä¤¹¤¤¤È»×¤¤¤Þ¤¹¡£
¥×¥ì¥¤¥ä¡¼¥¥ã¥é¥¯¥¿¡¼½èÍý¤ÎÃæ¤Ç¥¡¼ÆþÎϤò¼õ¤±¼è¤ê¡¢º£¥·¥ç¥Ã¥È¤ò·â¤È¤¦¤È¤·¤Æ¤¤¤ë¤ÈȽÃǤµ¤ì¤¿¾ì¹ç
¢§
¥·¥ç¥Ã¥ÈÀ¸À®¥×¥í¥·¡¼¥¸¥ã¤ò¸Æ¤Ó½Ð¤¹
¢§
¥·¥ç¥Ã¥È¤¬À¸À®¤µ¤ì¤ë
¢§
¥·¥ç¥Ã¥È¤¬À¸À®¤µ¤ì¤¿¤Î¤Ç¡¢°Ê¹ß¡¢°Üư¤ò´ÉÍý¤¹¤ë¥×¥í¥·¡¼¥¸¥ã¤¬Ëè²ó¥ë¡¼¥×¤´¤È¤Ë¥·¥ç¥Ã¥È¤ò½èÍý¤¹¤ë
¢§
¥·¥ç¥Ã¥È°Üư¥×¥í¥·¡¼¥¸¥ã¤¬¡¢¥·¥ç¥Ã¥È¤¬²èÌ̾夫¤é¾Ã¤¨¤Æ¤¤¤Ê¤¤¤«¤Ê¤É¤òȽÃǤ·¡¢¤â¤·¾Ã¤¨¤Æ¤¤¤¿¤êŨ¤ËÅö¤¿¤Ã¤Æ¤¤¤¿¤ê¤·¤¿¾ì¹ç¤Ë¤Ï¥·¥ç¥Ã¥È¤ò¾Ã¤¹
¢§
¥·¥ç¥Ã¥ÈÀ¸À®¥×¥í¥·¡¼¥¸¥ã¤ò¸Æ¤Ó½Ð¤¹
¢§
¥·¥ç¥Ã¥È¤¬À¸À®¤µ¤ì¤ë
¢§
¥·¥ç¥Ã¥È¤¬À¸À®¤µ¤ì¤¿¤Î¤Ç¡¢°Ê¹ß¡¢°Üư¤ò´ÉÍý¤¹¤ë¥×¥í¥·¡¼¥¸¥ã¤¬Ëè²ó¥ë¡¼¥×¤´¤È¤Ë¥·¥ç¥Ã¥È¤ò½èÍý¤¹¤ë
¢§
¥·¥ç¥Ã¥È°Üư¥×¥í¥·¡¼¥¸¥ã¤¬¡¢¥·¥ç¥Ã¥È¤¬²èÌ̾夫¤é¾Ã¤¨¤Æ¤¤¤Ê¤¤¤«¤Ê¤É¤òȽÃǤ·¡¢¤â¤·¾Ã¤¨¤Æ¤¤¤¿¤êŨ¤ËÅö¤¿¤Ã¤Æ¤¤¤¿¤ê¤·¤¿¾ì¹ç¤Ë¤Ï¥·¥ç¥Ã¥È¤ò¾Ã¤¹
¾å¤Î´Ê°×¥Õ¥í¡¼¤ò¸«¤ë¤È¤ï¤«¤ê¤Þ¤¹¤¬¡¢¥×¥ì¥¤¥ä¡¼¥¥ã¥é¥¯¥¿¡¼½èÍý¤ÎÃæ¤Ç¸Æ¤Ó½Ð¤µ¤ì¤ë¤Î¤Ï¡¢¡Ø¥·¥ç¥Ã¥ÈÀ¸À®¥×¥í¥·¡¼¥¸¥ã¡Ù¤Ç¤¹¡£¤½¤·¤Æ¡¢°ìÅÙ¥·¥ç¥Ã¥È¤¬À¸À®¤µ¤ì¤¿¤é¡¢¤¢¤È¤Ï¡Ø¥·¥ç¥Ã¥È°Üư¥×¥í¥·¡¼¥¸¥ã¡Ù¤¬¥·¥ç¥Ã¥È¤Î¾õÂÖ¤ò´ÉÍý¤·¤Þ¤¹¡£
Á°²óºÜ¤»¤¿¡¢¥×¥ì¥¤¥ä¡¼¥¥ã¥é¥¯¥¿¡¼¤Î¥·¥ç¥Ã¥È¤Ë´Ø¤¹¤ë½èÍý¤ÎÃæ¤Ç¡¢¡Ø
¥·¥ç¥Ã¥È¤òȯ¼Í¤¹¤ë¡Ù¤ÎÉôʬ¤À¤±¤¬ÊÝα¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤·¤¿¤Í¡£¤³¤ì¤ËÁêÅö¤¹¤ë¤Î¤¬¡Ø¥·¥ç¥Ã¥ÈÀ¸À®¥×¥í¥·¡¼¥¸¥ã¤Î¸Æ¤Ó½Ð¤·¡Ù¤Ç¤¹¡£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
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
¤³¤ì¤¬¡Ø¥·¥ç¥Ã¥ÈÀ¸À®¥×¥í¥·¡¼¥¸¥ã¡Ù¤Ë¤Ê¤ê¤Þ¤¹¡£¤½¤Î»ÅÁȤߤò¾Ü¤·¤¯¸«¤Æ¤ß¤Þ¤·¤ç¤¦¡£
¤Þ¤º¡¢»Ï¤á¤ËÍý²ò¤·¤Æ¤ª¤¯¤Ù¤¤Ï¡¢¤³¤Î¥×¥í¥·¡¼¥¸¥ã¤¬£³¤Ä¤Î°ú¿ô¤ò¼è¤ë¡¢¤È¤¤¤¦¤³¤È¤Ç¤¹¡£°ìÈֺǽ顢¥×¥í¥·¡¼¥¸¥ã¤Î̾Á°¤Ë³¤±¤Æ¡Ø
X As Single, Y As Single, Typ As Long¡Ù¤È¤¤¤¦µ½Ò¤¬¤¢¤ê¤Þ¤¹¤Í¡£¤³¤ÎÉôʬ¤¬°ú¿ô¤òÄêµÁ¤·¤Æ¤¤¤ëÉôʬ¤Ç¤¹¡£¤³¤ì¤ò¸«¤ë¤È¡¢¤³¤ÎP_Shot_Begin¤È¤¤¤¦¥×¥í¥·¡¼¥¸¥ã¤¬¡ØX¡¦Y¡¦Typ¡Ù¤È¤¤¤¦£³¤Ä¤Î°ú¿ô¤ò¼è¤ë¤³¤È¤¬¤ï¤«¤ê¤Þ¤¹¡£°ú¿ô¤ò¼è¤ë¥×¥í¥·¡¼¥¸¥ã¤È¤¤¤¦¤³¤È¤Ï¡¢¤³¤Î¥×¥í¥·¡¼¥¸¥ã¤ò¸Æ¤Ó½Ð¤¹¤È¤¤ËÃͤò¥»¥Ã¥È¤Ë¤·¤Æ¸Æ¤Ó½Ð¤µ¤Ê¤¯¤Æ¤Ï¤¤¤±¤Þ¤»¤ó¡£¤³¤Î°ú¿ô¤Î»ÅÁȤߤϡ¢¤¸¤ã¤ó¤±¤ó¥²¡¼¥à¤òºîÀ®¤·¤¿¤È¤¤Ë¤â²òÀ⤷¤Þ¤·¤¿¤Í(Chapter20¤ò»²¾È)¡£
¤³¤ì¤¬Íý²ò¤Ç¤¤Æ¤¤¤Ê¤¤¤È¡¢Â¿Ê¬¤³¤Î¸å¤Î²òÀâ¤Ë¤Ä¤¤¤Æ¤³¤ì¤Þ¤»¤ó¡£¤è¤¯¤ï¤«¤é¤Ê¤¤¿Í¤Ï¤è¤¯Éü½¬¤·¤Æ¤ª¤¤Þ¤·¤ç¤¦¡£
¤µ¤Æ¡¢Â³¤¤¤Æ¤Ï¥×¥í¥·¡¼¥¸¥ã¤ÎÃæ¿È¤Ç¤¹¡£
¤³¤Î¥×¥í¥·¡¼¥¸¥ã¤Ç¤Ï¡¢
Forʸ¤ò»È¤Ã¤Æ¤¤¤Þ¤¹¡£Àè¤Û¤É¹½Â¤ÂΤò»È¤Ã¤ÆÀë¸À¤·¤¿¡¢¥·¥ç¥Ã¥ÈÍѤÎÇÛÎóÊÑ¿ô¤¬¤¢¤ê¤Þ¤·¤¿¤Í¡£¡ØP_Shot_Data()¡Ù¤¬¤½¤ì¤Ç¤¹¤Í¡£¤³¤Î¹½Â¤ÂΤÎÍ×ÁǤÎÃæ¤Ë¡Ø
Vis¡§¥·¥ç¥Ã¥È¤¬¸«¤¨¤Æ¤¤¤ë¤«¤É¤¦¤«¡Ù¤È¤¤¤¦Í×ÁǤ¬¤¢¤ê¤Þ¤·¤¿¤Í¡£¤Þ¤º¤ÏForʸ¤ò»È¤Ã¤Æ¡¢²èÌ̾å¤Ë¸«¤¨¤Æ¤¤¤Ê¤¤¥·¥ç¥Ã¥È¤òõ¤·¤Þ¤¹¡£¤½¤ì¤¬¡¤ÎÉôʬ¤Ç¤¹¡£Shot¹½Â¤ÂΤÎÍ×ÁǤǤ¢¤ëVis¤Ï¡¢Boolean·¿¤Î¥Ç¡¼¥¿¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤·¤¿¡£¤Ä¤Þ¤ê¡¢True¤«False¤«¤É¤Á¤é¤«¤Î¥Ç¡¼¥¿¤¬Æþ¤Ã¤Æ¤¤¤ë¤Ï¤º¤Ç¤¹¤Í¡£¤â¤·¡¢¡ØVis = True¡Ù¤Ê¤é¥·¥ç¥Ã¥È¤Ï¸«¤¨¤Æ¤¤¤ë¡£¡ØVis = False¡Ù¤Ê¤é¡¢¥·¥ç¥Ã¥È¤Ï¸«¤¨¤Æ¤¤¤Ê¤¤¡¢¤È¤Ê¤ë¤ï¤±¤Ç¤¹¡£Forʸ¤ò»È¤Ã¤Æ£°¤«¤é£´¤Þ¤Ç¤ò½çÈ֤˸«¤Æ¤¤¤¡¢¸«¤¨¤Æ¤¤¤Ê¤¤¥·¥ç¥Ã¥È¤òõ¤·¤Þ¤¹¡£¡ØIf Not .Vis Then¡Ù¤ÎÉôʬ¤¬¤½¤ì¤òȽÃǤ·¤Æ¤¤¤ë¤È¤³¤í¤Ç¤¹¤Í¡£ÊäÂ¥³¥é¥à¡§Not¤Î»È¤¤Êý
¡ØNot¡Ù¤ÏIfʸ¤Ê¤É¤Î¾ò·ïȽÃǤò¹Ô¤¦½èÍý¤Ë¤ª¤¤¤Æ¡¢¿¿¤Èµ¶¤Îɾ²Á¤òȿž¤µ¤»¤Þ¤¹¡£Î㤨¤Ð¡¢Ifʸ¤Î¾ì¹ç¤Ë¤Ï¡¢¼¡¤Î¤è¤¦¤Ë¹Í¤¨¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡£
If Bool Then¡¡¡Ä¡Ä¡¡ÊÑ¿ôBool¤¬True¤Ê¤é
If Not Bool Then¡¡¡Ä¡ÄÊÑ¿ôBool¤¬False¤Ê¤é
If L = 0 Then¡¡¡Ä¡Ä¡¡ÊÑ¿ôL¤¬0¤Ê¤é
If Not L = 0 Then¡¡¡Ä¡Ä¡¡ÊÑ¿ôL¤¬0°Ê³°¤Ê¤é
¤³¤ì¤Ï¾ò·ïȽÃǤò¹Ô¤¦¤È¤³¤í¤Ê¤é´ðËÜŪ¤Ë»È¤¨¤Þ¤¹¡£¤¿¤È¤¨¤Ð¡ØDo Until¡Ù¤Ê¤É¡¢·«¤êÊÖ¤·½èÍý¤Î½ªÎ»¾ò·ï¤Ë¤â»È¤¨¤Þ¤¹¡£
Do Until Flg¡¡¡Ä¡Ä¡¡ÊÑ¿ôFlg¤¬True¤Ê¤é½ªÎ»
Do Until Not Flg¡¡¡Ä¡Ä¡¡ÊÑ¿ôFlg¤¬False¤Ê¤é½ªÎ»
¾¤Ë¤â¡¢Boolaen·¿ÊÑ¿ô¤ÎÃͤòȿž¤µ¤»¤ë¤Ê¤É¤ÎÍøÍÑË¡¤â¤¢¤ê¤Þ¤¹¡£
Bool = Not Bool¡¡¡Ä¡Ä¡¡ÊÑ¿ôBool¤¬True¤Ê¤éFalse¤Ë¡¢False¤Ê¤éTrue¤Ë
ºÇ½é¤Ï¤È¤Ã¤Ä¤¤Ë¤¯¤¤¤«¤â¤·¤ì¤Þ¤»¤ó¤¬¡¢Í¸ú¤ËÍøÍѤ¹¤ì¤Ð¤«¤Ê¤êÌò¤ËΩ¤Á¤Þ¤¹¤Î¤Ç¡¢³Ð¤¨¤Æ¤ª¤¤¤ÆÂ»¤Ï¤Ê¤¤¤Ç¤·¤ç¤¦¡£¤µ¤Æ¡¢¡¤ÎÉôʬ¤Ç¡¢¸«¤¨¤Æ¤¤¤Ê¤¤¥·¥ç¥Ã¥È¤¬¸«¤Ä¤«¤Ã¤¿¤é¥·¥ç¥Ã¥È¤òÀ¸À®¤·¤Þ¤¹¡£
¥·¥ç¥Ã¥È¤ÎÀ¸À®¤Ç¤Ï¡¢¹½Â¤ÂΤγÆÍ×ÁǤˡ¢½çÈÖ¤ËÃͤò¥»¥Ã¥È¤·¤Æ¤¤¤¤Þ¤¹¡£
¡Ø
.X = X ¡Ù¤È¤¤¤¦¼°¤Ï°ì¸«¤¹¤ë¤È¤ï¤«¤ê¤Ë¤¯¤¤¤Ç¤¹¤¬¡¢¡Øº¸ÊդΥԥꥪ¥É¤Ä¤ .X ¡Ù¤Ï¹½Â¤ÂΤÎÍ×ÁÇ X ¤Ç¤¹¡£¤½¤ì¤ËÂФ·¡Ø±¦ÊդΥԥꥪ¥É̵¤· X ¡Ù¤Ï¡¢°ú¿ô¤«¤é¼õ¤±¼è¤Ã¤¿¥Ç¡¼¥¿ X ¤Ç¤¹¡£¥×¥í¥·¡¼¥¸¥ã¤Î¸Æ¤Ó½Ð¤·¤ÈƱ»þ¤Ë°ú¿ô¤È¤·¤Æ¼õ¤±¼è¤Ã¤¿¥Ç¡¼¥¿¤ò¡¢¹½Â¤ÂΤÎÍ×ÁǤËÂåÆþ¤·¤Æ¤¤¤ë¤Î¤Ç¤¹¤Í¡£
ƱÍͤˡ¢Í×ÁÇ
Y ¤äÍ×ÁÇ Typ ¤ò½ç¤ËÀßÄꤷ¤Æ¡¢Í×ÁÇVis¤òTrue¤Ë¤·¤Þ¤¹¡£¤³¤ì¤Ç¥Ç¡¼¥¿¾å¤Ï¡¢¥·¥ç¥Ã¥È¤¬¸«¤¨¤Æ¤¤¤ë¤ÈȽÃǤµ¤ì¤ë¾õÂ֤ˤʤê¤Þ¤·¤¿¡£¤³¤³¤Þ¤Ç¤¬¢¤ÎÉôʬ¤Ç¤¹¡£¤½¤·¤Æ¡¢£¤Î¤È¤³¤í¤Ç¤Ï¡¢¼ÂºÝ¤Ë¥æ¡¼¥¶¡¼¥Õ¥©¡¼¥à¾å¤Î¥¤¥á¡¼¥¸¥³¥ó¥È¥í¡¼¥ë¤ò¸«¤¨¤ë¤è¤¦¤Ë¤·¤Æ¤¤¤Þ¤¹¡£
¡Ø
UserForm1.Controls("P_Shot" & L + 1).Visible = True¡Ù¤¬¤½¤Î½èÍý¤ò¹Ô¤Ã¤Æ¤¤¤ëÉôʬ¤Ç¤¹¡£¥æ¡¼¥¶¡¼¥Õ¥©¡¼¥à¤ËÇÛÃÖ¤·¤¿¡¢¥·¥ç¥Ã¥ÈÍѤΥ¤¥á¡¼¥¸¥³¥ó¥È¥í¡¼¥ë¤Ï¡¢¤½¤Î̾Á°¤¬¡Ø
P_Shot1¡ÁP_Shot5¡Ù¤Þ¤Ç¤ÎÏ¢È֤ˤʤäƤ¤¤Þ¤·¤¿¤¬³Ð¤¨¤Æ¤¤¤ë¤Ç¤·¤ç¤¦¤«¡£¤³¤³¤Ç¤Ï¡¢¡Ø
UserForm1.Controls(¥³¥ó¥È¥í¡¼¥ë¤Î̾Á°)¡Ù¤È¤¤¤¦»ØÄê¤Î»ÅÊý¤ò»È¤Ã¤Æ¡¢¥¤¥á¡¼¥¸¥³¥ó¥È¥í¡¼¥ë¤ÎVisible¥×¥í¥Ñ¥Æ¥£¤òTrue¤Ë¤·¤Æ¤¤¤Þ¤¹¡£¤³¤¦¤¹¤ë¤³¤È¤Ç¡¢²èÌ̾å¤Î¥¤¥á¡¼¥¸¥³¥ó¥È¥í¡¼¥ë¤¬¼ÂºÝ¤Ë¸«¤¨¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£¤½¤·¤ÆºÇ¸å¡¢£±¤Ä¥·¥ç¥Ã¥È¤ò·â¤Æ¤ì¤Ð½¼Ê¬¤Ê¤Î¤Ç¡¢¤½¤ì°Ê¹ß¤Î·«¤êÊÖ¤·½èÍý¤ò¹Ô¤ï¤Ê¤¤¤è¤¦¤Ë¡Ø
Exit For¡Ù¤·¤Æ¤ª¤¤Þ¤¹¡£¤³¤ì¤ò¤ä¤Ã¤Æ¤ª¤«¤Ê¤¤¤È¡¢¸«¤¨¤Æ¤¤¤Ê¤¤¥·¥ç¥Ã¥È¤¬Á´¤ÆÈ¯¼Í¤µ¤ì¤Æ¤·¤Þ¤¦¤Î¤Ç¡¢¤ª¤«¤·¤Ê¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£¤³¤³¤Þ¤Ç½ÐÍè¤ì¤Ð¡¢¥·¥ç¥Ã¥È¤ÎÀ¸À®¤Ë¤Ä¤¤¤Æ¤ÏOK¤Ç¤¹¡£
¤¢¤È¤Ï¡¢¥×¥ì¥¤¥ä¡¼¥¥ã¥é¥¯¥¿¡¼¤Î½èÍý¤ÎÃæ¤Ç¡¢¥·¥ç¥Ã¥È¤ò·â¤Ä¤Ù¤¤À¤ÈȽÃǤµ¤ì¤¿¾ì¹ç¤Ë¤³¤Î¥×¥í¥·¡¼¥¸¥ã¤ò¸Æ¤Ó½Ð¤¹¤è¤¦¤Ë¤¹¤ì¤Ð¤¤¤¤¤ï¤±¤Ç¤¹¡£¤³¤ì¤ÏºÇ¸å¤Ë¤Þ¤È¤á¤ÆÁ´ÂΤΥ³¡¼¥É¤òºÜ¤»¤Þ¤¹¤Î¤Ç¡¢¤½¤³¤Ç¾Ü¤·¤¯²òÀ⤷¤Þ¤¹¤Í¡£
¢£¥·¥ç¥Ã¥È¤Î°Üư
¤µ¤Æ¡¢¤Á¤ç¤Ã¤ÈŤ¤¤Ç¤¹¤¬¡¢¤¬¤ó¤Ð¤Ã¤Æ¥·¥ç¥Ã¥È´ØÏ¢¤Î½èÍý¤òºî¤Ã¤Æ¤·¤Þ¤¤¤Þ¤·¤ç¤¦¡£
¼¡¤Ï¡¢¥·¥ç¥Ã¥È¤Î°Üư½èÍý¤Ë¤Ä¤¤¤Æ¤Ç¤¹¡£
Sub P_Shot_Action()
Dim L As Long
For L = 0 To 4
With P_Shot_Data(L)
If .Vis Then
.Y = .Y - 6
If .Y < -5 Then .Vis = False
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
Dim L As Long
For L = 0 To 4
With P_Shot_Data(L)
If .Vis Then
'¡.Y = .Y - 6
'¢If .Y < -5 Then .Vis = False
'£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
¡¤«¤é½çÈ֤˸«¤Æ¤¤¤¤Þ¤·¤ç¤¦¡£
¤Þ¤º¤Ï¡¢¥·¥ç¥Ã¥È¼«ÂΤ¬º£¸½ºß¸«¤¨¤Æ¤¤¤ë¤Î¤«¤É¤¦¤«¡¢
Ifʸ¤ò»È¤Ã¤ÆÈ½ÃǤ·¤Þ¤¹¡£¤½¤ì¤¬¡¤Ç¤¹¤Í¡£¤½¤·¤Æ¡¢¤³¤³¤Ç¸«¤¨¤Æ¤¤¤ë¤ÈȽÃǤµ¤ì¤¿¾ì¹ç¤Ë¤Ï¡¢¢¤Ç¼¨¤¹¤è¤¦¤Ë¡¢¥Ç¡¼¥¿¾å¤Ç¤ÎºÂɸ¤ò¾åÊý¸þ¤Ë°Üư¤·¤Æ¤¤¤Þ¤¹¡£½Ä°ÌÃÖ¤òɽ¤¹Í×ÁÇ
Y ¤ò¥Þ¥¤¥Ê¥¹¤¹¤ë¤³¤È¤Ç¡¢ºÂɸ¤¬¾å¤ÎÊý¸þ¤Ë¤º¤ì¤ë¤ï¤±¤Ç¤¹¡£ºÂɸ°Üư¤¬¤Ç¤¤¿¤é¡¢¼¡¤Ë²èÌ̾夫¤é¾Ã¤¨¤Æ¤·¤Þ¤Ã¤Æ¤¤¤Ê¤¤¤«È½ÃǤ·¤Æ¤¤¤Þ¤¹¡£¤½¤ì¤¬£¤ÎÉôʬ¡£¥Õ¥ì¡¼¥à¤Î°ìÈÖ¾å¤Îü¤¬0¤ËÁêÅö¤¹¤ë¤ï¤±¤Ç¤¹¤«¤é¡¢½Ä°ÌÃÖ¤¬¥Þ¥¤¥Ê¥¹¤Î¿ôÃͤˤʤäƤ·¤Þ¤Ã¤Æ¤¤¤¿¤é¥·¥ç¥Ã¥È¤Ï´°Á´¤Ë²èÌ̾夫¤é¾Ã¤¨¤Æ¤¤¤ë¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£
¤½¤ó¤Ê¤È¤¤Ï¡¢¸«¤¨¤Æ¤¤¤ë¤«¤É¤¦¤«¤òÄêµÁ¤·¤Æ¤¤¤ëÍ×ÁÇ
Vis¤ËFalse¤òÂåÆþ¤·¤Æ¤ª¤¡¢¸«¤¨¤Æ¤¤¤Ê¤¤¤³¤È¤Ë¤·¤Æ¤ª¤¯¤Î¤Ç¤¹¡£¤½¤Î¸å¡¢¼ÂºÝ¤Î¥æ¡¼¥¶¡¼¥Õ¥©¡¼¥à¾å¤Î¥³¥ó¥È¥í¡¼¥ë¤ò¡¢º£·×»»¤·¤¿ºÂɸ¾å¤Ë°Üư¤µ¤»¤Þ¤¹¡£¤³¤ì¤Ï¥×¥ì¥¤¥ä¡¼¥¥ã¥é¥¯¥¿¡¼¤Î¤È¤¤ÈƱ¤¸¤Ç¤¹¤Í¡£
¹½Â¤ÂΤÇÄêµÁ¤·¤¿ÊÑ¿ô¤Î¥Ç¡¼¥¿¤ÇÁ´¤Æ¤Î·×»»¤ò¹Ô¤Ã¤Æ¤·¤Þ¤¤¡¢¤½¤ì¤é¤Î·ë²Ì¤ò»È¤Ã¤Æ¥³¥ó¥È¥í¡¼¥ë¤Î°ÌÃÖ¤ä
Visible¥×¥í¥Ñ¥Æ¥£¤òÀßÄꤷ¤Þ¤¹¡£¤³¤ì¤¬¤¤ÎÉôʬ¤Ç¤¹¤Í¡£¤ä¤Ã¤Æ¤¤¤ë¤³¤È¤Ï¥×¥ì¥¤¥ä¡¼¥¥ã¥é¥¯¥¿¡¼¤Î¤È¤¤È¤Û¤È¤ó¤ÉƱ¤¸¤Ç¤¹¡£
¹½Â¤ÂΤÇÄêµÁ¤·¤¿Í×ÁÇ¡Ø
X¡¦Y ¡Ù¤Ï¡¢¥·¥ç¥Ã¥È¤ÎÃæ¿´¤ÎºÂɸ¤òɽ¤·¤Þ¤¹¡£¤Ç¤¹¤«¤é¡¢Á°²ó¤Î¹ÖºÂ¤ÇÄêµÁ¤·¤Æ¤¢¤ë¡ØÄê¿ôShot_Size¡Ù¤ò»È¤Ã¤Æ¡¢Å¬ÀڤʡØTop¡¦Left¡Ù¤ËÊÑ´¹¤·¤Æ¤¤¤ë¤ï¤±¤Ç¤¹¡£¢£¤³¤³¤Þ¤Ç¤ÎÁ´¥³¡¼¥É
¤½¤ì¤Ç¤Ï¡¢Á°²ó¤Èº£²ó¤Ç²òÀ⤷¤¿¡¢¥·¥ç¥Ã¥È¤Ë´Ø¤¹¤ë¥³¡¼¥É¤òÁ´¤Æ¼è¤êÆþ¤ì¤Æ¤ß¤Þ¤·¤ç¤¦¡£
¥×¥ì¥¤¥ä¡¼¥¥ã¥é¥¯¥¿¡¼¤Î»þ¤ËºÜ¤»¤¿¥³¡¼¥É¤è¤ê¡¢Äɲ䵤줿Éôʬ¤ÏÎФÎʸ»ú¤Çɽ¼¨¤¹¤ë¤è¤¦¤Ë¤·¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢Å¬µ¹Äɲ䷤ƤߤƤ¯¤À¤µ¤¤¡£
¤³¤³¤Þ¤Ç¤ÎÁ´¥³¡¼¥É
'ɸ½à¥â¥¸¥å¡¼¥ëÀèÆ¬Éôʬ
'¢¡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
'¡ü¥¥ã¥é¥¯¥¿¡¼¡¡ÊÑ¿ôÀë¸ÀPublic Player_Data As Chara
'¡ü¥·¥ç¥Ã¥È¡¡ÊÑ¿ôÀë¸ÀPublic P_Shot_Data(4) As Shot
'¡ý¤½¤Î¾¡¡ÊÑ¿ôÀë¸ÀPublic Shot_Interval 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
'ÃÆ³Æ¼ï¤Î¼ÂºÝ¤ÎÂ礤µ'½é´ü²½¤òôÅö¤¹¤ë¥×¥í¥·¡¼¥¸¥ãSub Init()
With Player_Data
.X = 100
.Y = 180
.W = 0
.H = 0
.Lif = 1
.Typ = 0
.Par = 0
End With
Erase P_Shot_Data
Shot_Interval = 0
End Sub
'¥á¥¤¥ó¥×¥í¥»¥¹¤òôÅö¤¹¤ë¥×¥í¥·¡¼¥¸¥ãSub Main()
Dim Flg As Boolean
Dim Stm As Long
Call Init
Flg = False
Do Until Flg
Stm = GetTickCount
Call Player_Action
Call P_Shot_Action
DoEvents
Do
Call Sleep(1)
Loop Until GetTickCount - Stm > 30
If GetAsyncKeyState(Esc_Key) < 0 Then Flg = True
Loop
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
For L = 0 To 4
With P_Shot_Data(L)
If .Vis Then
.Y = .Y - 6
If .Y < -5 Then .Vis = False
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
'ɸ½à¥â¥¸¥å¡¼¥ë¤Ï¤³¤³¤Þ¤Ç'¤³¤³¤«¤é²¼¤Ï¥Õ¥©¡¼¥à¥â¥¸¥å¡¼¥ë¤Ëµ½Ò'¥³¥Þ¥ó¥É¥Ü¥¿¥ó¤Î¥¯¥ê¥Ã¥¯¥¤¥Ù¥ó¥È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
¤¦¡Á¤ó¡Ä¡ÄŤ¤¡£
ÎФÎʸ»ú¤Çɽ¼¨¤µ¤ì¤Æ¤¤¤ëÉôʬ¤¬¡¢º£²óÄɲ䵤줿¥³¡¼¥É¤Ç¤¹¡£¤½¤³¤ËÍ×ÅÀ¤ò¹Ê¤Ã¤Æ¹Í¤¨¤ë¤È¡¢¤À¤¤¤¿¤¤¤ï¤«¤ë¤Î¤Ç¤Ï¤Ê¤¤¤Ç¤·¤ç¤¦¤«¡£
ÆÃ¤ËÆñ¤·¤¤¤È»×¤ï¤ì¤ë¤Î¤¬¡¢¿å¿§¤Îʸ»ú¤Çɽ¼¨¤µ¤ì¤Æ¤¤¤ëÉôʬ¡¢¥·¥ç¥Ã¥ÈÀ¸À®¥×¥í¥·¡¼¥¸¥ã¤Î¸Æ¤Ó½Ð¤·¤Ç¤¹¡£
¥·¥ç¥Ã¥È¤ÎÀ¸À®¤òôÅö¤¹¤ë¡Ø
P_Shot_Begin¥×¥í¥·¡¼¥¸¥ã¡Ù¤Ï¡¢°ú¿ô¤ò£³¤Ä¼è¤ê¤Þ¤¹¡£¤³¤Î°ú¿ô¤ÇÍ¿¤¨¤é¤ì¤¿ºÂɸ¤Ë¡¢À¸À®¤µ¤ì¤ë¥·¥ç¥Ã¥È¤Î½é´ü°ÌÃÖ¤ò¥»¥Ã¥È¤¹¤ë¤Î¤Ç¤¹¡£¤Ç¤¹¤«¤é¡¢¥×¥ì¥¤¥ä¡¼¥¥ã¥é¥¯¥¿¡¼¤Î¸½ºß¤ÎºÂɸ¤ò°ú¿ô¤È¤·¤ÆÅϤ·¤Æ¡¢¤½¤Î¾ì½ê¤Ë¥·¥ç¥Ã¥È¤¬À¸À®¤µ¤ì¤ë¤è¤¦¤Ë¤¹¤ë¤Î¤Ç¤¹¤Í¡£
¥×¥ì¥¤¥ä¡¼¥¥ã¥é¥¯¥¿¡¼¤¬¡¢¡Ø
X = 100 , Y = 100 ¡Ù¤ÎºÂɸ¤Ë¤¤¤ë¤È¤¹¤ì¤Ð¡¢°ú¿ô¤È¤·¤Æ(100,100,0¡Ë¤¬P_Shot_Begin¥×¥í¥·¡¼¥¸¥ã¤ËÅϤµ¤ì¤Þ¤¹¡£¤½¤¦¤¹¤ë¤È
P_Shot_Begin¥×¥í¥·¡¼¥¸¥ã¤¬¡¢¤½¤ÎºÂɸ¤Ë¿·¤·¤¯¥·¥ç¥Ã¥È¤òÀ¸À®¤¹¤ë¤È¤¤¤¦¤ï¤±¤Ç¤¹¡£¤Á¤Ê¤ß¤Ë¡¢º£²ó¤Ï°ú¿ô¤È¤·¤ÆÅϤ¹¡Ø
Typ¡Ù¤Ï¡¢ÆÃ¤Ë»ÈÍѤ·¤Ê¤¤¤Î¤Ç0¤ËÀßÄꤷ¤Æ¤¤¤Þ¤¹¡£¤É¤Î¥×¥í¥·¡¼¥¸¥ã¤«¤é¡¢¤É¤Î¥×¥í¥·¡¼¥¸¥ã¤¬¸Æ¤Ó½Ð¤µ¤ì¤Æ¤¤¤ë¤Î¤«¡¢¤½¤³¤ò¤·¤Ã¤«¤êÍý²ò¤·¤Æ¤¤¤ì¤Ð¡¢¤ª¤Î¤º¤È¤ï¤«¤ë¤Ï¤º¤Ç¤¹¡£¾Ç¤é¤º¡¢»þ·ÏÎó¤òÀµ¤·¤¯Çİ®¤·¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¤Í¡£
¤«¤Ê¤êŤ«¤Ã¤¿¤Ç¤¹¤¬¡¢¤³¤ì¤Ç¥×¥ì¥¤¥ä¡¼¥¥ã¥é¥¯¥¿¡¼¤¬¥·¥ç¥Ã¥È¤òȯ¼Í¤Ç¤¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¤Ï¤º¤Ç¤¹¡£¥æ¡¼¥¶¡¼¥Õ¥©¡¼¥à¤ò¼Â¹Ô¤·¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£¥¡¼¥Ü¡¼¥É¤ÎZ¥¡¼¤ò²¡¤¹¤È¡¢¥×¥ì¥¤¥ä¡¼¥¥ã¥é¥¯¥¿¡¼¤¬¥·¥ç¥Ã¥È¤òȯ¼Í¤¹¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¤Ï¤º¤Ç¤¹¡£
¤¦¤Þ¤¯¤¤¤«¤Ê¤¤¤È¤¤¤¦¿Í¤Ï¡¢¤æ¤Ã¤¯¤ê¤Ç¤â¤¤¤¤¤Ç¤¹¤«¤é¡¢¤Ò¤È¤Ä¤Ò¤È¤Ä¥¨¥é¡¼¤ò¤Ä¤Ö¤·¤Æ¤¤¤¤Þ¤·¤ç¤¦¡£¥¨¥é¡¼¤¬µ¯¤¤Ê¤¤¤Î¤Ë¤¦¤Þ¤¯¤¤¤«¤Ê¤¤¾ì¹ç¤Ï¡¢¤É¤³¤«¤·¤é¤ÇÀßÄê¤ò´Ö°ã¤¨¤Æ¤¤¤ë¤Ï¤º¤Ç¤¹¡£ºÇ½é¤«¤é¤Ò¤È¤Ä¤Ò¤È¤Ä¤³¤Ê¤·¤Æ¤¤¤±¤Ð¡¢¤¤Ã¤È¤¦¤Þ¤¯¤¤¤¯¤Ï¤º¤Ç¤¹¤«¤é¤¬¤ó¤Ð¤Ã¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£
¥µ¥ó¥×¥ë¥À¥¦¥ó¥í¡¼¥É¡¡¢Í¡¡¥³¥Á¥é¤è¤ê¥À¥¦¥ó¥í¡¼¥É¤Ç¤¤Þ¤¹¡£¡ÊÊÌ´Û¡Ë
¢£³Ê¸À
½é´ü²½¤ò˺¤ì¤º¤Ë
¥·¥ç¥Ã¥È¤ÎÀ¸À®¤È°Üư¤Ïʬ¤±¤Æ¹Í¤¨¤ë
¤À¤¤¤ÖÊ£»¨¤Ë¤Ê¤Ã¤Æ¤¤Þ¤·¤¿¤Í¡£¾Ç¤ê¤Ï¶ØÊª¤Ç¤¹¡£





