Phaser フレームワークを使用して、Visual Studio (2015、コミュニティ) 内でゲームを作成しています。
オブジェクト指向の JavaScript に切り替えようとすると、オブジェクト指向ではない小規模なプロジェクトで Intellisense を正常に取得できます。
boot.js
/// <reference path="../lib/phaser-2.4.4.js" />
var BasicGame = {
};
BasicGame.Boot = function (game) {
// This gives me Intellisense as expected:
game.input.maxPointers = 1;
};
BasicGame.Boot.prototype = {
init: function () {
},
preload: function () {
},
create: function () {
// This is valid, but I don't get Intellisense.
// Can I help VS understand what type 'this' is?
this.state.start('Preloader');
}
};
create メソッドの場合、Visual Studio (2015/Code/higher) が「this」キーワードの型を理解できるように、何らかの方法で支援できますか?
Phaser フレームワークの OO テンプレートに慣れていないその他の関連ファイル:
index.html
<!DOCTYPE html>
<html>
<head>
<title>HTML5 Shoot 'em Up in an Afternoon</title>
<meta charset="utf-8" />
<link rel="shortcut icon" href="favicon.ico" />
<style type="text/css">
body {
background: #333;
margin: 0;
}
</style>
<script src="lib/phaser-2.4.4.min.js"></script>
<script src="src/boot.js"></script>
<script src="src/preloader.js"></script>
<script src="src/mainMenu.js"></script>
<script src="src/game.js"></script>
<script src="src/app.js"></script>
</head>
<body>
<div id="gameContainer"></div>
</body>
</html>
簡潔にするために、preloader.js、mainMenu.js、および game.js は除外されています。上記の boot.js によく似たセットアップが含まれています。
app.js
window.onload = function () {
var game = new Phaser.Game(800, 600, Phaser.AUTO, 'gameContainer');
game.state.add('Boot', BasicGame.Boot);
game.state.add('Preloader', BasicGame.Preloader);
game.state.add('MainMenu', BasicGame.MainMenu);
game.state.add('Game', BasicGame.Game);
game.state.start('Boot');
};