【初心者】スレを立てる前にココで質問を【Part14】at GAMEDEV【初心者】スレを立てる前にココで質問を【Part14】 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト400:名前は開発中のものです。 07/06/18 22:50:53 zckMTPmQ >・部屋が四角でなければならない これは迷路のような複雑な形状ではなく下のコードを見てもらえばわかると思いますが 壁壁壁壁壁壁 通路 壁 壁壁壁 壁 壁○ 壁 壁○ 壁 壁 壁 壁壁壁 壁 敵 ↑ 壁壁壁壁 壁○○○壁 壁○○○壁 壁○○○壁 壁 通路 壁 壁 壁壁壁 壁 敵 ↑ ○の部分がチェックされないという現象がおき下手すりゃ無限ループします 人に見ていただくときにわかりにくいとは思っているのですが [x,y] →x ↓y このようなx、y座標で一番左上を(0,0)と考えています というわけでコードを書きます 色々あれなのは自分でもわかってるんであんまり突っ込まれても困ります 401:名前は開発中のものです。 07/06/18 22:53:32 zckMTPmQ teki(bangou, 5) =敵のx座標 teki(bangou, 6) =敵のy座標 teki(bangou, 12) =敵の向かうx座標 teki(bangou, 13) =敵の向かうy座標 map(x,y,0)=2 壁の設定 map(x,y,0)=4 通路の設定 xx = 0: yy = 0 xxx = 0: yyy = 0 zzz = 0: xyz = 0 '下から上に進んで部屋に入ったときに Do While xxx < 10 '入った位置の一番左が通路か壁かチェック→ If Map(teki(bangou, 5) - xx - 1, teki(bangou, 6) - yy, 0) = 4 Then teki(bangou, 12) = teki(bangou, 5) - xx - 1 '目標を決める teki(bangou, 13) = teki(bangou, 6) - yy xxx = 100: yyy = 100: zzz = 100 End If If Map(teki(bangou, 5) - xx - 1, teki(bangou, 6) - yy, 0) = 2 Then If Map(teki(bangou, 5) - xx, teki(bangou, 6) - yy - 1, 0) = 2 Then xxx = 100 '左の列にはなかった End If: yy = yy + 1 'もう一行上をチェック Else: xx = xx + 1 End If Loop: yy = yy - 1 入った地点から左にひとつずつ調べて行き 左が壁なら上を調べて行き左、上、共に壁ならそこから右に移動しながら上を調べていく 通路が決まり次第その地点を記憶し適当にループを脱出する 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch