1

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');
};
4

1 に答える 1

0

価値のあるものとして、私は 1 か月以上前に、通常の JavaScript の代わりに TypeScript での開発を検討し始めることにしました。

これにより、私が欲しかった Intellisense と、私にとってもう少し効率的な方法でのプログラミングが実現しました。

私の質問にコメントしてくれた Claies に感謝します。TypeScript を学び、フレームワークから必要なものを得ることができると分かったとき、私はより受け入れやすくなりました。

最初に尋ねられたことを実行する方法がある場合に備えて、質問を開いたままにします。

于 2015-12-26T16:44:13.397 に答える