スクリプト/線を引く関数

最終投稿者:Material 7186 1 mini ikosami 更新:2013/03/07 23:25:23
この関数を使うと線を引くことができます。
Ver2.5

①2点の座標から線を引く関数
②座標と長さ,角度から線を引く関数
③線を消す関数


サンプルゲーム
線を引くスクリプト - 【ノベルゲーム】

①2点の座標から線を引く関数
def line(b,x1,y1,x2,y2)
  g = 99999#ここに点の画像IDを。
  setCanvasVisible(true)
  if !getVariable("line")
    setVariable("line", createArray())
  end
  x = (x2-x1)
  y = (y2 - y1)
  n = floor(sqrt((x*x)+(y*y)))
  k = atan2(y, x)
  if !getVariable("line")[b]
    getVariable("line")[b] = createSprite(g)
  end
  se = getVariable("line")[b]
  setSpriteRotation(se, k)
  setSpriteRect(se, 0, 0, 1, 1, 0, 0, n, 1)
  setSpritePosition(se, x1, y1)
  drawCanvas()
end


line(線番号,x1,y1,x2,y2)
line(0,100,100,100,200)
line(1,100,200,200,200)
line(2,200,200,200,100)
line(3,200,100,100,100)

こんな感じにすると四角形ができます。


②座標と長さ,角度から線を引く関数
def line(b,x,y,n,r)
  setCanvasVisible(true)
  if !getVariable("line")
    setVariable("line", createArray())
  end
  k = (r * 2.0 * pi() / 360.0)
  if !getVariable("line")[b]
    getVariable("line")[b] = createSprite(g)
  end
  se = getVariable("line")[b]
  setSpriteRotation(se, k)
  setSpriteRect(se, 0, 0, 1, 1, 0, 0, n, 1)
  setSpritePosition(se, x, y)
  drawCanvas()
end


line(線番号,x,y,長さ,角度) ※角度は右から時計回り
line(0,100,100,100,0)
line(1,200,100,100,90)
line(2,200,200,100,180)
line(3,100,200,100,270)

こんな感じにすると四角形ができます。

③線を消す関数
def deleteline(b)
  if getVariable("line")[b]
    deleteSprite(getVariable("line")[b])
  end
  drawCanvas()
end

deleteline(線番号)です。


①と②を共通して使う場合は
def line(b,x,y,n,r) ⇒ def line2(b,x,y,n,r)
などにしてください。


ちなみに、線の多いゲームを作る場合は、このままだとdrawCanvas()が線を引くたびに実行されますので
都合のいいように改良してください。

コメントする

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

コメント一覧

Material 7186 1 mini ikosami(投稿日:2011/08/03 00:03, 履歴)
バグ修正しました。