Я создаю простую игру, используя HTML 5, CSS 3, EcmaScript 6, AngularJS 1.7.7 и JQuery 3.3.1.Игра прошла гладко при тестировании с использованием Firefox, но когда я перенес ее в настольное приложение с использованием Electron, игра пошла не так.Это показывает ошибки в электронном отладчике, как на скриншоте I ниже.
Ошибки в электронном
Uncaught Error: [jqLite:nosel] http://errors.angularjs.org/1.7.7/jqLite/nosel
at angular.min.js:7
at Object.Y [as element] (angular.min.js:33)
at functions.js:5 angular.min.js:127
Error: [$controller:ctrlreg] http://errors.angularjs.org/1.7.7/$controller/ctrlreg?p0=gameController
at angular.min.js:7
at angular.min.js:97
at ea (angular.min.js:79)
at p (angular.min.js:71)
at g (angular.min.js:64)
at angular.min.js:64
at angular.min.js:22
at m.$eval (angular.min.js:154)
at m.$apply (angular.min.js:154)
at angular.min.js:22
Игра при запуске в браузереработать гладко, как на скриншоте ниже.
Браузерная версия игры
Поскольку Electron основан на Chromium и node.js, я тестировалэто на Chrome тоже.Когда я тестировал Chrome, игра шла гладко.Я не могу выяснить, что не так с кодом.Я ищу в Google, чтобы выяснить вопрос и ответ об Angular CLI, TypeScript и Electron, но я использую нативный Javascript, JQuery, AngularJS и Electron, поэтому их вопрос и ответ для меня бесполезны.
Iопубликовать веб-версию моей игры в GitHub , для файла javascript вы можете посмотреть по этой ссылке .Настольная версия игры практически не отличается от веб-версии, единственное отличие состоит в новом файле main.js и package.json.Для сценария в main.js и package.json вы можете посмотреть в конце этого вопроса (все другие ресурсы, такие как изображения, звуки и т. Д. Загружены правильно, проблема, которую я обнаружил, - это файл AngularJS и functions.js).
main.js
const { app, BrowserWindow } = require('electron')
let win
function createWindow() {
win = new BrowserWindow({
fullscreen: true
})
win.loadFile('index.html')
win.webContents.openDevTools()
win.on('closed', () => {
win = null
})
}
app.on('ready', createWindow)
app.on('window-all-closed', () => {
if(process.platform !== 'darwin') {
app.quit()
}
})
app.on('activate', () => {
if(win === null) {
createWindow()
}
})
package.json
{
"name": "borneo-space-war",
"version": "1.0.0",
"description": "Simple space shooting game with unique concept.",
"main": "main.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"start": "electron ."
},
"author": "Atallabela Yosua",
"license": "GNU General Public License v3.0",
"devDependencies": {
"electron": "^4.1.0"
}
}