Определения Phaser для машинописного текста, не читаемого VSCode - PullRequest
0 голосов
/ 30 августа 2018

Я следовал этому руководству для phaser, но я не смог запустить код в пункте 4. Я скопировал его точно без изменений (см. Ниже, если у вас нет ' я уже видел учебник), но я сталкиваюсь с ошибками.

Строка new Phaser.Game(800, 600, Phaser.AUTO, 'content', { preload: this.preload, create: this.create }); дает мне ошибку "[ts] ожидали 0-1 аргументов, получили 5", и мне также говорят, что свойства "load", "add" и "world" don ' не существует для типа "Игра".

Когда я пытаюсь скомпилировать, мне дают такой ответ.

    TSError: ⨯ Unable to compile TypeScript:
app.ts(4,25): error TS2304: Cannot find name 'Phaser'.
app.ts(4,47): error TS2304: Cannot find name 'Phaser'.
app.ts(7,11): error TS2503: Cannot find namespace 'Phaser'.

    at createTSError (C:\Users\Username\AppData\Roaming\npm\node_modules\ts-node\src\index.ts:261:12)
    at getOutput (C:\Users\Username\AppData\Roaming\npm\node_modules\ts-node\src\index.ts:367:40)
    at Object.compile (C:\Users\Username\AppData\Roaming\npm\node_modules\ts-node\src\index.ts:558:11)
    at Module.m._compile (C:\Users\Username\AppData\Roaming\npm\node_modules\ts-node\src\index.ts:439:43)
    at Module._extensions..js (module.js:663:10)
    at Object.require.extensions.(anonymous function) [as .ts] (C:\Users\Username\AppData\Roaming\npm\node_modules\ts-node\src\index.ts:442:12)
    at Module.load (module.js:565:32)
    at tryModuleLoad (module.js:505:12)
    at Function.Module._load (module.js:497:3)
    at Function.Module.runMain (module.js:693:10)

Мои app.ts прямо сейчас:

class SimpleGame {

    constructor() {
        this.game = new Phaser.Game(800, 600, Phaser.AUTO, 'content', { preload: this.preload, create: this.create });
    }

    game: Phaser.Game;

    preload() {
        this.game.load.image('logo', 'phaser2.png');
    }

    create() {
        var logo = this.game.add.sprite(this.game.world.centerX, this.game.world.centerY, 'logo');
        logo.anchor.setTo(0.5, 0.5);
    }

}

window.onload = () => {

    var game = new SimpleGame();

};

Любая помощь будет оценена. Спасибо!

Ответы [ 2 ]

0 голосов
/ 30 августа 2018

Похоже, что пример кода в руководстве по TypeScript устарел для Phaser 3. См. текущий пример кода JavaScript . Текущее руководство по TypeScript также устарело. Рассмотрите возможность использования одного из каналов поддержки Phaser, чтобы сообщить о проблеме. А пока вы можете основывать свой код TypeScript на примере JavaScript.

0 голосов
/ 30 августа 2018

Попробуйте добавить ссылку на ваш файл определений. Поместите это в начало вашего app.ts

/// <reference path="path/to/your/deffile/phaser.d.ts" />

Также не забудьте добавить определения Pixi.

...