Развитие игровой вспышки
Текущее время: Сб сен 23, 2017 8:28 pm

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 9 ] 
Автор Сообщение
 Заголовок сообщения: Ошибка в Phaser
СообщениеДобавлено: Пт дек 30, 2016 2:25 pm 
Не в сети

Зарегистрирован: Вт авг 27, 2013 8:15 pm
Сообщений: 16
Здравствуйте. Вообщем, у меня возникла кое какая проблема с движком Phaser, не могу понять из-за чего, почему она возникает, в чем вообще проблема и как от неё избавится? Просто первый раз решил сделать HTML5 игру, и взял за основу движок Phaser.

Код:
Код:
var game = new Phaser.Game(320, 460, Phaser.AUTO, '', { preload: preload, create: create, update: update });

function preload() {
    game.load.image('fon', 'assets/img.jpg');
   game.load.image('hero', 'assets/hero.jpg');
   game.load.image('titleleft', 'assets/block1.png');
}
function create() {
   game.scale.scaleMode = Phaser.ScaleManager.SHOW_ALL;
   game.add.tileSprite(0, 0, 320, 460, 'fon');

    timer = game.time.create(false);
    timer.loop(2000, timeLoop, this);
    timer.start();

    block3 = game.add.sprite(119, 380, "hero");
    game.physics.arcade.enable(block3);
}
function timeLoop() {
    block5 = game.add.sprite(40, -10, 'titleleft');
    game.physics.arcade.enable(block5);
    block5.body.velocity.y = 150;
    update(block5);
}
function update() {
    game.physics.arcade.collide(block3, block5, over, null, this);
}
function over () {
    console.log("dsd")
    block5.body.velocity.y = 0;
}


Ошибка:
Код:
main.js:35 Uncaught ReferenceError: block5 is not defined


Вложения:
TestOne.rar [508.34 KIB]
Скачиваний: 19
Вернуться наверх
 Профиль Отправить e-mail  
 
 Заголовок сообщения: Re: Ошибка в Phaser
СообщениеДобавлено: Пт дек 30, 2016 5:27 pm 
Не в сети
Аватар пользователя

Зарегистрирован: Вс дек 19, 2010 5:31 pm
Сообщений: 4829
Откуда: Пока не знаю
Сайт: http://gamespoweredby.com/blog/
ошибка не в phaser, а в понимании областей видимости


Вернуться наверх
 Профиль Отправить e-mail  
 
 Заголовок сообщения: Re: Ошибка в Phaser
СообщениеДобавлено: Сб дек 31, 2016 1:56 pm 
Не в сети
Аватар пользователя

Зарегистрирован: Вс дек 19, 2010 5:31 pm
Сообщений: 4829
Откуда: Пока не знаю
Сайт: http://gamespoweredby.com/blog/
ладно, раз никто не хочет помогать - я подскажу.

var game = new Phaser.Game(320, 460, Phaser.AUTO, '', { preload: preload, create: create, update: update });
var block3, block5;

допиши вторую строку. Дело в том, что ты в функции создаешь объект и присваиваешь переменной ссылку на него. Но переменной нет у тебя либо она не видна внутри функции. надо создать было публичную переменную, чтоб она была видна всем дочерним функциям


Вернуться наверх
 Профиль Отправить e-mail  
 
 Заголовок сообщения: Re: Ошибка в Phaser
СообщениеДобавлено: Сб дек 31, 2016 4:43 pm 
Не в сети

Зарегистрирован: Вт авг 27, 2013 8:15 pm
Сообщений: 16
TheRabbit писал(а):
ладно, раз никто не хочет помогать - я подскажу.

var game = new Phaser.Game(320, 460, Phaser.AUTO, '', { preload: preload, create: create, update: update });
var block3, block5;

допиши вторую строку. Дело в том, что ты в функции создаешь объект и присваиваешь переменной ссылку на него. Но переменной нет у тебя либо она не видна внутри функции. надо создать было публичную переменную, чтоб она была видна всем дочерним функциям


Спасибо) Я уже так делал, ошибки не было, но вот collide не работал(


Вернуться наверх
 Профиль Отправить e-mail  
 
 Заголовок сообщения: Re: Ошибка в Phaser
СообщениеДобавлено: Вт янв 03, 2017 12:44 am 
Не в сети

Зарегистрирован: Вт авг 27, 2013 8:15 pm
Сообщений: 16
И почему то проблема только в таймере или даже в функции timeLoop, потому что если не использовать таймер, то все прекрасно работает, но без него никак


Вернуться наверх
 Профиль Отправить e-mail  
 
 Заголовок сообщения: Re: Ошибка в Phaser
СообщениеДобавлено: Вт янв 03, 2017 9:33 am 
Не в сети
Аватар пользователя

Зарегистрирован: Ср ноя 02, 2011 9:23 am
Сообщений: 383
Legolas писал(а):
И почему то проблема только в таймере или даже в функции timeLoop, потому что если не использовать таймер, то все прекрасно работает, но без него никак

А зачем тебе таймер? Пользуйся методом update.


Вернуться наверх
 Профиль Отправить e-mail  
 
 Заголовок сообщения: Re: Ошибка в Phaser
СообщениеДобавлено: Вт янв 03, 2017 11:16 am 
Не в сети
Аватар пользователя

Зарегистрирован: Вс дек 19, 2010 5:31 pm
Сообщений: 4829
Откуда: Пока не знаю
Сайт: http://gamespoweredby.com/blog/
Legolas, а ты вообще до js на чем писал? )) и писал-ли?


Вернуться наверх
 Профиль Отправить e-mail  
 
 Заголовок сообщения: Re: Ошибка в Phaser
СообщениеДобавлено: Ср янв 04, 2017 1:28 am 
Не в сети

Зарегистрирован: Вт авг 27, 2013 8:15 pm
Сообщений: 16
TheRabbit писал(а):
Legolas, а ты вообще до js на чем писал? )) и писал-ли?


Ну на флешовском actionscript 3.0 программировал раньше


Вернуться наверх
 Профиль Отправить e-mail  
 
 Заголовок сообщения: Re: Ошибка в Phaser
СообщениеДобавлено: Ср янв 04, 2017 12:28 pm 
Не в сети
Аватар пользователя

Зарегистрирован: Вс дек 19, 2010 5:31 pm
Сообщений: 4829
Откуда: Пока не знаю
Сайт: http://gamespoweredby.com/blog/
Legolas писал(а):
TheRabbit писал(а):
Legolas, а ты вообще до js на чем писал? )) и писал-ли?

Ну на флешовском actionscript 3.0 программировал раньше


А почему тогда ни var не пишешь в js, ни про local / public не слышал )


Вернуться наверх
 Профиль Отправить e-mail  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 9 ] 

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB