カメラ移動(質問掲示板)
投稿: ugonight
投稿:2011/08/30 15:59:30(最新:2011/08/31 11:45:31)
上へゆっくり上がっていって指定したところで2秒ぐらい止まってもとのところに戻したいんですがこれをみてもうまくいきません…
ツイート
コメントする
コメントするには、ログインする必要があります。
コメント一覧
waitTimeしか使えない、ということから
もしかして、このスクリプトの実行タイミングは
1秒に1回程になっていますか?
もしそうであれば、
「waitTime(10)」により10秒ほど遅れてから
動くようになると思います。
ループの箇所を見てみましょう
スクリプトは常に上から順に実行されるため
最初の座標の再計算の前に、座標をセットしています
その後、待機時間が発生しているため、
最初の待機時間の発生中は、
「初期値にカメラを移動」しているわけです。
これにより、最初の待機時間の発生中、
「何もしていないように見える」わけですね。
それでは、どうすればいいか。
最初から、カメラの座標を移動してあげるといいのです。
どうでしょうか。
後半のスクリプトの変更もお忘れなく。
また、「2秒ぐらい待機」の数値も実行タイミングに合わせて
変更する必要があると思います。
もしかして、このスクリプトの実行タイミングは
1秒に1回程になっていますか?
もしそうであれば、
「waitTime(10)」により10秒ほど遅れてから
動くようになると思います。
ループの箇所を見てみましょう
while camera_y > mokuhyo_y moveCamera(true, getPlayerPosX(), camera_y) #←カメラの座標を移動 camera_y = camera_y - ido_y #←座標を再計算 waitTime(10) #←10秒(?)待機 end
スクリプトは常に上から順に実行されるため
最初の座標の再計算の前に、座標をセットしています
その後、待機時間が発生しているため、
最初の待機時間の発生中は、
「初期値にカメラを移動」しているわけです。
これにより、最初の待機時間の発生中、
「何もしていないように見える」わけですね。
それでは、どうすればいいか。
最初から、カメラの座標を移動してあげるといいのです。
while camera_y > mokuhyo_y camera_y = camera_y - ido_y #←座標を再計算 moveCamera(true, getPlayerPosX(), camera_y) #←カメラの座標を移動 waitTime(10) #←10秒(?)待機 end
どうでしょうか。
後半のスクリプトの変更もお忘れなく。
また、「2秒ぐらい待機」の数値も実行タイミングに合わせて
変更する必要があると思います。
…しばらくたってから動き始めますね……バグ…?
何度もすみません…aoihikawaさんのコードに少し加えて…
とやったら勝手にこのコードの前と後ろにwaitTimeが10秒くらい入っている見たくなってしまいます…
何度もすみません…aoihikawaさんのコードに少し加えて…
#初期値 camera_y = getPlayerPosY() #カメラ座標 mokuhyo_y = camera_y - 32 * 15 #目標値 ido_y = 1 #移動ペース #カメラの移動1 while camera_y > mokuhyo_y moveCamera(true, getPlayerPosX(), camera_y) camera_y = camera_y - ido_y #カメラ座標を少しずつ上へ waitTime(10) end #2秒ぐらい待機 waitTime(2000) #カメラの移動2 while camera_y < getPlayerPosY() moveCamera(true, getPlayerPosX(), camera_y) camera_y = camera_y + ido_y #カメラ座標を少しずつ下へ waitTime(10) end
とやったら勝手にこのコードの前と後ろにwaitTimeが10秒くらい入っている見たくなってしまいます…
大体でよければwaittimeでも。
上手く動かなかったのは、
単純なミスがもう一箇所ありました。
ただ、コピペするだけではなく、
各コードの意味もしっかり見て
理解しながら利用すれば
気がつきますけれど(w
6行目と20行目を修正、待機方法をwaitTimeに変更
上手く動かなかったのは、
単純なミスがもう一箇所ありました。
ただ、コピペするだけではなく、
各コードの意味もしっかり見て
理解しながら利用すれば
気がつきますけれど(w
6行目と20行目を修正、待機方法をwaitTimeに変更
#初期値 camera_y = getPlayerPosY() #カメラ座標 mokuhyo_y = camera_y - 32 * 15 #目標値 ido_y = 0.5 #移動ペース #カメラの移動1 while camera_y > mokuhyo_y moveCamera(true, getPlayerPosX(), camera_y) camera_y = camera_y - ido_y #カメラ座標を少しずつ上へ end #2秒ぐらい待機 waitTime(2000) #カメラの移動2 while camera_y < getPlayerPosY() moveCamera(true, getPlayerPosX(), camera_y) camera_y = camera_y + ido_y #カメラ座標を少しずつ下へ end
こんな感じかも(未テスト)
#初期値 camera_y = getPlayerPosY() #カメラ座標 mokuhyo_y = camera_y + 32 * 15 #目標値 ido_y = 0.5 #移動ペース #カメラの移動1 while camera_y < mokuhyo_y moveCamera(true, getPlayerPosX(), camera_y) camera_y = camera_y - ido_y #カメラ座標を少しずつ上へ end #2秒ぐらい待機 setBaseTime() timer = getTime() while timer < 2000 waitTime(10) timer = getTime() end #カメラの移動2 while camera_y > getPlayerPosY() moveCamera(true, getPlayerPosX(), camera_y) camera_y = camera_y + ido_y #カメラ座標を少しずつ下へ end
無事にうまくいきました!ありがとうございます。
テスクエ4で使ってるので楽しみにしてください☆