09.【JS】SVG(DOM)だけでシューティングを完成させた(Canvas不要)

tags: [JavaScript, SVG, Web, 初心者]


🎮 何ができる?

SVGだけで、ミニシューティングゲームを最後まで作りました。

「Canvasは難しそう…」という人向けの
DOM感覚で作れるシューティングです。


🎮 操作方法


🤔 なぜ Canvas じゃなく SVG?

Canvasは「描画結果」を作る仕組みなので、
あとから特定の弾や敵を触るのが難しいです。

SVGはDOMなので、

👉 仕組み理解・教材用途ではSVGがかなり強いです。


🧩 コア部分:DOM操作(例)

弾は <circle> を生成し、
座標(cx,cy)を書き換えるだけで移動します。

const bullet = document.createElementNS(
  "http://www.w3.org/2000/svg",
  "circle"
);

bullet.setAttribute("cx", x);
bullet.setAttribute("cy", y);
bullet.setAttribute("r", 3);
svg.appendChild(bullet);

// 移動:cyを書き換えるだけ
bullet.setAttribute("cy", y - 5);

💡 Canvasのような再描画ループは不要です。


▶️ 完成版デモ(そのまま遊べます)

👇 こちらをクリック
https://samizo-aitl.github.io/qiita-articles/demos/svg-shooter/

※ 別タブで開きます


✅ まとめ

次は以下を追加予定です。


🔜 このゲームの続き

この記事(09)は
「SVG(DOM)だけでゲームが最後まで作れる」
ことを見せる回です。

このあと、

という形で発展させています。

👉 とりあえず遊びたい人は 12 だけ見ればOK
👉 作り方に興味があれば 10 / 11 もどうぞ