More Related Content
PPTX
PPTX
Touhou Project on JavaScript PPTX
PDF
日曜プログラマーが
1週間くらいで通信対戦ゲームを作ってみた PDF
PDF
日曜プログラマーがHtml5とかで通信対戦ゲームを作ってます PDF
PPTX
What's hot
PPTX
PPTX
PDF
Unity×HTMLで作るiPhone オンラインゲーム開発事例 PPTX
PDF
PPT
PDF
CrystalFantasiaを支えきった技術と技術だけではどうにもならなかった話 PDF
Make TypingGame in JavaScript PDF
Web frontend performance tuning PDF
PDF
PDF
Gitライフをはじめましょう〜GUIツールで簡単運用 Mac編〜 PDF
PPTX
PDF
早く家へ帰るための
Grunt入門
[+gulp紹介] PDF
デザイナーさんでもできる Browsersync からはじめる作業効率化 PDF
Introduction to Favmemo for Immature Engineers PDF
PDF
デザイナーさんでもできる Browsersync からはじめる作業効率化・春 PDF
BuddyPressの導入からカスタマイズまでの日記 Viewers also liked
PPTX
Mithril - 軽量/高速なMVCフレームワーク PPTX
レガシーな Perl システムに DDD (ドメイン駆動設計)を取り入れる PPTX
Slack + Hubot でお前の一番好きな二次元嫁キャラと一緒に仕事をする PPTX
PPTX
PPTX
法規制後でも個人で楽しむドローン入門 2016・秋 PPTX
PPTX
PDF
GEEK ACADEMY REAL Vol.2. 「最先端のデータ解析/Apache Sparkを利用したレコメンドエンジン開発」 PPTX
とらのあなエンジニア採用イベント 2017年2月9日 PDF
Spark Streamingで作る、つぶやきビッグデータのクローン(Hadoop Spark Conference Japan 2016版) PPTX
[Anitech] ITでアニメを考える、「ShangriLa Meetup5」 PPTX
PPTX
ラブライブ!サンシャイン!!入門書 (A4 縦向き) PPTX
PPTX
せいまち〜聖地探訪に出会いを求めるのは間違っているだろうか〜 PDF
Mobage を支える Ruby の技術 ~ 複数DB編 ~ PPTX
PDF
Cookpad Summer Intern 2015 - Programming Paradigm PDF
Similar to JS と Canvas で作るシューティングゲーム
PDF
Html canvas shooting_and_performanceup PDF
Canvas de shooting 制作のポイント PPTX
PDF
Unity Introduction from 2D shooting game. PDF
2012 03-03-titanium plusquicktigame2d PDF
PDF
enchant.jsでゲーム制作をはじめてみよう 「パンダの会」バージョン PDF
PDF
enchant.js meetup Tokyo vol.2 Tutorial PPTX
PPTX
Java ScriptでつくるはじめてのiPhoneAndroidゲーム開発体験ハンズオン JS と Canvas で作るシューティングゲーム
- 1.
- 2.
自己紹介
• HN: さい
•Twitter: @sairoutine
• Webアプリケーションエンジニア
• 東方Projectが大好きです
• JavaScript 1年生
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
基本的な流れ
Game.prototype.run = function(){
//シーン更新
this.scenes[ this.state ].run();
this.scenes[ this.state ].updateDisplay();
// SEを再生
this.runPlaySound();
// 経過フレーム数更新
this.frame_count++;
// 押下されたキーを保存しておく
this.before_keyflag = this.keyflag;
// 次の描画タイミングで再呼び出ししてループ
requestAnimationFrame(this.run.bind(this));
};
- 13.
シーンの流れ
StageScene.prototype.run = function(){
//自機
this.character.run();
// 自機弾
this.shotmanager.run();
// 敵
this.enemymanager.run();
// 敵弾
this.bulletmanager.run();
// アイテム
this.itemmanager.run();
// エフェクト
this.effectmanager.run();
// ボム
this.bombmanager.run();
// アイテムと自機の衝突判定
this.itemmanager.checkCollisionWithCharacter(this.character);
// 自機弾と敵の衝突判定
this.shotmanager.checkCollisionWithEnemies(this.enemymanager);
// 敵と自機の衝突判定
this.enemymanager.checkCollisionWithCharacter(this.character);
// 敵弾と自機の衝突判定
this.bulletmanager.checkCollisionWithCharacter(this.character);
- 14.
キーボード入力①
// キー押下
Game.prototype.handleKeyDown =function(e){
this.keyflag |= this._keyCodeToBitCode(e.keyCode);
e.preventDefault( ) ;
};
// キー押下解除
Game.prototype.handleKeyUp = function(e){
this.keyflag &= ~this._keyCodeToBitCode(e.keyCode);
e.preventDefault( ) ;
};
- 15.
- 16.
当たり判定
// オブジェクトとオブジェクトの衝突判定を行う
ObjectBase.prototype.checkCollision =function(obj) {
if( this.inCollisionArea(obj.getCollisionLeftX(), obj.getCollisionUpY()) ||
this.inCollisionArea(obj.getCollisionLeftX(), obj.getCollisionBottomY()) ||
this.inCollisionArea(obj.getCollisionRightX(), obj.getCollisionUpY()) ||
this.inCollisionArea(obj.getCollisionRightX(), obj.getCollisionBottomY())
||
this.inCollisionArea(obj.x, obj.y)
) {
return true ;
}
return false ;
};
- 17.
敵/敵弾の動きを記述する
var __enemyBulletsParams =[
[
{
'v': { 'r': 5, 'theta': 165, 'w': 0, 'ra': 0.1, 'wa': 0, 'raa': -0.01, 'rrange': { 'min': 2 } },
},
{
'v': { 'r': 5, 'theta': 135, 'w': 0, 'ra': 0.1, 'wa': 0, 'raa': -0.01, 'rrange': { 'min': 2 } },
},
{
'v': { 'r': 5, 'theta': 105, 'w': 0, 'ra': 0.1, 'wa': 0, 'raa': -0.01, 'rrange': { 'min': 2 } },
},
{
'v': { 'r': 5, 'theta': 75, 'w': 0, 'ra': 0.1, 'wa': 0, 'raa': -0.01, 'rrange': { 'min': 2 } },
},
{
'v': { 'r': 5, 'theta': 45, 'w': 0, 'ra': 0.1, 'wa': 0, 'raa': -0.01, 'rrange': { 'min': 2 } },
},
{
'v': { 'r': 5, 'theta': 15, 'w': 0, 'ra': 0.1, 'wa': 0, 'raa': -0.01, 'rrange': { 'min': 2 } },
},
- 18.
- 19.
- 20.