Вызов работника из класса в JavaScript

В моей игре у меня есть класс персонажей:

var NPC = function(isometry,timer,canvas,tile,tileMap,scrollPosition,
grid,spritesheet, r1, c1, currentHero, hh, hw,index) {

this.index = index;   
....
NPC.prototype.w = new Worker('astar.js');

this.w.onmessage = function(e) {

//process worker results, 'index' is strongly needed
// e is data from worker
//it draws path for the character on the common tileMap:

tileMap[e.data[i].x][e.data[i].y] = index;
}

Затем в основной программе я создаю два объекта этого класса:

var protagonist = new NPC(.....,0);
var char1 = new NPC(.....,10);

Проблема в том, что они рисуют путь с одинаковым индексом = 10. Я пытался:

  1. вместо этого использовать this.index, но он становится неопределенным в this.w.onmessage
  2. назовите это "NPC.prototype.w.onmessage = function(e) {" - та же история
  3. Объявите отдельную функцию:

    NPC.prototype.wonmessage=function(e) {....}this.w.onmessage = this.wonmessage();

Error: "e is undefined".

Что я должен сделать, чтобы правильно отправить все данные в функцию?

0 ответов

Другие вопросы по тегам