
ã¶ã³ãã£ã©ã®å¶äœé¢šæ¯ ïœã«ãåããïœ
ä»åã¯ãã«ãåãã®ãããããã€ã¡ãŒãžãã
ã¶ã³ãã£ã©ã®Â å¶äœéçšÂ ãã玹ä»ããŸãã
æ¬èšäºã¯ãå人ã²ãŒã éçºã«é¢ãããã®ã§ãã
æç« ã®æ¹ãå²ãšé·ããªã£ãŠãããŸãã
èå³ããæã¡ããã ããç« ã ãã§ã
ãã²ãèªãã§ãã£ãŠãã ããïŒ
ã€ã¡ãŒãžã€ã©ã¹ããæã
é±å±±ã¹ããŒãžã®æµæ°Žå°åž¯ã«
ããµã¯ã¬ããã®ã¶ã³ãã£ã©ã
ç»å ŽãããããšæããŸãã
åäŸã®é ãç°èã«è¡ããš
ããè¶ãšãªã¬ã³ãžã®è²ãããå°ããªã«ãã
çšæ°Žè·¯ãªã©ã§ãããã€ããŸããããã§ãã
ããã€ãããµã¯ã¬ããã§ããã

ãŸãã¯èªç±ã«çµµãæããŠã¿ãŸãã

ã©ã®éãããçµµã«èœãšã蟌ããš
è²ã
çãããšã«ãªããŸãã®ã§
éã§ããããããšããããªã§é²ããŸããã
ïŒãšãã«èã®æ¬æ°ãªããã¯ãã¯ããããããããã¡ãã£ãŠãŸããïŒ
ãããçµµã詊è¡é¯èª€ãã
çµµãæãããããšãã£ãŠ
ãŸã ãŸã å®å¿ã¯ã§ããŸããã
å®éã«ããããæã£ãŠã¿ããš
ãããŸã§æ°ã¥ããŠããªãã£ãåé¡ã
ããããåºãŠããããã§ãã
è²ã
ãšè©ŠããŠã
èªåã®äžã®ãæ£è§£ããæ¢ã£ãŠãããŸãã
æåã«ã§ãããã®ããã¡ãã

ãŸã㯠圢ã«ãã ã®ã§ç²Ÿäžæ¯ããšãããšããã§ããã
äžåŒåžãããŠãããå°ãããã°ã£ãŠã¿ããããš
èªåã«èšãèãããŸãã
ãã£ããããã®äžåŒåžã倧åã ãšæã£ãŠããŸãã
ãããŠæ°ã«ãªã£ãç¹ã
ïŒã€ãã€ä¿®æ£ããŠããããšã«ããŸãã
å šäœçã«å°ããã®ã§ãã²ãšãŸãã倧ããããã
èãæ¯ã®ããã«ãèŠããã®ã§ãçŽããã
é¡ã ãã®ãã£ã©ã«ã¿ããã®ã§ãäœã®ã©ã€ã³ïŒåœ¢ïŒãåºããã
次ã«ã§ãããã®ããã¡ãã

ã²ãšãŸãã倧ãããªã
èãçŽããäœã®ã©ã€ã³ãåºããŸããã
ãã®æã®ã«ãã«ãäžæ©è¿ã¥ããŸããã
â¯â¯ããããäžå£°ã»ããæ°ãããŸãã
ïŒãŸã åäŸã®é ã€ããŸããã¢ã€ããããªãã®ããâŠïŒ
ãç®ãã®éšåã§ããããâŠâŠã
å°ã詊ããŠã¿ããã®ã以äžã

âŠâŠãããã¡ãã£ãšéãããïœã
ïŒããã¯ãã³ã®æµã£ãœããç®ãã«ããããšããïŒ
ãªãããããã
ããå°ãç®ã®ãŸãããããã°ã£ãŠã¿ããšâŠ

ãã£ïŒããããã ãŒïŒïŒ
ïŒãªã¢ã«ãã¯ç ç²ã«ãªããŸããããç·åç ã«ãã£ãšããã ïŒ
ãšããããšã§
ä»äžãã«è²å³ãšåœ¢ããšãšã®ã
ç¡äºãç§ã®äžã®ãæ£è§£ããåºãŸããïŒïŒ


ãã¡ãã³ã³é¢šã®ã²ãŒã ç»é¢ãç®æããŠããã®ããã£ãŠãè²ã®æ°ã¯ãªãã¹ãããŒãããã«ããŠããŸãã
ããã¯ãã³ã®ãã£ã©ãèŠãŠãããšã
ã²ãšãã£ã©ã«äœ¿ããè²ã®æ°ã¯ãïŒãïŒè²ã
ãšããã®ããåºæ¬ã«ãªãããªããšæã£ãŠããŸãã
ä»åã¯ãé»ãçœããªã¬ã³ãžãããè¶ããããŠé»åã§ããµã¯ã¬ãæãåºããŸããã
åãã®ãã¿ãŒã³ãèãã
ãããçµµãåºãŸããš
äžæ°ã«å®å¿æãåºãŠããŸãããïŒ
ããã§ã¯ããã®ãã£ã©ã«
ã©ããªåããããããã®ããèããŸãã
ïŒçãããªããã®ã«ããã£ã©ããã©ãæçããŸãããïŒïŒ
ããã§ã¯ãçè ã®å ŽåãèŠãŠãããŸãããã
æµæ°Žãšãªã¢ã¯ãã ã§ããè¶³å Žãäžå®å®ãªå Žæã§ãã
ãã®ããããã®ãã£ã©ã匷ããããš
åã«Â é£ããã ãã®ã²ãŒã  ã«
ãªã£ãŠããŸããããããŸããã

ãæè»œãªã¬ãã颚ã²ãŒã ãç®æãããã§
ããã¯é¿ããããšããã
äžæŠããã®ãã£ã©ã¯
ãHPã¯é«ãã ãã©ãåãã¯åçŽã
ãšããæ¹åæ§ã«ããŸãã
åäœã¯æ¬¡ã®ïŒãã¿ãŒã³ã®ã¿ã
æåã¯ãå¯ãŠãã
被匟 or ãœãŠã«ãã³æ¥è¿ã§ãèµ·ãã
èµ·ãããšã äžçŽç·ã«èµ°ã
ã¢ãã¡ãŒã·ã§ã³ãäœã
ãŸãã¯å¯ãŠããæã®ã¢ãã¡ãŒã·ã§ã³ããé²ããŸãã
2ã³ãã§ããã€ããã€ãããæãã
åºããããšæããŸãã
ãšãã£ãŠãããããåçŽã§
ããµããããã
ç®ãã€ãããã
äœãå°ãäžäžããã
ãšãªãããã«ãå°ãæçŽãããã ãã§ããã

ã³ããæããããåäœããã§ãã¯ã

ãã£ã¡ãåã«ãæ°æã¡ãããïœã«
ãã€ããã€ãããŠãŸããïŒãªãŸãããªãïŒïŒ
ïŒç®ã®ã€ããå ·åãããæãã«ã§ããæ°ãããŸãïŒ
èµ·ãããšãã®çµµã¯ãã®ãšããã

ãæ¬¡ã¯ããã«ãèµ°ããã«åãæãããŸãïŒïŒ
èãã·ã£ã«ã·ã£ã«ãš
ããããªãåšçšã«åãæãã«ãããã§ãã
å®ã¯æåã
äžæ°ã«å
šäœã®åããäœãããšããŠã倱æããŸããã

ã·ã£ã«ã·ã£ã«ã¯ããŠããŸãã
èãã°ããããã¡ãªããã©ãããŠã
ããã§ã¯Â çŽåŸÂ ã§ããªãã£ãã§ãã
é¢åã§ãããé åãããŠ
èã®äžæ¬äžæ¬ã®åãã
ãåããŠãäœã£ãŠããããšã«ããŸãã
ââ ãããäžçªã®è¿éã¯é åãã ã£ã ãã§ã ââ
ïŒã³ã䜿ã£ãŠããŸãã¯å·ŠåŽã®å°ããèããã

次ã«å·ŠåŽã®å€§ããèã

ãã®èŠé ã§ã4æ¬ã®èã®åããäœã£ãŠãããŸããã
ã¡ãªã¿ã«ãäœãèã»ããµãã®ããŒãã¯
ã¬ã€ã€ãŒã§åããŠç®¡çããŠããŸãã
ïŒäœæ¥å¹çã®è¯ããæ®µéãã§ããããïŒ

ããããã
å
šéšã®èã®åããçµã¿åãããŠã¿ãŸãããïŒïŒ

ããããããªãã§ãããããïŒïŒ
ããã§çè
ã¯ããããããçŽåŸãã§ããŸããïŒïŒ
æåŸã«äž¡æã®ãã¡ã
ãã§ããã§ãã£ãšãããŠã宿ã§ãïŒïŒ


ãã èµ°ãã ããªã®ã«
ããã«äœãããã®ãããã£ã©ã§ããã
ïŒãã¡ãæŠåšã«ããªãã£ãã®ã¯ãå°ãå¿äœãªãã£ãã§ããâŠïŒ
ã³ãŒãã«èœãšã蟌ã
ããŠãããããã¯
çè
ã«ãšã£ãŠã¯ãå²ãšæ¶å詊åã«ãªããŸãã
仿§ã©ããã®åããããã°ã©ãã³ã°ããŠ
ã³ãŒãã«ããšããŠãããŸãã
ãŸãã¯åºæ¬ã®ãã©ã¡ãŒã¿ã決ããŸãã
éåã®åœ±é¿ïŒãã
å£ãåºã«ã¶ã€ããïŒãã
æ»æãåå°ããïŒãªã
HPïŒïŒ
æ»æåïŒïŒ
ãã®ããã«ãæµãã£ã©å
±éã®éšåã¯
ããçšåºŠãã©ã¡ãŒã¿åããŠããŸãã
ç¶ããŠã¯ããã£ã©ã®ã¢ã¯ã·ã§ã³ãå®è£ ããŸãã
class SawaganiAction(BaseAction):
"""ãµã¯ã¬ã"""
def __init__(self, images):
super().__init__(images)
self.is_hit = False # 被匟å€å®ã®çµæ
self.in_range = False # æ¥è¿å€å®ã®çµæ
self.range_x = WIDTH * 0.30 # æ¥è¿å€å®ã®éŸå€
self.speed_x = 1.1 * SCALE # ç§»åã¹ããŒã
self.set_next_state("sleep", 240, 1, 0) # åæã¢ãŒãïŒå¯ãïŒã¢ã¯ã·ã§ã³ã®åæèšå®ã§ãã
è¢«åŒŸãæ¥è¿å€å®çšã®ãã©ã°ãæ¥è¿å€å®ã®éŸå€ãç§»åã¹ããŒããåæã¢ãŒãïŒå¯ãïŒãçšæããŸãã
次ã«ã¢ãŒãïŒå éšç¶æ ïŒã®ç®¡çãå®è£ ããŸãã
def update_mode(self, info):
# å¯ãŠããæ
if self.is_state("sleep"):
# 被匟 or ãã¬ã€ã€ãŒæ¥è¿ã§èµ·ãã
if self.is_hit or self.in_range:
self.set_next_state("wakeup", 120, 2, 0) # èµ·ãã
# èµ·ããæèµ°ã
elif self.is_state("wakeup"):
self.set_next_state("run", 60, 4, 0) # èµ°ããå¯ãŠãããã¢ãŒãã®ãšãã«ã被匟ããããã¬ã€ã€ãŒæ¥è¿ã§ããèµ·ãããã¢ãŒãã«é·ç§»ããŸãã
ãŸããèµ·ãããæ¬¡ã«ãèµ°ããã¢ãŒãã«é·ç§»ããŸãã
ã¢ãŒã倿Žã§ã¯ããã¬ãŒã ã®æŽæ°é床ããã¢ãŒãåãæ¿ãã®åšæãèšå®ããŠããŸãã
ïŒã¢ãŒãã«å¿ããŠã¢ãã¡ãŒã·ã§ã³ã®ã³ãã®å¶åŸ¡ãåãæ¿ããŸãïŒ
æåŸã«ãåãã®ç®¡çãå®è£ ããŸãã
def update_move(self, info):
# å¯ãŠãããšãå€å®
if self.is_state("sleep"):
# 被匟å€å®
if info["damaged"]:
self.is_hit = True
# æ¥è¿å€å®
diff_x = abs(self.x - info["player"].x)
if abs(diff_x) <= self.range_x:
self.in_range = True
# èµ·ããæãã¬ã€ã€ãŒã®æ¹åãåã
elif self.is_state("wakeup"):
self.turn_to_player()
# èµ°ã£ãŠããæXæ¹åã«ç§»å
elif self.is_state("run"):
# å£ã§æ¹å転æ
if info["on_wall"] == self.direction:
self.turn()
self.x += self.speed_x if self.direction == "right" else -self.speed_xå¯ãŠãããšãã¯ãè¢«åŒŸãšæ¥è¿ãå€å®
èµ·ããããäžæŠãã¬ã€ã€ãŒã®æ¹ãåã
èµ°ã£ãŠãããšãã¯ãXæ¹åã«ç§»åãå£ã§æ¹å転æ
ã¢ãŒãã®ç®¡çãšåãã®ç®¡çã¯åããããã«ããŠããŸãã
åãã®æ¹ã¯æ¯ãã¬ãŒã åŠçããŠããŸãããã¢ãŒãã®æ¹ã¯ã¢ãŒãæŽæ°ã¿ã€ãã³ã°ã§ã®åŠçãšãªã£ãŠããŠããããã£ãããšããã¿ã€ãã³ã°ã«ãªããŸãã
ä»ã®ãçè
ã®ããœãŠã«ãã³éçºãšã³ãžã³ãã§ã¯
ãã®ãããªæãã§ãæµãã£ã©ãå®è£
ããã¹ã¿ã€ã«ã«ãªã£ãŠããŸãã
ïŒä»ã¯æäœããæ¥œãã¿ã€ã€ãå°æ¥çã«ã¯AIã«ãã¬ã€ã«ããŠãããããïŒ

è²ããããïŒ
ãã¹ããã¬ã€
ãããé ã®äžã§ããããã¯ç»é¢äžã§
çæ³ã®ãã£ã©ãåããŠããŠã
å®éã«æå
ã§Â éãã§ã¿ããŸã§ã¯åãããªã ã®ã
ã²ãŒã éçºã®ééå³ã§ãïŒ
æ©éãæè§ŠããããããŠã¿ãŸãããïŒïŒ
ã¹ããŒãžã«äœã£ããã£ã©ãé 眮ããŸãã
"waterflow": [
{
"name": "sawagani",
"x": 270,
"y": 80,
"direction": "left"
},
{
"name": "sawagani",
"x": 400,
"y": 105,
"direction": "left"
},
:
:JSON圢åŒã®ãã¡ã€ã«ã䜿ã£ãŠãã¹ããŒãžã®ãããããã£ã©ãã¢ã€ãã ã®é 眮ã管çããŠããŸãã
ãã®ããã«ã座æšãšåããæžãããã£ã©ã®ãªã¹ãã远å ããŠããããšã§ããããã®ç¹å®ã®äœçœ®ã«ããã®ãã£ã©ãç»å ŽãããããŸãã
ããã§ã¯ããããããã¬ã€ããŠã¿ãŸãïŒ

ããïœïŒ
ãµã¯ã¬ããããæãã«è¥²ã£ãŠããŸãïŒïŒ
ãã¯ãè¶³å Žãæªãã®ã§
ããããããã¡ããã©ããããã§ãã
ããã°ã£ãŠäœã£ãã«ãã®èãã°ãã§ãã
èŠäºã«æµæ°Žã§é ããŠããŸã£ãŠãŸããã
倧誀ç®ã§ããïœã
ãããå®éã«ãã¬ã€ããŠã¿ããŸã§ã¯
æ°ã¥ããªãã£ãã§ããã
以äžã§ããã¶ã³ãã£ã©ã®å¶äœé¢šæ¯ïœã«ãåããïœãã¯ãããŸãã§ãã
æåŸãŸã§ãèªã¿ããã ããããããšãããããŸããããã²ã次åããããããé¡ãããŸãã
çæ§ãè¯ãã©ã€ãã¯ãŒã¯ãïŒïŒ