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
280
0
Share
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
88
ピアノ経験ゼロからピアノを練習して弾いてみた / I practiced and played the piano from zero piano experience.
hyuyukun
1
150
Blenderに入門しました / I started to use Blender
hyuyukun
0
160
気軽にパソコンを吹き飛ばせるようにするために / To initialize your computer easily
hyuyukun
0
100
僕っぽいことを喋るBotをマストドンで育てています / I'm growing a bot on mastodon that talks like me.
hyuyukun
0
140
4年と半年かけてようやくフロントエンドを書けるようになった / It took me 4 years and 6 months to be able to write the frontend
hyuyukun
0
340
Neofetchライクな自己紹介ツールyuyufetchを作った / Created yuyufetch, a Neofetch-like self-introduction tool
hyuyukun
1
350
世界観を考察するのが好き?Sound Horizonはいいぞ / Introduction to Sound Horizon
hyuyukun
0
1.1k
夏インターンと趣味開発 / Summer Internships and Hobby Development
hyuyukun
0
100
Other Decks in Technology
See All in Technology
Terragrunt x Snowflake + dbt で作るマルチテナントなデータ基盤構築プラットフォーム
gak_t12
0
420
JTCでRedmine利用者2700人を実現した手法 第二部
nobuonakamura
0
130
【2026年版】プロジェクトマネジメント実践論|現役エンジニアが語る!~チームでモノづくりをする時のコツとは?~
mixi_engineers
PRO
1
110
Redmine次期バージョン7.0の注目新機能解説 — UI/UX強化と連携強化を中心に
vividtone
1
170
マンション備え付けのネットワークとLTE回線を組み合わせた ネットワークの安定化の考案
harutiro
1
140
最新技術を"今は選ばない"という技術選定
leveragestech
PRO
0
190
おいらのAWSアップデートの追い方〜Slack×AgentCore〜
yakumo
1
110
クラウドからエッジまで ~ 1,700台を支える監視設計~
optfit
0
110
React Compiler導入の効果と運用の工夫
kakehashi
PRO
3
260
クラウドネイティブ DB はいかにして制約を 克服したか? 〜進化歴史から紐解く、スケーラブルアーキテクチャ設計指針〜
hacomono
PRO
6
1.1k
Gaussian Splattingの実用化 - 映像制作への展開
gpuunite_official
0
200
会社説明資料|株式会社ギークプラス ソフトウェア事業部
geekplus_tech
0
310
Featured
See All Featured
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
140
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
1
180
Discover your Explorer Soul
emna__ayadi
2
1.1k
Are puppies a ranking factor?
jonoalderson
1
3.4k
A Soul's Torment
seathinner
6
2.8k
The #1 spot is gone: here's how to win anyway
tamaranovitovic
2
1k
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
210
Designing for Timeless Needs
cassininazir
1
220
Raft: Consensus for Rubyists
vanstee
141
7.4k
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
130
Leading Effective Engineering Teams in the AI Era
addyosmani
9
1.9k
30 Presentation Tips
portentint
PRO
1
290
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