呼ぶことで、毎回NPCの次の向きを計算して更新します。動かしてみると、このようになります:わらわらと、使い魔たちがPCを追いかけます。どの方向へ向かうときも、ずっと下の方向を向いてますね。4)のいずれかを入れれば、対応する(左、右、上、下)の方向を向きます。PCの場合は、押された方向キーに対応した方向に向くだけなので簡単です。NPCの場合は、4方向ではなく、360°に移動の自由度があります。キャラクターのスプライトは4方向ぶんしか用意していないので、360°の自由度がある方向を、4方向のどれかに割り当てることにしましょう。tan...)を使って向きの角度を計算する方法もありますが、今回は三角関数無しでやってみます。NPC1つぶんのテーブルです。Y方向のどちらへの動きの方が大きいかを調べます。PICO-8独自の関数で、数の絶対値を計算します。abs(3)は3、abs(-3)も3です。次に、移動量の大きい方の方向について、顔を向ける向きを決定します。X方向の移動量が大きかった場合、単位方向ベクトルのX成分(n.dx)が負なら左、正なら右に向きます。あとに呼び出しましょう。update_c(n)endちゃんとPCの方を向いているように見えます。NPCどうし重ならないようにするもう一手間加えましょう。今のままでは、ずっと動かしていくうちに、NPCが1箇所にかたまるようになってしまいます。これは、NPCどうしが重なることができるからです。重ならないようにするには、衝突判定のロジックを使います。NPCの新しい座標を計算・更新するとき、もしその座標にほかのNPCが居たら移動をやめる、という処理を加えます。新しい座標にほかのNPCが居るかどうか調べる関数を作ります。引数で与えられたNPCの新しい座標が、ほかのすべてのNPCとぶつかっていないか調べます。第7回に作った衝突判定の関数です。使って2つの条件を組み合わせています。とき、trueになります。aはbではないということです。引数のNPC自身も含まれるので、自分自身との衝突判定をしないように、この条件を加えています。要素を更新していました。今回は、ほかのNPCとの衝突を検知した場合は、更新をやめるようにしています。)かたまらずに群れるようになりました。第4引数は、衝突の半径です。この値を大きくすると、NPCたちは間隔をあけるようになります。数値を変えて試してみると、面白いかもしれません。最終的なコードは以下のとおりです。draw_beam)end生き物の群れを率いるプログラムが完成しました!これはこれで、何らかのゲームに仕立てられそうですが、本連載ではもっと殺伐としたゲームを作っていきます。次回は、ケチャップ銃でやつらを撃ち倒せるようにします。戦場に障害物を置いてゲーム性に深みを加えます。ビーム、撃っちゃうね。Royale』開発中。謎の惑星で最後の一人になるまで戦え次の記事『スーパーマリオ64』Aボタン押しを46回に抑えてクリアするプレイヤー現る。Miharahttp://mihararyosuke.com/なかなか完成しないローグライクゲーム『Gesuido』を開発し続けている30代後半。レトロでモダンなファンタジー・コンソール『PICO-8』に魅了され、勝手に普及活動に励んでいる。時のオカリナ』にて「スターフォックス64」のアーウィンを“改造なし”で呼び出すテクが発見される。RTAでも活躍ニュース中国で販売が禁止されている『龍が如く7』を売るために、売り手は隠語や暗号を使う。「ポーランドのゲームイベントから見えてくる楽しい文化」ニュースニンテンドーeショップの「予約キャンセル不可」ポリシーは合法。ドイツにて任天堂の主張を認める裁判所の判断下るニュース香川県がゲーム規制に対する意見を求める。ら豪華メンバー6人が集う特別企画2019年話題となったSteamゲーム6本を編集部が選ぶ。サブノーティカ』開発者インタビュー&担当者コラム。齊藤陽介氏ロングインタビュー。i5751」レビュー。有機ELで、ゲームはどこまで映えるのかコラム『モンスターハンターワールド:アイスボーン』作りこまれたアイルーたちの演出を紹介。Pass」の収益配分モデルにゲーム開発者から批判集まる。「Spotifyモデル」はゲームには適さないこちらもおすすめニュース『フォートナイト』プロゲーマーが、母親の学生ローンを「全額」肩代わりする親孝行。配信にてサプライズ報告し母は泣くWii本体の修理受付が、3月31日到着分をもって終了へ。2006年の国内発売から13年以上続いた修理サポート『サイバーパンク2077』延期理由はゲームの最適化不足だという噂報道に、『ゴッド・オブ・ウォー』開発者がツッコミ。