コメント

このコメントは、宇宙文字解読3へのコメントです。

コメントの内容

Cdv30200 aoi icon mini aoihikawa(投稿日:2014/01/26 10:01/26/14)
こういった、連続や類似したデータを複数扱う場合、
配列を使用すると便利になります

配列についてはこちら

#画像スプライト 
deleteAllSprite() #最初に使う前にキャンバスをキレイにしておく 
drawCanvas() 
setCanvasVisible(true)

#準備 
x =0
y =0
w =240
h =180
xx=0
yy=0
ww=240
hh=180

#表示する座標の設定
soto_x = -200
soto_y = -200

naka_x = 0
naka_y = 0

#画像番号リストを配列として用意
img_id_list_str = "221082,221089,221096,221103,221110,221117,221131,221131,221138,221145,221152,221159,221166,221180,221187,221194,221201,221208,221215,221222,221231,221238,221245,221252,221259,221266,221273,221280,221287,221294"
img_id_list = createArray()
img_id_list = splitString(img_id_list_str, ",")         #,区切りで文字列を分解

img_id = createArray()

i = 0; img_id_list_length = getArrayLength(img_id_list) #長さを保管しておき、ループさせる
while i < img_id_list_length
  img_id_list[i] = toNumber(img_id_list[i])             #文字列になっているので数値に直す
  
  #画像IDをここに入れます
  img_id[i] = createSprite(img_id_list[i])
  setSpriteRect(img_id[i], x,y,w,h, xx,yy,ww,hh)
  
  #まずは、すべての画像を画面外に表示
  setSpritePosition(img_id[i], soto_x, soto_y)

  i = i + 1
end

view_id = "" #アニメーションで表示する画像のID
hide_id = "" #アニメーションで隠す画像のID

#アニメーションさせる 
i = 0
while i < img_id_list_length
  #それぞれのIDをセットする
  if i > 0
    view_id = img_id[i]
    hide_id = img_id[(i - 1)]
  else
    view_id = img_id[i]
  end
  
  #セットされたIDをもとに、座標を決定する
  setSpritePosition(view_id, naka_x, naka_y)
  if i > 0
    setSpritePosition(hide_id, soto_x, soto_y)
  end
  
  drawCanvas()
  i = i + 1 
  waitTime(100)
end

#画像を消しています。
setCanvasVisible(false)
deleteTextAll()


こうすることで
スクリプトが短くすっきりする他、
アニメーションの枚数が増えた場合も
img_id_list_strの内容を編集するだけで
対応が可能になります

コメントの内容(一番最初の投稿)

Cdv30200 aoi icon mini aoihikawa(投稿日:2014/01/26 10:01/26/14)
こういった、連続や類似したデータを複数扱う場合、
配列を使用すると便利になります

配列についてはこちら

#画像スプライト 
deleteAllSprite() #最初に使う前にキャンバスをキレイにしておく 
drawCanvas() 
setCanvasVisible(true)

#準備 
x =0
y =0
w =240
h =180
xx=0
yy=0
ww=240
hh=180

#表示する座標の設定
soto_x = -200
soto_y = -200

naka_x = 0
naka_y = 0

#画像番号リストを配列として用意
img_id_list_str = "221082,221089,221096,221103,221110,221117,221131,221131,221138,221145,221152,221159,221166,221180,221187,221194,221201,221208,221215,221222,221231,221238,221245,221252,221259,221266,221273,221280,221287,221294"
img_id_list = createArray()
img_id_list = splitString(img_id_list_str, ",")         #,区切りで文字列を分解

img_id = createArray()

i = 0; img_id_list_length = getArrayLength(img_id_list) #長さを保管しておき、ループさせる
while i < img_id_list_length
  img_id_list[i] = toNumber(img_id_list[i])             #文字列になっているので数値に直す
  
  #画像IDをここに入れます
  img_id[i] = createSprite(img_id_list[i])
  setSpriteRect(img_id[i], x,y,w,h, xx,yy,ww,hh)
  
  #まずは、すべての画像を画面外に表示
  setSpritePosition(img_id[i], soto_x, soto_y)
end

view_id = "" #アニメーションで表示する画像のID
hide_id = "" #アニメーションで隠す画像のID

#アニメーションさせる 
while i < img_id_list_length
   
  #それぞれのIDをセットする
  if i > 0
    view_id = img_id[i]
    hide_id = img_id[(i - 1)]
  else
    view_id = img_id[i]
  end
  
  #セットされたIDをもとに、座標を決定する
  setSpritePosition(view_id, naka_x, naka_y)
  if i > 0
    setSpritePosition(hide_id, soto_x, soto_y)
  end
  
  drawCanvas()
  i = i + 1 
  waitTime(100)
end

#画像を消しています。
setCanvasVisible(false)
deleteTextAll()