カメラ移動(質問掲示板

投稿: 002 1  mini ugonight 投稿:2011/08/30 15:59:30(最新:2011/08/31 11:45:31)
上へゆっくり上がっていって指定したところで2秒ぐらい止まってもとのところに戻したいんですがこれをみてもうまくいきません…

コメントする

コメントするには、ログインする必要があります。

コメント一覧

002 1  mini ugonight(投稿日:2011/08/31 11:45, 履歴)
なんですとぉ~そうゆうことだったんですか~
無事にうまくいきました!ありがとうございます。

テスクエ4で使ってるので楽しみにしてください☆
Cdv30200 aoi icon mini aoihikawa(投稿日:2011/08/31 11:02, 履歴)
waitTimeしか使えない、ということから
もしかして、このスクリプトの実行タイミングは
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秒ぐらい待機」の数値も実行タイミングに合わせて
変更する必要があると思います。
002 1  mini ugonight(投稿日:2011/08/31 10:33, 履歴)
…しばらくたってから動き始めますね……バグ…?

何度もすみません…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秒くらい入っている見たくなってしまいます…
002 1  mini ugonight(投稿日:2011/08/31 10:20, 履歴)
いや、ものすんごくゆっくりだけど進んでた~!
waittimeの値は結構小さくないとだめですね…

お騒がせしましたort
002 1  mini ugonight(投稿日:2011/08/31 10:19, 履歴)
ありがとうございます。

座標はそこがこんがらがってしまうんですよね~気をつけないと…!

移動する幅が小さければいいんですよね…0.1にしても結構速かったので…
0.1移動した後に少し待ってからまた移動するというのを繰り返してくれると思ったんですが…ちょっとでもwhileに入ると固まっちゃいますね…

スタッフロールにも夜空をバックにしてゆっくりあがっていくようにしたいんですけどね…
Cdv30200 aoi icon mini aoihikawa(投稿日:2011/08/31 10:05, 履歴)
座標は画面の左上が基準となるゼロで
右に行くほどXの値が、
下に行くほどYの値が大きくなります。

つまり、
Xが小さくなっていくと左に
Xが大きくなっていくと右に
Yが小さくなっていくと上に
Yが大きくなっていくと下に
移動するわけです。

この法則さえ覚えておけば大丈夫ですよ。
Cdv30200 aoi icon mini aoihikawa(投稿日:2011/08/31 10:02, 履歴)
移動速度を遅くする、ということは
移動する幅が小さくなれば
よりゆっくり移動するように見えるわけです。

ここの中で言うと
ido_y = 0.5 #移動ペース  

の値ですね。
002 1  mini ugonight(投稿日:2011/08/31 09:51, 履歴)
あ…何度もすみません…

めっちゃスローでやりたいんですけどwhileの中にwaittimeを入れると固まっちゃいます…
どこら辺をいじればいいでしょうか…?
002 1  mini ugonight(投稿日:2011/08/31 09:43, 履歴)
おおぉ!できました!

やっぱり座標はよく勉強したほうがいいですね…

ありがとうございました!
Cdv30200 aoi icon mini aoihikawa(投稿日:2011/08/31 07:42, 履歴)
大体でよければ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
002 1  mini ugonight(投稿日:2011/08/31 00:45, 履歴)
あれ?試してみたらいきなり上のほうに行って戻らなくなってしまいました…
002 1  mini ugonight(投稿日:2011/08/31 00:39, 履歴)
ありがとうございます!あせってたもんで重要なことを書き忘れてました…

あの…ゲットタイムはこちらの都合上使うとまずいのですが…
waittimeでもOKですかね…

Cdv30200 aoi icon mini aoihikawa(投稿日:2011/08/30 23:55, 履歴)
3行目間違えてましたね。。。(w;
mokuhyo_y = camera_y - 32 * 15 #目標値
Cdv30200 aoi icon mini aoihikawa(投稿日:2011/08/30 23:54, 履歴)
こんな感じかも(未テスト)
#初期値
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
   mini ___(投稿日:2011/08/30 23:40, 履歴)
スクリプトを提示してみるとか、
こういう現象が起きるとか、
そういったことも書くといいかもしれません。
こーんな
スクリプトなんですが、2秒止まった後下に戻るつもりが
左にゆっくりと進んでいってしまいます。

みたいなね。