読者です 読者をやめる 読者になる 読者になる

Python3.5.2でRPGを制作する ~敵の視界が出来たよ~

python プログラミング

敵の視界を作成しました。これがまた一癖あって、なかなか難しい。

AIを既にこちらの位置を知っているため、逆に知らないふりをさせないといけない。頭のいいAIの方が作っていて楽なのだということを知った。

 

def enemy_visibility(pos):
    """ 敵の視界を調整する関数。posはプレイヤーの座標を格納したタプル。 """
    if pos[0] - enemy.vision_ratio <= player_pos[0] <=\
            (pos[0] + enemy.vision_ratio) and\
            (pos[1] - enemy.vision_ratio) <= player_pos[1] <=\
            (pos[1] + enemy.vision_ratio):
            # 敵の視界
        pos = enemy.is_movable(player_pos)
        return pos
    else:
        dst = (random.randrange(1, 13), random.randrange(1, 48))
        pos = enemy.is_movable(dst)
        return pos

enemy.vision_ratioは視界範囲。確か6で設定していたはず。あんま広いとすげー探知力になる

if文の条件がめっちゃ長くなったので、擬似コードで説明してみる。頑張るし

if (縦の座標- 視界範囲) <= (縦の座標) <= (縦の座標 + 視界範囲) かつ (横の座標 - 視界範囲) <= (横の座標) <= (横の座標 + 視界範囲):

分かるかな。分からんよね。とりあえず、わざわざこんな条件を加えないと、敵の視界が表現出来ないのだということを知ってもらえれば嬉しいかも知れない

やることまだまだ!頑張ろう