拡張機能移動(質問掲示板

投稿: Material 71926 1 mini なとおとき 投稿:2012/01/26 21:32:26(最新:2012/01/29 03:07:29)
ノベルゲームで

tekix = 800 - 32 * 9 #スプライト座標変更用変数設定
tekiy = 32 * 4
purasu = 1

while tekiy < 32 * 8 #決まった座標に移動するまで繰り返し
if tekiy < 32 * 8 
purasu = 1
elsif tekiy > 32 * 8
purasu = - 1
end
tekiy = tekiy + purasu #スプライト座標変更
setSpritePosition(teki1, tekix, tekiy)
drawCanvas() #描画
waitTime(1) #時間待ち
end



このスプリクトを実行した瞬間にそのスプライトが、
ぱっと消えてしまいます。
エラー文はありません

何とか移動させたいのですが...
どう直せばいいでしょうか

コメントする

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

コメント一覧

Material 71926 1 mini なとおとき(投稿日:2012/01/29 03:07, 履歴)
ふむふむ
  ((φ( ̄ー ̄ )
Nyan mini rurun9(投稿日:2012/01/28 23:40, 履歴)
しかも、位置を移動させるwhileループを全く通過していないw

setSpriteRect(teki1, 0,0,32,32, 0,0,32,32)
にしないと座標が画面上と合わなくなるので注意
Cdv30200 aoi icon mini aoihikawa(投稿日:2012/01/28 22:23, 履歴)
画面外に表示されています。


画像を準備するsetSpriteRect関数で設定されている
画像の切り取り場所は
0, 0の32×32サイズ
画像の貼り付け場所は
800 - 32 * 9, 32 * 4の32×32サイズ

画像の表示位置を設定するsetSpritePosition関数で設定されている
画像の表示位置は
初期値で800 - 32 * 9, 32 * 4


合計してみると、
画像0, 0の32×32サイズを1024, 256の位置に32×32サイズで描画する
という状態になっています。

ノベルの画面サイズは横800×縦600なので、
よって、画面より右側の外に表示されています。
Material 71926 1 mini なとおとき(投稿日:2012/01/28 22:00, 履歴)
最後を修正

waitTime(1)
drawCanvas()
end
Material 71926 1 mini なとおとき(投稿日:2012/01/28 21:56, 履歴)
haikei = createSprite(103413) #背景

setSpriteRect(haikei, 0, 0, 800, 600, 32 * 7, 32 * 4, 800 - 32 * 14, 600 - 32 * 8)

setSpriteZOrder(haikei, 1)


miti1 = createSprite(103420) #道
miti2 = createSprite(103420)
miti3 = createSprite(103420)
miti4 = createSprite(103420)
miti5 = createSprite(103420)
miti6 = createSprite(103420)
miti7 = createSprite(103420)

setSpriteRect(miti1, 0, 0, 32, 32, 800 - 32 * 9    , 32 * 4, 32     , 32 * 5)
setSpriteRect(miti2, 0, 0, 32, 32, 800 - 32 * 15  , 32 * 9, 32 * 7, 32)
setSpriteRect(miti3, 0, 0, 32, 32, 800 - 32 * 15  , 32 * 6, 32     , 32 * 3)
setSpriteRect(miti4, 0, 0, 32, 32, 800 - 32 * 17  , 32 * 6, 32 * 2, 32 * 1)
setSpriteRect(miti5, 0, 0, 32, 32, 800 - 32 * 17  , 32 * 7, 32 * 1, 32 * 6)
setSpriteRect(miti6, 0, 0, 32, 32, 800 - 32 * 16  , 32 * 12, 32 * 7, 32 * 1)
setSpriteRect(miti7, 0, 0, 32, 32, 800 - 32 * 10  , 32 * 13, 32 * 1, 28 * 2)


setSpriteZOrder(miti1, 3)
setSpriteZOrder(miti2, 3)
setSpriteZOrder(miti3, 3)
setSpriteZOrder(miti4, 3)
setSpriteZOrder(miti5, 3)
setSpriteZOrder(miti6, 3)
setSpriteZOrder(miti7, 3)



teki1 = createSprite(103481) #敵

setSpriteRect(teki1, 0, 0, 32, 32, 800 - 32 * 9, 32 * 4, 32, 32)

setSpriteZOrder(teki1, 5)

setCanvasVisible(true)
drawCanvas()
waitTime(1000)

tekix = 800 - 32 * 9
tekiy = 32 * 4
purasu = 1

while tekiy < 32 * 8
if tekiy < 32 * 8
purasu = 1
elsif tekiy > 32 * 8
purasu = - 1
end
tekiy = tekiy + purasu
setSpritePosition(teki1, tekix, tekiy)
waitTime(1)
end


全体のスプリクトはこんな感じです。