Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 26.11.2019, 20:15
Кандидат Javascript-наук
Отправить личное сообщение для Katy93 Посмотреть профиль Найти все сообщения от Katy93
 
Регистрация: 28.12.2018
Сообщений: 137

Подскажите как переписать код с Phaser 3 на Phaser 2?
У меня есть код написанный на Phaser 3.0, взять он был с одного сайта по FLASH/HTML 5. Мне нужно переписать на Phaser 2.0. При попытке в html файле заменить библиотеку с Phaser 3 на Phaser 2, выдаёт сообщения об ошибке:
game.js:20 Uncaught TypeError: Class extends value undefined is not a function or null(anonymous function) @ game.js:20
game.js:16 Uncaught ReferenceError: playGame is not defined
Как правильно написать этот код на Phaser 2?
var game;
var gameOptions = {
    colors: ["0xffffff","0xff0000","0x00ff00","0x0000ff","0xffff00"],
    columns: 3,
    rows: 4,
    thumbWidth: 60,
    thumbHeight: 60,
    spacing: 20,
    localStorageName: "levelselect"
}
window.onload = function() {
    var gameConfig = {
        width: 320,
        height: 480,
        backgroundColor: 0x222222,
        scene: [playGame, playLevel]
    }
    game = new Phaser.Game(gameConfig);
}
class playGame extends Phaser.Scene{
    constructor(){
        super("PlayGame");
    }
    preload(){
        this.load.spritesheet("levelthumb", "levelthumb.png", {
            frameWidth: 60,
            frameHeight: 60
        });
        this.load.image("levelpages", "levelpages.png");
        this.load.image("transp", "transp.png");
    }
    create(){
    }
}
class playLevel extends Phaser.Scene{
    constructor(){
        super("PlayLevel");
    }
    init(data){
        this.level = data.level;
        this.stars = data.stars;
    }
    create(){
    }
}
Ответить с цитированием
  #2 (permalink)  
Старый 27.11.2019, 02:38
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

Обратимся к первоисточнику, там есть ссылка на версию 2.
Ответить с цитированием
  #3 (permalink)  
Старый 27.11.2019, 09:57
Кандидат Javascript-наук
Отправить личное сообщение для Katy93 Посмотреть профиль Найти все сообщения от Katy93
 
Регистрация: 28.12.2018
Сообщений: 137

Я и забыла, что там есть исходники и для Phaser версия 2, просто я эту статью давно проходила и к ней больше не возвращалась, а исходники остались. Мне нужно было ещё сделать выбор спрайта у картинки, и я уже взяла этот вариант.
var thumb = game.add.sprite(80, 120, "levelthumb");
thumb.animations.add('sprite',[1]);
thumb.animations.play('sprite');

А оказывается надо было просто заменить функцию setFrame на frame, чтобы всё заработало, а то при использовании setFrame, вся картинка исчезает.

Спасибо за помощь.

Последний раз редактировалось Katy93, 27.11.2019 в 09:59.
Ответить с цитированием
  #4 (permalink)  
Старый 27.11.2019, 21:56
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

Katy93,
Еще заметка, там в phaser 3 автор уже использует class-ы, что есть не phaser-ные различия, а js-ные.

Не знаю очевидно ли это новичкам, но не вдаваясь в детали, положение в js сейчас примерно такое:
- современный js считается версии ES6, она же ES2015, и выше (6 - номер издания, 2015 - год издания).
- самый кроссбраузерный js считается версии ES5 (2009-2011).
- компиляторы, transpilers (traceur, babel, coffeescript, typescript, ...), позволяют писать код в одной версии, а конечный код получать в другие.
- сборщики, bundlers (grunt, gulp, webpack, rollup, ...), позволяют собрать все в один файл, как минимум.

Поэтому, если тебе эстетически нужны модули, классы, итераторы, генераторы, промисы и другие фишки современного js, но не нужны старые браузеры, то можешь писать на чистом ES6 без посредников.

Отличие ES6 от ES5.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как найти код, выводящий модальное окно? Wic_ Общие вопросы Javascript 4 14.06.2019 08:30
как получить исходный код страницы после ajax lerneree AJAX и COMET 4 28.05.2018 13:53
Подскажите как работает данный код Victor031 Общие вопросы Javascript 4 10.02.2015 08:12
Подскажите, как подкорректировать код GRAF-8269 Events/DOM/Window 1 06.08.2014 17:30
Как писать код который легко поддерживать, расширять, читать. Policeman Общие вопросы Javascript 3 24.03.2012 05:40