Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
phina.jsで弾幕シューティングを作る / Creating a bullet-hell ...
Search
Hiroya-W
November 23, 2023
Technology
300
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
phina.jsで弾幕シューティングを作る / Creating a bullet-hell shooter with phina.js
Hiroya-W
November 23, 2023
More Decks by Hiroya-W
See All by Hiroya-W
PSRにのっかってバックエンドサーバを書く / Write a backend server using PSR
hyuyukun
0
95
ピアノ経験ゼロからピアノを練習して弾いてみた / I practiced and played the piano from zero piano experience.
hyuyukun
1
160
Blenderに入門しました / I started to use Blender
hyuyukun
0
160
気軽にパソコンを吹き飛ばせるようにするために / To initialize your computer easily
hyuyukun
0
110
僕っぽいことを喋るBotをマストドンで育てています / I'm growing a bot on mastodon that talks like me.
hyuyukun
0
150
4年と半年かけてようやくフロントエンドを書けるようになった / It took me 4 years and 6 months to be able to write the frontend
hyuyukun
0
350
Neofetchライクな自己紹介ツールyuyufetchを作った / Created yuyufetch, a Neofetch-like self-introduction tool
hyuyukun
1
360
世界観を考察するのが好き?Sound Horizonはいいぞ / Introduction to Sound Horizon
hyuyukun
0
1.1k
夏インターンと趣味開発 / Summer Internships and Hobby Development
hyuyukun
0
110
Other Decks in Technology
See All in Technology
データレイクの「見えない問題」を可視化する
sansantech
PRO
1
250
Terraform 101 (初心者向け) 資料
shuadachi
0
110
5分でわかる Amazon Connect_20260608
hwangbyeonghun
0
150
デジタル・デザイン:次の50年を描く「進化する青写真」
y150saya
0
600
次世代ランサムウェア対策の考察 / 20260704 Mitsutoshi Matsuo
shift_evolve
PRO
3
1k
Agentic AI 時代のテスト手法: Kiro とはじめるプロパティベーステスト (AWS Summit Japan 2026 | DEV212)
ymhiroki
0
120
製造現場での生成AIの活用、およびエージェントAIの実装のあり方、AVEVAの取り組み
iotcomjpadmin
0
200
SRE歴2ヶ月でも開発6年の知見を活かして、チームで止まっていた環境改善を前に進めた話
a_ono
0
150
CVE-2026-20833_脆弱性対応とAES 化について
jukishiya
0
290
プライバシー保護の理論と実践
lycorptech_jp
PRO
1
120
事業会社は今こそSWEを高給で雇ってWebシステムを内製しよう
masaokb
0
110
“詰む”前に仕組みを作れ 〜技術の波に溺れないためのキャッチアップ術〜
takasyou
7
4.6k
Featured
See All Featured
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.3k
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
1
260
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
400
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
1
360
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.5k
Navigating Team Friction
lara
192
16k
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
350
How to build a perfect <img>
jonoalderson
1
5.7k
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
210
Transcript
QIJOBKTͰ ນγϡʔςΟϯάΛ ࡞Δʂ ゆゆ君(@Hyuyu_kun) in あくあたん工房 2023/11/23
2 phina.js: JavaScript で作られたゲームライブラリ https://phinajs.com
サンプル 3 https://phinajs.com
4 Runstant: ブラウザ上で動作するエディタ&プレビュー https://runstant.com
phina.jsでサクッと作って動かしてシェア! 5
6 弾幕シューティング 怒首領蜂 東方Project https://store-jp.nintendo.com/list/software/70010000046176.html https://www.youtube.com/watch?v=VL5VZuUcX74
7 弾幕シューティング 怒首領蜂 東方Project 自機 https://store-jp.nintendo.com/list/software/70010000046176.html https://www.youtube.com/watch?v=VL5VZuUcX74
8 弾幕シューティング 怒首領蜂 東方Project 敵 https://store-jp.nintendo.com/list/software/70010000046176.html https://www.youtube.com/watch?v=VL5VZuUcX74
9 弾幕シューティング 怒首領蜂 東方Project 弾幕 https://store-jp.nintendo.com/list/software/70010000046176.html https://www.youtube.com/watch?v=VL5VZuUcX74
弾幕を避けながら敵を倒していくゲーム 10 中には美しい弾幕もあって綺麗
phina.jsで弾幕シューティングを作ってみる 11
12 参考書 https://www.amazon.co.jp/dp/4797352299
phina.jsで弾幕を作ってみる n 今回作ってみた弾幕 • 方向弾 • 渦巻弾 • 多方向渦巻弾 •
両回転渦巻弾 • 旋回加速渦巻弾 • 両回転渦巻弾 + 旋回加速渦巻弾 • 洗濯機渦巻弾 13
14 弾の実装 // 初期位置 // 発射角度(0.0~1.0) // 弾の進行方向の変化量 // 弾の初速
// 弾の加速度 // 移動方向 // 弾の進行方向を変化 // 弾の速さを変化
方向弾 15 // 下方向 速さ20
16 渦巻弾(方向弾を回転させればOK) // 発射方向を変化させる
17 多方向渦巻弾 // 発射数を指定できるように
18 多方向渦巻弾 // 発射数分の弾を生成 // それぞれ方向を変えて this.shotCount == 4の時、 i
/ this.shotCountは0.0, 0.25, 0.5, 0.75と変化する 右, 下, 左, 上
19 多方向渦巻弾 弾の密度を変えられるようにしたい
20 多方向渦巻弾 // 増やした
21 多方向渦巻弾 // this.timeはthis.interval回に1回0になる == 間引く
22 両回転渦巻弾 回転方向を2つ取るようにする - 時計回り - 反時計回り
23 両回転渦巻弾 // 両回転 // それぞれ発射回数分 // それぞれの回転方向
24 両回転渦巻弾 ちなみに、両回転の変化量を揃えてしまうと 簡単な弾幕になってしまう
25 旋回加速渦巻弾 ←旋回 加速→
26 旋回加速渦巻弾
27 両回転渦巻弾 + 旋回加速渦巻弾 2種類の弾幕を発射してくる敵(CombinedSpiralShooter)として実装
28 洗濯機渦巻弾 右巻き 右巻き→左巻き 左巻き 左巻き→右巻き
29 洗濯機渦巻弾 -maxShotAngleRate ~ maxShotAngleRate // 発射角度 -maxBulletAngleRate ~ maxBulletAngleRate
// 旋回角度 の範囲で変化させて右巻きになったり、左巻きになったりする
30 洗濯機渦巻弾 // 右巻き→左巻き // の値の変化は // 250: 1 //
275: 0 // 300: -1
31 Runstantで公開しているので遊んでみてね https://runstant.com/Hiroya-W/projects/caa17791
おしまい 32