0

Привет Я ищу, чтобы добавить функции JavaScript для игры производителя, но формат из них, как это:Game Maker JS Extension

companyname.initialize({ 
    soundMuteCallback: muteSound,   // optional 
    soundUnmuteCallback: unmuteSound  // optional 
}); 

И в файле они выглядят как этот

this.initialize = function(params) { 
    companyname.getSharedEventCenter().postEvent(SharedEventKeys.API_INITIALIZE); 

    _isInitialized = true; 

    if (typeof params !== "undefined") { 
     var muteSoundCallback = ("soundMuteCallback" in params && typeof params["soundMuteCallback"] === "function") ? params["soundMuteCallback"] : undefined; 
     var unmuteSoundCallback = ("soundUnmuteCallback" in params && typeof params["soundUnmuteCallback"] === "function") ? params["soundUnmuteCallback"] : undefined; 
     _adsManager.setSoundCallbacks(function() { 
      typeof muteSoundCallback === "function" && muteSoundCallback(); 
      [].forEach.call(document.getElementsByTagName("audio"), function(element){ 
       element.muted = true; 
      }); 
     }, function() { 
      typeof unmuteSoundCallback === "function" && unmuteSoundCallback(); 
      [].forEach.call(document.getElementsByTagName("audio"), function(element){ 
       element.muted = false; 
      }); 
     }); 
    } 

    _tryShowAd(); 
}; 

Кто-нибудь есть идеи, как это сделать в создателе игры? Я не знаю, какую информацию добавить в свойства функции расширения.

Thanks, Mitchell.

ответ

0

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

company.initialize = function(params) { 
    companyname.getSharedEventCenter().postEvent(SharedEventKeys.API_INITIALIZE); 

    _isInitialized = true; 

    if (typeof params !== "undefined") { 
     var muteSoundCallback = ("soundMuteCallback" in params && typeof params["soundMuteCallback"] === "function") ? params["soundMuteCallback"] : undefined; 
     var unmuteSoundCallback = ("soundUnmuteCallback" in params && typeof params["soundUnmuteCallback"] === "function") ? params["soundUnmuteCallback"] : undefined; 
     _adsManager.setSoundCallbacks(function() { 
      typeof muteSoundCallback === "function" && muteSoundCallback(); 
      [].forEach.call(document.getElementsByTagName("audio"), function(element){ 
       element.muted = true; 
      }); 
     }, function() { 
      typeof unmuteSoundCallback === "function" && unmuteSoundCallback(); 
      [].forEach.call(document.getElementsByTagName("audio"), function(element){ 
       element.muted = false; 
      }); 
     }); 
    } 

    _tryShowAd(); 
}; 

function createMuteCallback() { 
    muteCallback = function() { 
     // Code to handle the callback 
    } 
    return muteCallback; 
} 

function createUnmuteCallback() { 
    unmuteCallback = function() { 
     // Code to handle the callback 
    } 
    return unmuteCallback; 
} 

function createCompany (mute, unmute) { 
    if (mute == 1) { 
     soundMuteCallback.createMuteCallback(); 
    } 

    if (unmute == 1) { 
     soundUnmuteCallback.createUnmuteCallback(); 
    } 

    company.initialize(soundMuteCallback, soundUnmuteCallback); 
} 

Так что все это происходит в том же файле .js. Создайте новое расширение в Game Maker. Добавьте файл .js в это расширение. Добавьте функцию с именем createCompany с двумя необязательными параметрами.

Затем, когда вы вызываете createCompany (1, 1); в коде Game Maker будет запускаться файл .js и инициализирует объект компании двумя функциями обратного вызова.

Надеюсь, это поможет.

Смежные вопросы