window.addEventListener('load', function(){
\t var game = new Phaser.Game(500, 190, Phaser.CANVAS, '', {
\t \t create : function (game) {
\t \t var textStyle = { font: "14px Arial", fill: "#ffcc00" };
\t \t game.add.text(60, 40, 'Phaser HTML5 Game Engine', textStyle);
\t \t game.add.text(60, 70, 'This is state 1', textStyle);
\t \t var textStyle = { font: "14px Arial", fill: "#00ff00"};
\t \t game.add.text(200, 130, 'Pointer here to enter state2', textStyle);
\t \t var graphics = game.add.graphics(0, 0);
\t \t graphics.beginFill(0x00ff00);
\t \t graphics.drawRect(200, 80, 50, 50);
\t \t graphics.endFill();
\t },
\t \t update : function (game) {
\t \t var x = game.input.x, y = game.input.y;
\t \t if(x > 200 && x < 250 && y > 80 && y < 130){
\t \t \t game.state.start('state2');
\t \t }
\t }
\t });
\t game.state.add('state2', {
\t \t create: function (game){
\t \t \t var textStyle = { font: "14px Arial", fill: "#00ff00"};
\t \t game.add.text(60, 40, 'Phaser HTML5 Game Engine', textStyle);
\t \t game.add.text(60, 70, 'Welcome to state 2', textStyle);
\t \t }
\t });
}, false);
body{text-align:center;margin:4px;padding:0;}
canvas{vertical-align:middle; background-color:#000;}
<script src="https://cdnjs.cloudflare.com/ajax/libs/phaser/2.3.0/phaser.min.js"></script>
в моей функции обновления я объявил функцию, чтобы постоянно проверять, если игрок забил определенный результат, чтобы достичь следующего уровня, но если я не могу использовать государственный менеджер в функции обновления, то как я могу возможно, перейти на следующий уровень? –
Я протестировал state.start в функции обновления, и он работал, как ожидалось. Возможно, ваш код имеет другие проблемы. например, ** это ** является или нет игровым экземпляром. Не могли бы вы вставить больше кода? – cuixiping
Я создал свое другое состояние в отдельном файле javascript, в отличие от того же js-файла –