<script src="phaser.js"></script>
<script type="text/javascript">
var game = new Phaser.Game(640, 480, Phaser.AUTO, '', { preload: preload, create: create, update: update });
var PlayerHero;
//Определяет позицию героя от левого края экрана
var PlayerStage = 1;
//Количество фоновых объектов
var BackCount;
var BackObj = new Array();
//Количество объектов с которыми можно столкнуться
var FrontCount;
var FrontObj = new Array();
function preload() {
game.load.image('floor', 'assets/floor.png');
game.load.image('background', 'assets/background.png');
game.load.image('player', 'assets/player.png')
}
function createHero(x, y) {
var hero = game.add.sprite(x, y, 'player');
hero.anchor.setTo(0.5, 0.5);
hero.body.collideWorldBound = true;
hero.body.bounce.setTo(0, 0);
hero.body.immovable = true;
return hero;
}
function create() {
game.add.tileSprite(0, 0, 640, 480, 'background');
game.add.tileSprite(0, 240, 640, 240, 'floor');
PlayerHero = createHero(64, 304);
}
function createFrontObject(number) {
//Создание фоновых объектов
var FrontObject = game.add.sprite(640, number * 240, 'front');
FrontCount = FrontCount + 1;
return FrontObject;
}
function update () {
PlayerHero.x = PlayerHero.x + (100 * dt);
FrontObj[FrontCount + 1] = createFrontObject(Math.floor(Math.random() * 3));
if (FrontCount > 6) {
FrontCount = 1;
}
}
</script>
PlayerHero.x = PlayerHero.x + (100 * dt);
Эта строка чисто для дебага.
При дебаге не появляется черный экран, без дебага, виден лишь черный экран.
Проблема явно в том, что PlayerHero попросту пуст. Сразу говорю, что я нуб в JS, но я пробовал PlayerHero выносить за функцию, чтобы переменная случайно не была локальной, да и в общем все делал по туториалу на хабре, кроме того переменную не забыл обьявить, чтобы опять же не было проблем с локальностью переменной и пробовал ставить функцию CreateHero выше create, но опять же не помогло, персонаж отрисовывается, те с функцией CreateHero все хорошо, но как только я пытаюсь им управлять, черный экран и гудбай америка.
В общем, как исправить?