カメラ移動について(質問掲示板

投稿: 000 1  mini naoki 投稿:2011/05/21 17:21:21(最新:2011/05/21 21:43:21)
a = getPlayerPosX() 
while a < getPlayerPosX() + 32 * 11 
  moveCamera(true, getPlayerPosY(), a) 
 a = a + 0.05
end

a = getPlayerPosX() + 32 * 11
while a > getPlayerPosX() 
  moveCamera(true, getPlayerPosY(), a) 
a = a - 0.05
end 
moveCamera(false)


という様にしたら、下に動きました。
でも下ではなく、右にしたいのですが、
どうすればいいのでしょうか。お願いします。


コメントする

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

コメント一覧

   mini ___(投稿日:2011/05/21 21:43, 履歴)
ぐおぉ…頭を揃えることばかり気にしてて、
コメント文頭に#付け忘れてる…精進せにゃあ。

既にいくつかゲームを作成なさっていますし、
最近では大規模なゲームの作成をやっていらっしゃるようなので、
xy座標系がわからん、ということは無いと思うんですけどね。

数学とかとは違って、左上(0,0)の右下(x,y)ですからねー。
Logo mini hightoller(投稿日:2011/05/21 21:24, 履歴)
前後の質問から、
もしかすると中学校数学から説明しなきゃならんのかも、と思った。
なぜxやyが空間を表す変数なのか、とかね。
   mini ___(投稿日:2011/05/21 21:07, 履歴)
関数リファレンス/moveCamera()

考え方は理解できていますか?
この関数に座標を指定すると、その座標にワープする形でカメラが動きます。
すなわち、カメラを段階的にスライドさせるように動くためには、
小さいワープを繰り返して、目的地まで動かしてやる必要があります。

とりあえず、カメラを左方向(x方向負)に100動かしましょう。
cx = getPlayerPosX()  # 現在のカメラの座標は
cy = getPlayerPosY()  # 自機の座標と同じであると考えていいです
while (cx > getPlayerPosX-100)  # 目的地まで繰り返し
  moveCamera(true , cx , cy)  # カメラに座標を指定してやります
  cx = cx-5  # カメラのx座標を少し左に変更します
  cy = cy+0  # x座標の変更だけなので、y方向は変化させません
end  # この場合cyは変化しないので、直接GetPlayerPosY()でも可


次に、下方向(y方向正)に200動かしてみます。
cy = getPlayerPosY()
  # 今回変更するのはカメラのy軸だけなので、
    上記のとおり必ずしもcxを用意する必要はありません
while (cy < getPlayerPosY+200)
  moveCamera(true , getPlayerPosX() , cy)  # カメラの座標を指定
  cy = cy+5  # カメラ座標の変更
end  # x軸に変更は加えないので、綺麗にy方向にスライドして見える

どちらのスクリプトも、カメラ位置を戻すために
別途 moveCamera(false) を使用してください。
000 1  mini naoki(投稿日:2011/05/21 18:44, 履歴)
う~む。どうやら、スクリプトが間違っていたらしい。
a = getPlayerPosY()  
while a < getPlayerPosY() + 32 * 11  
  moveCamera(true, getPlayerPosX(), a)  
 a = a + 0.05 
end 
 
a = getPlayerPosY() + 32 * 11 
while a > getPlayerPosY()  
  moveCamera(true, getPlayerPosX(), a)  
a = a - 0.05 
end  
moveCamera(false)

らしい。
XとYはどこにどういう風にいれればいいかが
わかりません!教えてください!

Nyan mini rurun9(投稿日:2011/05/21 18:00, 履歴)
・wiki スクリプト/コツ/自由なカメラ移動

aを変化させて、カメラのy位置にaを入れてるんだから縦方向に動くかと。
むしろカメラx位置にプレイヤーy位置入れる必要あるのかな。

逆に、何がわからないのでしょう。
関数リファレンスの説明?
それともwhile~endの使い方?