トピック
??? 258556

NPCを自動で移動させる方法

RPGの町にいる町人が勝手に動くようにしたいのですがどうすればいいんでしょうか?
4そうだね
プレイ済み
返信[1]
親投稿
SHUHEI Syuhei36
あまさと しおんさんのプレイ日記を遡ればお目当てのものが見つかるはず
2そうだね
プレイ済み
返信[2]
親投稿
みむ*mim hidemimtp
これもまた色々方法はあると思いますが、 例えば5秒おきに動くなら、そのSPのSPVARの何番かに「MAINCNT+300」(MAINCNTはシステム変数(ヘルプ参照)。300フレーム=5秒)を代入しておいて、メインループで、MAINCNT>SPVARの値 なら移動処理をする、ってやり方が1つです。 実際に動かすのはRND(4)で、0なら上、1なら下・・・という風にすればいいかなと。(SPANIM使うとラクチン)
2そうだね
プレイ済み
返信[3]
親投稿
みむ*mim hidemimtp
あ、「MAINCNT+300」だと動くたびにSPAVRを更新しないといけないから、「300」だけ代入しておいて、 IF (MAINCNT MOD SPVARの値)==0 THEN~ のほうがいいかも。
2そうだね
プレイ済み
返信[4]
親投稿
歩かせるにはSPANIMが便利。ただもしキャラクタ同士の当たり判定(キャラの居る場所には移動出来ない)を持たせようとするとちょっとやっかい。BGだけなら楽なんだけどね…。
2そうだね
プレイ済み
返信[5]
親投稿
SPANIMによる歩くNPCサンプルとやらは一番上の詰め合わせに。 5人のキャラが(起動時にランダムに決まって) 縦or横、1~3マス の範囲を往復します。 壁で止まるとか話しかける機能はないですが、SPANIMに投げておけば永遠に歩き回ってくれる、というサンプルです。
2そうだね
プレイ済み
返信[6]
親投稿
タタミオロシ tatamigrater
やいのりさんの「やくそうクエスト」に NPC移動処理のソースが載ってたので参考に出来るかも
0そうだね
プレイ済み
返信[7]
親投稿
??? 258556
返信遅れました。すいません。 とりあえず作ってみたのですが動きません。どこがダメなんでしょうか。 あと、あまさと しおんさんのサンプルをみたのですが 「<<」 はどういう意味なんでしょうか。 やくそうクエストはまだみていません。すいません。 のみこみが悪くてすいません。
0そうだね
プレイ済み
返信[8]
親投稿
みむ*mim hidemimtp
まず自動で動くうんぬんの前に、式には処理順序があるので、これだと「MAINCNT MOD (15==0)」のように解釈されてしまいます。あと、ANDと&&は意味が違います。 例えば一番上の行の式は(予想ですが)、 IF CHECK==0 && (MAINCNT MOD 15)==0 && (MAINCNT MOD 30)!=0 THEN~ です。
1そうだね
プレイ済み
返信[9]
親投稿
??? 258556
みむさん» してみました。しかし、やっぱり動きません。 変数CHECKの中身を調べてみたら、ずっと1の状態になっていました。これはどうすればいいんですか?
0そうだね
プレイ済み
返信[10]
親投稿
みむ*mim hidemimtp
ご参考まで。1秒に一回、上下左右にランダムで動きます。 SPSET 0,0 SPOFS 0,128,128 WHILE 1:VSYNC IF (MAINCNT MOD 60)==0 THEN  R=RAND(4)  X=16*((R==0)-(R==1))  Y=16*((R==2)-(R==3))  SPANIM 0,"XY+",-10,X,Y,1 ENDIF WEND
0そうだね
プレイ済み
返信[11]
親投稿
みむ*mim hidemimtp
あ、RANDじゃなくてRNDですね。
0そうだね
プレイ済み
返信[12]
親投稿
??? 258556
はい。完全に放置してました。すいません。 もう無理だと思って諦めかけていたとき、パッとこの方法を思いついて試行してみたら出来ました。コメントして頂いた方々の想像していた形と少し(と言うか結構)違うと思いますがこのままつくり続けていきます。 ちなみにSPANIMですが、他のところで使っていたので使えませんでした。 コメントありがとうございました。
0そうだね
プレイ済み
返信[13]
親投稿
みむ*mim hidemimtp
「ようは動けばいいのです!!」キリッ SPANIMは他のところで使っている、というのは気になりますが、 別に例えばIでアニメしながらXY、という重複した使い方もできますよ。意味が違うかもしれませんが、一応知識だけ。
2そうだね
プレイ済み