littlejsengine 1.5.2 → 1.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. package/README.md +38 -16
  2. package/{engine/index.d.ts → build/littlejs.d.ts} +1 -1
  3. package/{engine/engine.all.module.js → build/littlejs.esm.js} +5 -5
  4. package/build/littlejs.esm.min.js +1 -0
  5. package/{engine/engine.all.js → build/littlejs.js} +5 -5
  6. package/build/littlejs.min.js +1 -0
  7. package/{engine/engine.all.release.js → build/littlejs.release.js} +5 -5
  8. package/examples/breakout/index.html +3 -2
  9. package/examples/electron/build.bat +52 -0
  10. package/{electron → examples/electron}/electron.js +18 -21
  11. package/{game.js → examples/electron/game.js} +1 -1
  12. package/examples/electron/index.html +2 -0
  13. package/examples/electron/package.json +20 -0
  14. package/examples/empty/game.js +1 -1
  15. package/examples/empty/index.html +2 -2
  16. package/examples/module/game.js +1 -1
  17. package/examples/module/index.html +2 -1
  18. package/examples/particles/index.html +3 -2
  19. package/examples/platformer/index.html +3 -2
  20. package/examples/puzzle/index.html +3 -2
  21. package/{build.bat → examples/starter/build.bat} +14 -15
  22. package/examples/starter/game.js +111 -0
  23. package/examples/starter/index.html +27 -0
  24. package/examples/starter/tiles.png +0 -0
  25. package/examples/stress/index.html +3 -2
  26. package/examples/typescript/game.js +1 -1
  27. package/examples/typescript/game.ts +1 -1
  28. package/examples/typescript/index.html +2 -1
  29. package/package.json +2 -2
  30. package/{engine → src}/engine.js +1 -1
  31. package/src/engineBuild.bat +130 -0
  32. package/{engine → src}/engineInput.js +3 -3
  33. package/{engine → src}/engineMedals.js +1 -1
  34. package/electron/electronBuild.bat +0 -32
  35. package/electron/electronSetup.bat +0 -2
  36. package/electron/package.json +0 -21
  37. package/engine/engine.all.min.js +0 -1
  38. package/engine/engine.all.module.min.js +0 -1
  39. package/engine/engineBuild.bat +0 -127
  40. package/index.html +0 -26
  41. /package/{tiles.png → examples/electron/tiles.png} +0 -0
  42. /package/{favicon.png → examples/favicon.png} +0 -0
  43. /package/{engine → src}/engineAudio.js +0 -0
  44. /package/{engine → src}/engineDebug.js +0 -0
  45. /package/{engine → src}/engineDraw.js +0 -0
  46. /package/{engine → src}/engineExport.js +0 -0
  47. /package/{engine → src}/engineFont.png +0 -0
  48. /package/{engine → src}/engineObject.js +0 -0
  49. /package/{engine → src}/engineParticles.js +0 -0
  50. /package/{engine → src}/engineRelease.js +0 -0
  51. /package/{engine → src}/engineSettings.js +0 -0
  52. /package/{engine → src}/engineTileLayer.js +0 -0
  53. /package/{engine → src}/engineUtilities.js +0 -0
  54. /package/{engine → src}/engineWebGL.js +0 -0
@@ -0,0 +1,2 @@
1
+ <body><script>
2
+ eval(Function("[M='DYhuJzCBV~LKby?Vt_b^ejSdE[eOF]^xwJzztBUSE|iPNBKKb?dBsnnlAtsdW{Bah}DrNQBAvepYbgAd|MkbArM~O||rTzOp@j@plQJwXWvVhjJOIAP]qltDKs]}eKr_hNM[lCb@AimlGZse}EkgtrHOvPEpL_wCglz}RRMIaRQzRhG{}zBgw@o]PR]~GKdRJGuuTSzzixXpGA}gRynsIAu{Sw{F}R|LIG@CsRCM`JUJvCzAYYZu@oL[I|WDTw|soA_N|ancvowsba{YWMEFfRfNMYRp_TvI~Fx`ZQzun_?[FQ@j?nsDgS}HlS_G~]h^vAvy^dSsvmUzvoHPLSdEgeGgYV{KTFMcq?byagUHA{yNhjvosWF|JY}?fQEbD}OjGVwx^c}OMOl^bWOui^[Ivg[jsXiPsH`v}AUS`pXxUJz]hAOQhlYOCMUceMnrGhge|EkH{?WpWojSpLiJRRVcNwXKw{JXRZgzX]gQ@etO^dYcUGvirBooulMfYq@JovQKWTOHCIDd`K?junfya]tnwNmtrCnEB{FBvcPIR|p|]apt~LzVZ`uIsSeaTtTVKi[|LYGO[ML_ulpHJ?QteSYjISIHNzI~mePARzyvRJcPtslrQgXO`fAyNNzFJ{abI]jpXTnT{YFRvrJAZnOzUaRuTX?uAkmmeJpZJmvyULO@`p@R}[t~qOlHB_TqPslYp|R^ftUiccRghndwglFSLpBAa[g}cKvx|HibXgWlIGXsGIHCa_f[tS?]eiZq^dtAhlWJffyPW]n|D[zRUFIAdi_iVHNQfkSn@QdEqqhUEgzE{pCpfnhacZJWV[MOjtdQq_ZMcC@pwJwmnFt^HK^tEOUeu{nl[wvQqf{SE`UhYtcDsdLALAbt`qDfmeZ`Gyj_iWv_[?}SPzvE[AtFJ^_X?pq|SjuuYFSkniQYdhaUmNmvDtHn[DTt{TIE}NtkDvi~?bd~RAu|fK^?lOvUUv]AWT?Ui]^_Z{kytzlQ@rhR`_OTEnDFk[bDtj|uyttWJ_VkirTg]WBlS{[om@LudgyTdJ^MNdmXo^lRP`e`kKtZVD|YGFqjGCYQH`EpErSwlhtYDgRUwujfAXWXJI|NDwQ|OApShIKEJJeOcBUbchxxQ^}gcH?gbfNYwk~{|]LScUWE`Gzv{hx^FyioJP[^_CMUeICIIdroIVKkR}xTKYDLqUzfl{XVao`@zbtAlV{?mOXelBkgKeQuwqPWbf^PM]ahX]{IFKYF@b_VE_vFs[ct~l?CA_}mZV^aoMAdYCOU`PDjYFEwqxxUHWzpnY@?H~GagutCltWqq{zsWds^jkN{`z{Pp}pZCnyfV^tLhLE|ydFFDytCUAIghmjfWqbH?ma]_gRnYJsboB{nQSoIVYVrqHLO`mzC{QkZojEUA`FLfOKzM_mQommrT?yezZeYPodczzc_aQuQrBSNeQ@Kitt^QKmf@]KKHjygOxxYH?B^UgPp]zXK[xffIt`jHIFw?zfy~|m`KpIyJ{{nwW@TqacRjViIfW{UKT@mYNZWOTUeckbaYMnJ~h|}y_?a{nnE_s?GV_tWBqSPr?gqq@wfIZWLCA|CAN_MvkhvcnQhKZsBrmU^w[D|YNf}_nZJwNXM{Dw?PDY~rusf_Nrm{NyzSY}qt|y]mPgPRl?SliU@CxtCFf@ZNP`gg|g@FsI^mUayJjOK~doq~|GuDt`PwKMWyb}|~iklbESGhcS?a~zT_a]yTKpMi?Llrs@bQ_L|xh?wUOpuXkZoSzWDvwmyg[ggMnEAAr_w?Fctw|EHql|OGtTRN{XBWxdvVsiEwZkGFD|{WspkNjMSV[nxYmppwBVb]tlZReEPHhIDZfHgEZemYtiXft_}_sOEnA~U~`awBrmQ`W[[jaOu@Fp_dtyZc]|BR{[jSOy}SA]?sfaRz[jwiMufnOLOBKalL`JiYH]YUQMkwJuqvd[lPcZt[Ek?r`TkRDTXBszW}QszISPMPzj]l}ALBP?coK[M}QMu|wHvPrMNPA^vCUGbGeCBhF|SgQeVptFfDMWrpc@Taj~WpCNPzwvBSSY`ccans??UzK^adxVBOtiNdoZmqaJ]T^RkMfPuxlyn|YUcdf[AQWqOVGUTUSz_CROMCRtM^WCCCcFo}o@bH[J{l?wUM[soFzKgJRpv[FCLYRXOd|bdqfd?AAwYCSeZkbWj~SoXDi`xRUyQWQX_j@GuxZkjxN^RZgfd~~|N`gBA]kJ^jLTZxlNV]N`_urbSf|Yt?prXcvhiS?hfbamVv{LPqhim{]bCM}OA}^DYjrDsrFIsSDvhCKLu^]`vKo{tWV_FdyqpUPIKgN`Qa[GaKuKvF?kcEhJvS[ypCruGUVHmk^xG_Q@HXMmpiaKvf?UjJ{icwDQrrq{UYw_DmVFzhHqzUUi?o_~VRU_HxKdUm|y`dvA^{Ai`tnSdO@YsBWAIBflM?UvLR]vTf`TcMoc`fVGNWIkTJsfMkDMzHIJcuC^ASrCabcl[?QfonyEFyogsunyRacV{CgFm[hynYFecGgAdftoVsZJNdPCRDkk[UUMWq_Pox`Xk{HeeROyfq`?rCg?JIrtnO@Ns{Tm{@r|}gExLpF|JgzZV~eliS?zT?y~CxIIZ?[_SRbJcO@_kdVJOWwZNAUFEVBBgxK_xhkGZa_JxymZlCAaygyaf?dIo]m}Wgpf~K_]bAQgOwnJ{k{XmHGGyePZsjd{?OvUCG_zrjAo{Uo_QyCJzWJ]wf|_FIYQxgrdqjv~lcItCWI}sAyqPX]RlX?FJjKUBJKccMPWcgp[`YALWnUJpmyp`oqB~IP@zOZZpz`b_xMG}dCNuxsaRgsqIv?cGPWEFWeBIFPQ@l}OVPbwvrGvkPBZ?jRyrh^i{gO@?wqvzGHzFnAPw}mkpzvJWrNQfLof]WL[}?nXSz_ADPjhQcG_aGS[|@DYJqMX?O^NqUQ^Bi@d~}`fhleXD?L~J|NzlkQoJCBMWvwgzMhAXqxIbIgNf@?vroNXhzJ?@oUShEqi}LAyTp|cYKyjf|Vs[wbGDfkegITHOozosxloZdxlFmE_?pjFMZMrR]DbjdzXPzNYT}@rPKDwY^_WWgNRYtoIETZhvzXP[wa|tWKTwF^KogSPW{o?[N}AyT`GtdzSErko?DtjzKBJdWXugT~s`rW~|TjTCTgCeD|Fu_YsR]VXmUOxBVVY|GMNC`BhQltZtz`YsG?k_DXUfSGKMSYlhiabhMLOyYJfUlR_|RRzFmb@FQxZO`wlGQP^FxEE`?l~n~W`DNYmbnz_pnZZaDG|_YeeF[wqjSVu{^BMQg}wpp{J_qyLlzMrTY|HDTN`QzoQuHeaktwqmPOg[Z[cEzjmQyF][qtCQ]NPJk~jZkDRDej]yk^tLJmRJZsEBh{Sa]Md^D|EI~yCSNMqAjn?BMwuXNe|KnjSXrmPThgj_hc^B_SficQw|T@SSgzBygIwDtvEqDRlTB}hA@mZUW]g`dfbtEsR?rWqWkVp``InYlyoerOtU?okUZV?jK}CPWw?Onq?^IezHJTqBASonkuD{_GzqZ[aSMZPhvBnpQYII~VT}JPxgQUZShecdMcDNYjemVgIF|~dnM[{@~~QDAcCeK_QLSx|BFIC`esdZmo??xI]~p|uRcQY_Q}LlzWioticXqY?pNOWNhOW_q{sm[?NLoivJcl~qDRwFM_dTK[j@^DF[bFY`sEVhUq[miWk[xV?RM?KVNSG^f_qnvRxN?zMwCaxwZNvw@ohtzk^gDC`Z_]zUHnOFLr~ZhGFYIYyWOl?IbAKVJcKtj@~ToUxGCDDZIx?nd?iOV^uh{dsRWtva?faEhvImhRbneQWoSCPFu}[Hb]XrcDOqkVbkyIazdpDcAaCxYW]jmcQhOsE|b[}CdczX^J}yKGjtAJAWsgGSV~ntNxtmYJEhbh{u[HKv_kPDhZt?oGT~V}dLsPWWCpT|qtGix|mfU`rFh`ir{bTgskDf]FZ}NZXJiAVUNaiIwkuskx~}u@djezJXzq?LBA^_dCIW@XW|t`bouxD|ACJvpChHVp[|wD]FpB_~~lV_Pz[|_s[ku^wAzh[{qm|W~K@OBK@vlDG|Y|RelcMQKvtmmdVGQ}OCFexbHzJR}Y}akNvONeOxcZ@JhVUC{dcXndDvsG[ytriKIdRIwVJgQ]wX?Cg~aTXtDcvVM^Z``tLyH~Ez~BRKDBplY`tnvS_w|RmGBQ[Yh_Q[ftvHMPpFoUR|cAGAjKj^[Ht@cD}ruQOpnTQhpYC`@yKdJPaSbIRv}VfCbYDE@BUuqaM?AFYo_ZGM]{ndLiLzrQsYWIUrisBQBBBOf_ImzH@|}xU}yC~ry`mbSlHgnMDKqFIRFqKZ?CXUToMcveLQaQ~]|OPC[[tfFvu{V^h]s[G{l?O`Y}kBnJk}XPy`ldz^Ktur?CEWVfWkgLMzS`usxxfDEuN`UHbfikOU~YG]lDfAlv]Vctn`KxS~v|ALhjCSZEHC}NwYuRIyjgYQUtp]lMAGyQNqFLfyMiHnK`SyMdXOofrwQg_VMKJgP@QtWto@v]qAGxbJDh_MVJJZRASfi@GjM]TwzgaM^zyLke~eYnHcq_ZBr`RKoeq~pauJETAgraal?EdOgqRfcjcpBExanDBdw[YYj]p@nRyCcBFx_STvj~nMeXGyEslPfCQJm_acS|}OvEeYanDQSEVzFbVIWvNnIxjPT_NXi@y]IkSGiFmu^lq`pKB_UpFoSmKkufT[{^i?rccrmoGMVtYjcOZolZdgUwKI^voQfjNd}LxukpVjx~VqN|nyLUBY^qAqn`^?phzGoiRhx_c?btr^AFByUK]wNtGGrkfsXpjjLUCe?O}iCqbnwBNXjrrVFPgKtBKMUnpaYdj@acAua[PeU]n_U?tpDMoepGZhPcuB|IynrfSCKNkzftCqZ?ti~jKOHBRM}jWza^cVFRXnzK?tL_TFmqSsqMfIAPINqLDqQy}YZGuhyzyb|OLj~vfgRfEfv?usSOLsF`[uUcJY_gnaKF?dXNvDEFQWqDbSBpi~ZCQEUy_hd@Owm^YKt_BIXv@NDk[jxRMWICW~GD[`sTQLGv`gPyUbmDdDO}OdbKvwzLoDKavDJRgQwnHIMe?u|xtBo?eqqSPMgwfzyatUiSnBnEuToTwb]cbrRQQ^uAIPswLp|hKaPWk^`MKhE^auir{sJNzqptiGN@Iz@~X`O`JuL?efbeF_k][dvHESTkxn^HnXUsxPbI?lE|EDbKmCRL~NprItUGvq~q{qBp]njD[yctdo^JxjZFSrgHwDouGkqHxgg}mj{noEHzfmb~JSVzIoyAlzwtmQbL~OdZWRZ`mpUDKagmcvNmne[jP|nxCJqzUgLXJBmGG~?a}uDTGbIqsC@u]VfgPVgbg[xto`zeQ_nXRbwY}K~|n`yKeSBFswLA?oCOdiwmc?YwcVGvitUWIjVSawT~Yh`NXx~Jr?HRf}LqVExCisFu|@KvWGETo]?[Xviep^tXQlsS|xschkIzdVzNdgf?ZcwsXX]RanjaebtW[Ujl|^BOlkwK`CTOkvyC?N@EnuWVN]X?oUwlhJVyZAVLmLW]P_vrZoZ}O]vFrWBXwz{lU]XVwrPx]khjwUuv}xUAfaVgfEwv[JgiUpxIIfr}??wIhnnNvMtbmq[hDkfgfTaInXGW[WW?@nnaDVLbGRvFXDSZHcjoMrwbZ`BQCegnD}NJjtNR`[AfJjVAfwrWLnVftTcVYUNCFb[n}[yyEEFSHNllFBh@c^^t?bQDld}OlyIxKwTv[BnLENhKGrHITL^|waFPlQsa]soPPFxON}UKWy^yvyKe]WuqWb]xaGAbPL@tGyLknI_AfSAj^YD?tlORYT_Go`AdJXhJkgiIAhIzV`^ZsyCagoORq`yviJcbAJKuuiE}c{WeoI_mjcjLQtfwgGIYzYGsTE@i@IrvgUj[U[DzmS|bH?DDeDldazEsXBLlqf[uUeYPtq`tLUvkIs~a`HiXFac~WV@t[[eAnLWcpvASBOYiRLCdyCLwpBQXwXGJorQcyNTQkBQQ][rYy~p^RCj~ELPkV`aka}aNSLpyDydUGrC@zG?wSlIuvQjaZH}~tIgYYvrfXIaMHvMg}@~xgr[NKsgUpGcGBwVcRmjw@@NFaGY[|WyQkF_n^~rGpcDr?fqBEq~ZoagW[wCMirZB[l}~hSX^XzCyabfiLXPkbDplwGdIzJPNPQb@BtN^Wmh[?]dMeCkwa@VQSeQCkEQwKBpuZ_ClD}E_sEr?B`_rupxp?ckRsn~Cfoxji^Tucc@}nKCFrW@gHe?Cxd@}SlS@iX^aTzMY_CK@o|nr}{y@qXsgRJ`ItgUP?yvnaIxTr{AfplV}cvEVUeUFPtFD?g_imZ^tw]vHcFclKsqvOYdgJl@hlOrNN|zniXkJMqiSvtnn~AUyuOheTwX_tLz|_cfikR{IEyRw~OuCf[]IAT[PPKIOnc|IAsec^cFwcoeIHFFUQAyRIUAEDzngxosbFd@NEJzFGQCGwWKJNmBwZ_F}OA}MKzIE@LAfAXcp}fNBNCTpGgmV[BaoDIvOd}h~@^N@WD?w|s[i[B@Pv_ZMCzk^qBbNuVzjYWscbJfQVPn|mCKrrazm]QAVS?mfw^vGf]b@N?xA@~b{fily@]f_F@FW|DdLsFng?rdE`PftgWBH^rYn@f`zAZanDdBXkAplT}mpcokSIVfmHbvKNmYblbBu^OYJQqKFHgRwuYfOnvvaSuXBUWS?^Bzkto^gbv?YlP@lnWGEayDQsaqu_fm{WcoCleS@axo~[FqMaUfIikX~vssKAzyevpoHmLGKFfus|tfroqyXJMJ|{`MNrg}Rf`T]weSQIPnD~L?mRfT^ciedQ~BK]?`OcBE~B@j]`D?OF]GPfIwnlX|jgopQQNgqMZkqAjz}ZYDnsBPlyYigZEy[Gfdi@{afvogVO}du{f}j]Eto@si]yf?dVr[yaSIXBrxWiSRxa_BG_pADKsF]|`mLGUHdE_Z}moOXKMbwpzi[XfYTQ_QrdN[pyowYJue|{xLgVdI}{?njX`^MwWV@LWAanGO|u`V?`Da{JAT?HvoL|sDTeeZxSf@hIqwRLrlQGONq?lOCeoAIF?I?AOdg`MxyfyKyyXEjsv[r^Uq?Wj~CoRvTjjxausxHB`CwauprXOle`IpYdsOg]F?iDz]hTSp[_FhmUkRGy]f^dS?fJYFYYgaYSi_DUbNWMSYJfdheVFdw[I}WjP_GMD^LMn~pGQytBn~Qe}aT^VeM_E{M`mNA^{orkcdMy?DToGNLtF[oPbBCd|BmXn|ynz@noy~b}|mGEOQ[f_Dx`JxhL]?DZuvdEpd[f]z|b{xCkFirFxdK|ZAOofbKYngwAEKeaPsFEg?Q`vgkb}`rmuz^f`hvVpOjtjqtcXmhq^W@uRPNnqcmVhp`HJ@WuUIOmpc?`CE??ewy}gAEcMUjY^MqrtQrfoQhqbx]lrHn`cAG|cI`rHF?_?g]HXG][~BcjDigTFkgkW[geovnUFARvz[i?]EV{rIAJ}Rna@_L[vdrd{QlbHs[FlJKpRXlyPp`zeNYoT_am]YOkJiWZBBhb~tvANUcsy|mmj]X|cUdkwIW|vGFUselsg?QFjk?lI[XUr|je@~`NWwJhFHG`ek}TX?UcezDgU]TcMdRy{rq}r[||oBIAXjFtKx_?rXhiVN|dwuVFbfVMsBzfpq|Z|bKRifQ_Bp@mY_]dt{lMB`vDGs~aBKNS@DQ{trAl^^nO_BSb{nZ]AuCZGN@cDPYL{ZJpPvR[PUgoLncXbMpgucJjgETBi[hhmpzbw@TjvZOP]EhFcH{g]HWOmSOBkEjXCkvO`gZSL?NW}PBGqaObGE]Qw[UZtEv~xLk@^~oSXWBaOmjnNQYh^H~KQbhox?X{uNa}aJJf}Qc~`}_MtvjXcNr@?VafbhkRFJqCSFe``I{yqFMjmUVB^fau~}ieSUcEOe`l?VWThanHwXPU`fGHFruFQm`h~`{|GVHv~_Wbz_v]`_TLuGYp_RZvFtTn@@PUTSMWXRNnoEaYKNT{sqQIHt_UUvA|ziPqvbQi~t@s]QmrQaYxpIFHqdYxsRSrUb^GhDk`@wYE^JFABqmjKtkWwWkWfMM}Yj~bvgd`WQYefZg}YqJ'",...']charCodeAtUinyxp',"for(;e<13590;c[e++]=x-128)for(x=1;x<128;n=p.map((i,y)=>(t=r[i]*2+1,t=Math.log(t/(h-t)),A-=a[y]*t,t/750)),A=~-h/(1+Math.exp(A))|1,U=o%h<A,o=o%h+(U?A:h-A)*(o>>13)-!U*A,p.map((i,y)=>(t=r[i]+=(U*h/2-r[i]<<17)/((C[i]+=C[i]<5)+.1)>>17,a[y]+=n[y]*(U-A/h))),x=x*2+U)for(p='010202103203210431053105410642065206541'.split(A=0).map((i,y)=>(t=0,[...i].map((i,y)=>(t=t*997+(c[e-i]|0)|0)),h*512-1&t*997+x)*12+y);o<h*512;o=o*64|M.charCodeAt(d++)&63);for(C=String.fromCharCode(...c);r=/[\0-]/.exec(C);)with(C.split(r))C=join(shift());return C")([],[],1<<13,[0,0,0,0,0,0,0,0,0,0,0,0],new Uint16Array(51e6).fill(1<<11),new Uint8Array(51e6),0,0,0))</script>
@@ -0,0 +1,20 @@
1
+ {
2
+ "name": "LittleJSGame",
3
+ "version": "1.0.0",
4
+ "description": "A minimal Electron application",
5
+ "main": "electron.js",
6
+ "scripts": {},
7
+ "repository": "https://github.com/electron/electron-quick-start",
8
+ "keywords": [
9
+ "Electron",
10
+ "LittleJS",
11
+ "Game"
12
+ ],
13
+ "author": "GitHub",
14
+ "license": "CC0-1.0",
15
+ "devDependencies": {
16
+ "electron": "~25.2.0",
17
+ "electron-packager": "~17.1.1"
18
+ },
19
+ "dependencies": {}
20
+ }
@@ -27,7 +27,7 @@ function gameRender()
27
27
  ///////////////////////////////////////////////////////////////////////////////
28
28
  function gameRenderPost()
29
29
  {
30
- drawTextScreen('LittleJS Empty Project', mainCanvasSize.scale(.5), 80);
30
+ drawTextScreen('Hello World!', mainCanvasSize.scale(.5), 80);
31
31
  }
32
32
 
33
33
  ///////////////////////////////////////////////////////////////////////////////
@@ -1,6 +1,6 @@
1
1
  <html><head>
2
- <link rel=icon type=image/png href=../../favicon.png>
2
+ <title>Little JS Hello World Demo</title>
3
3
  </head><body>
4
4
 
5
- <script src=../../engine/engine.all.js></script>
5
+ <script src=../../build/littlejs.js></script>
6
6
  <script src=game.js></script>
@@ -5,7 +5,7 @@
5
5
  'use strict';
6
6
 
7
7
  // import module
8
- import * as LittleJS from '../../engine/engine.all.module.js';
8
+ import * as LittleJS from '../../build/littlejs.esm.js';
9
9
  const {Vector2, Color, Timer, vec2} = LittleJS;
10
10
 
11
11
  // sound effects
@@ -1,8 +1,9 @@
1
1
  <html><head>
2
+ <title>Little JS Module Demo</title>
2
3
  <meta name=viewport content=width=device-width,height=device-height,initial-scale=1,maximum-scale=1>
3
4
  <meta name=apple-mobile-web-app-capable content=yes>
4
5
  <meta name=mobile-web-app-capable content=yes>
5
- <link rel=icon type=image/png href=../../favicon.png>
6
+ <link rel=icon type=image/png href=../favicon.png>
6
7
  </head><body>
7
8
 
8
9
  <!-- Add your game scripts here -->
@@ -1,8 +1,9 @@
1
1
  <html><head>
2
+ <title>Little JS Particle System Designer</title>
2
3
  <meta name=viewport content=width=device-width,height=device-height,initial-scale=1,maximum-scale=1>
3
4
  <meta name=apple-mobile-web-app-capable content=yes>
4
5
  <meta name=mobile-web-app-capable content=yes>
5
- <link rel=icon type=image/png href=favicon.png>
6
+ <link rel=icon type=image/png href=../favicon.png>
6
7
  <style>
7
8
  input
8
9
  {
@@ -15,7 +16,7 @@ button
15
16
  </style>
16
17
  </head><body>
17
18
 
18
- <script src=../../engine/engine.all.js?125></script>
19
+ <script src=../../build/littlejs.js?125></script>
19
20
  <script>
20
21
 
21
22
  'use strict';
@@ -1,11 +1,12 @@
1
1
  <html><head>
2
+ <title>Little JS Platforming Game Demo</title>
2
3
  <meta name=viewport content=width=device-width,height=device-height,initial-scale=1,maximum-scale=1>
3
4
  <meta name=apple-mobile-web-app-capable content=yes>
4
5
  <meta name=mobile-web-app-capable content=yes>
5
- <link rel=icon type=image/png href=../../favicon.png>
6
+ <link rel=icon type=image/png href=../favicon.png>
6
7
  </head><body>
7
8
 
8
- <script src=../../engine/engine.all.js?125></script>
9
+ <script src=../../build/littlejs.js?125></script>
9
10
  <script src=gameObjects.js?125></script>
10
11
  <script src=gamePlayer.js?125></script>
11
12
  <script src=gameEffects.js?125></script>
@@ -1,9 +1,10 @@
1
1
  <html><head>
2
+ <title>Little Puzzle Game Demo</title>
2
3
  <meta name=viewport content=width=device-width,height=device-height,initial-scale=1,maximum-scale=1>
3
4
  <meta name=apple-mobile-web-app-capable content=yes>
4
5
  <meta name=mobile-web-app-capable content=yes>
5
- <link rel=icon type=image/png href=../../favicon.png>
6
+ <link rel=icon type=image/png href=../favicon.png>
6
7
  </head><body>
7
8
 
8
- <script src=../../engine/engine.all.js?125></script>
9
+ <script src=../../build/littlejs.js?125></script>
9
10
  <script src=game.js?125></script>
@@ -1,6 +1,5 @@
1
1
  rem Simple build script for LittleJS by Frank Force
2
2
  rem Minfies and combines index.html and index.js and zips the result
3
- rem Run buildSetup.bat to install required dependencies.
4
3
 
5
4
  set NAME=game
6
5
  set BUILD_FOLDER=build
@@ -9,22 +8,24 @@ set BUILD_FILENAME=index.js
9
8
  rem install dev packages
10
9
  rem call npm install
11
10
 
12
- rem rebuild engine first
13
- cd engine
14
- call engineBuild.bat
15
- if %ERRORLEVEL% NEQ 0 (
16
- exit /b %ERRORLEVEL%
17
- )
18
- cd ..
19
-
20
11
  rem remove old files
21
12
  del %NAME%.zip
22
13
  rmdir /s /q %BUILD_FOLDER%
23
14
 
24
15
  rem copy engine release build
25
16
  mkdir %BUILD_FOLDER%
26
- cd %BUILD_FOLDER%
27
- type ..\engine\engine.all.release.js >> %BUILD_FILENAME%
17
+ pushd %BUILD_FOLDER%
18
+
19
+ rem rebuild engine first
20
+ pushd ..\..\..\src
21
+ call engineBuild.bat
22
+ if %ERRORLEVEL% NEQ 0 (
23
+ pause
24
+ exit /b %ERRORLEVEL%
25
+ )
26
+ popd
27
+
28
+ type ..\..\..\build\littlejs.release.js >> %BUILD_FILENAME%
28
29
  echo. >> %BUILD_FILENAME%
29
30
 
30
31
  rem add your game's files to include here
@@ -67,12 +68,10 @@ rem delete intermediate files
67
68
  del %BUILD_FILENAME%
68
69
 
69
70
  rem zip the result, ect is recommended
70
- call ..\node_modules\ect-bin\vendor\win32\ect.exe -9 -strip -zip ..\%NAME%.zip index.html tiles.png
71
+ call ..\..\..\node_modules\ect-bin\vendor\win32\ect.exe -9 -strip -zip ..\%NAME%.zip index.html tiles.png
71
72
  if %ERRORLEVEL% NEQ 0 (
72
73
  pause
73
74
  exit /b %ERRORLEVEL%
74
75
  )
75
76
 
76
- cd ..
77
-
78
- rem pause to see result
77
+ popd
@@ -0,0 +1,111 @@
1
+ /*
2
+ LittleJS Hello World Starter Game
3
+ */
4
+
5
+ 'use strict';
6
+
7
+ // sound effects
8
+ const sound_click = new Sound([1,.5]);
9
+
10
+ // medals
11
+ const medal_example = new Medal(0, 'Example Medal', 'Welcome to LittleJS!');
12
+ medalsInit('Hello World');
13
+
14
+ // game variables
15
+ let particleEmiter;
16
+
17
+ ///////////////////////////////////////////////////////////////////////////////
18
+ function gameInit()
19
+ {
20
+ // create tile collision and visible tile layer
21
+ initTileCollision(vec2(32, 16));
22
+ const pos = vec2();
23
+ const tileLayer = new TileLayer(pos, tileCollisionSize);
24
+
25
+ // get level data from the tiles image
26
+ const imageLevelDataRow = 1;
27
+ mainContext.drawImage(tileImage, 0, 0);
28
+ for (pos.x = tileCollisionSize.x; pos.x--;)
29
+ for (pos.y = tileCollisionSize.y; pos.y--;)
30
+ {
31
+ const imageData = mainContext.getImageData(pos.x, 16*(imageLevelDataRow+1)-pos.y-1, 1, 1).data;
32
+ if (imageData[0])
33
+ {
34
+ const tileIndex = 1;
35
+ const direction = randInt(4)
36
+ const mirror = randInt(2);
37
+ const color = randColor();
38
+ const data = new TileLayerData(tileIndex, direction, mirror, color);
39
+ tileLayer.setData(pos, data);
40
+ setTileCollisionData(pos, 1);
41
+ }
42
+ }
43
+ tileLayer.redraw();
44
+
45
+ // move camera to center of collision
46
+ cameraPos = tileCollisionSize.scale(.5);
47
+
48
+ // enable gravity
49
+ gravity = -.01;
50
+
51
+ // create particle emitter
52
+ particleEmiter = new ParticleEmitter(
53
+ vec2(16), 0, // emitPos, emitAngle
54
+ 1, 0, 500, PI, // emitSize, emitTime, emitRate, emiteCone
55
+ 0, vec2(16), // tileIndex, tileSize
56
+ new Color(1,1,1), new Color(0,0,0), // colorStartA, colorStartB
57
+ new Color(1,1,1,0), new Color(0,0,0,0), // colorEndA, colorEndB
58
+ 2, .2, .2, .1, .05, // time, sizeStart, sizeEnd, speed, angleSpeed
59
+ .99, 1, 1, PI, // damping, angleDamping, gravityScale, cone
60
+ .05, .5, 1, 1 // fadeRate, randomness, collide, additive
61
+ );
62
+ particleEmiter.elasticity = .3; // bounce when it collides
63
+ particleEmiter.trailScale = 2; // stretch in direction of motion
64
+ }
65
+
66
+ ///////////////////////////////////////////////////////////////////////////////
67
+ function gameUpdate()
68
+ {
69
+ if (mouseWasPressed(0))
70
+ {
71
+ // play sound when mouse is pressed
72
+ sound_click.play(mousePos);
73
+
74
+ // change particle color and set to fade out
75
+ particleEmiter.colorStartA = new Color;
76
+ particleEmiter.colorStartB = randColor();
77
+ particleEmiter.colorEndA = particleEmiter.colorStartA.scale(1,0);
78
+ particleEmiter.colorEndB = particleEmiter.colorStartB.scale(1,0);
79
+
80
+ // unlock medals
81
+ medal_example.unlock();
82
+ }
83
+
84
+ // move particles to mouse location if on screen
85
+ if (mousePosScreen.x)
86
+ particleEmiter.pos = mousePos;
87
+ }
88
+
89
+ ///////////////////////////////////////////////////////////////////////////////
90
+ function gameUpdatePost()
91
+ {
92
+
93
+ }
94
+
95
+ ///////////////////////////////////////////////////////////////////////////////
96
+ function gameRender()
97
+ {
98
+ // draw a grey square in the background without using webgl
99
+ drawRect(cameraPos, tileCollisionSize.add(vec2(5)), new Color(.2,.2,.2), 0, 0);
100
+ }
101
+
102
+ ///////////////////////////////////////////////////////////////////////////////
103
+ function gameRenderPost()
104
+ {
105
+ // draw to overlay canvas for hud rendering
106
+ drawTextScreen('LittleJS Engine Demo', vec2(mainCanvasSize.x/2, 80), 80);
107
+ }
108
+
109
+ ///////////////////////////////////////////////////////////////////////////////
110
+ // Startup LittleJS Engine
111
+ engineInit(gameInit, gameUpdate, gameUpdatePost, gameRender, gameRenderPost, 'tiles.png');
@@ -0,0 +1,27 @@
1
+ <html><head>
2
+ <title>Little JS Starter Project</title>
3
+ <meta name=viewport content=width=device-width,height=device-height,initial-scale=1,maximum-scale=1>
4
+ <meta name=apple-mobile-web-app-capable content=yes>
5
+ <meta name=mobile-web-app-capable content=yes>
6
+ <link rel=icon type=image/png href=../favicon.png>
7
+ </head><body>
8
+
9
+ <!-- LittleJS engine scripts -->
10
+ <script src=../../src/engineDebug.js?125></script>
11
+ <script src=../../src/engineUtilities.js?125></script>
12
+ <script src=../../src/engineSettings.js?125></script>
13
+ <script src=../../src/engineObject.js?125></script>
14
+ <script src=../../src/engineDraw.js?125></script>
15
+ <script src=../../src/engineInput.js?125></script>
16
+ <script src=../../src/engineAudio.js?125></script>
17
+ <script src=../../src/engineTileLayer.js?125></script>
18
+ <script src=../../src/engineParticles.js?125></script>
19
+ <script src=../../src/engineMedals.js?125></script>
20
+ <script src=../../src/engineWebGL.js?125></script>
21
+ <script src=../../src/engine.js?125></script>
22
+
23
+ <!-- You can also include all engine scripts like this... -->
24
+ <!-- <script src=engine/engine.all.js></script> -->
25
+
26
+ <!-- Add your game scripts here -->
27
+ <script src=game.js?125></script>
Binary file
@@ -1,11 +1,12 @@
1
1
  <html><head>
2
+ <title>Little JS Stress Test</title>
2
3
  <meta name=viewport content=width=device-width,height=device-height,initial-scale=1,maximum-scale=1>
3
4
  <meta name=apple-mobile-web-app-capable content=yes>
4
5
  <meta name=mobile-web-app-capable content=yes>
5
- <link rel=icon type=image/png href=../../favicon.png>
6
+ <link rel=icon type=image/png href=../favicon.png>
6
7
  </head><body>
7
8
 
8
- <script src=../../engine/engine.all.min.js?125></script>
9
+ <script src=../../build/littlejs.min.js?125></script>
9
10
  <script>
10
11
 
11
12
  /*
@@ -3,7 +3,7 @@
3
3
  */
4
4
  'use strict';
5
5
  // import module
6
- import * as LittleJS from '../../engine/engine.all.module.js';
6
+ import * as LittleJS from '../../build/littlejs.esm.js';
7
7
  const { Vector2, Color, Timer, vec2 } = LittleJS;
8
8
  // sound effects
9
9
  const sound_click = new LittleJS.Sound([1, .5]);
@@ -5,7 +5,7 @@
5
5
  'use strict';
6
6
 
7
7
  // import module
8
- import * as LittleJS from '../../engine/engine.all.module.js';
8
+ import * as LittleJS from '../../build/littlejs.esm.js';
9
9
  const {Vector2, Color, Timer, vec2} = LittleJS;
10
10
 
11
11
  // sound effects
@@ -1,8 +1,9 @@
1
1
  <html><head>
2
+ <title>Little TypeScript Demo</title>
2
3
  <meta name=viewport content=width=device-width,height=device-height,initial-scale=1,maximum-scale=1>
3
4
  <meta name=apple-mobile-web-app-capable content=yes>
4
5
  <meta name=mobile-web-app-capable content=yes>
5
- <link rel=icon type=image/png href=../../favicon.png>
6
+ <link rel=icon type=image/png href=../favicon.png>
6
7
  </head><body>
7
8
 
8
9
  <!-- Add your game scripts here -->
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "littlejsengine",
3
- "version": "1.5.2",
3
+ "version": "1.6.0",
4
4
  "description": "LittleJS - Tiny and Fast HTML5 Game Engine",
5
5
  "main": "engine/engine.all.module.js",
6
6
  "repository": {
@@ -23,7 +23,7 @@
23
23
  },
24
24
  "homepage": "https://github.com/KilledByAPixel/LittleJS",
25
25
  "scripts": {
26
- "build": "build.bat"
26
+ "build": "cd src && engineBuild.bat"
27
27
  },
28
28
  "devDependencies": {
29
29
  "ect-bin": "~1.4.1",
@@ -34,7 +34,7 @@ const engineName = 'LittleJS';
34
34
  * @type {String}
35
35
  * @default
36
36
  * @memberof Engine */
37
- const engineVersion = '1.5.2';
37
+ const engineVersion = '1.6.0';
38
38
 
39
39
  /** Frames per second to update objects
40
40
  * @type {Number}
@@ -0,0 +1,130 @@
1
+ rem Simple build script for LittleJS Engine by Frank Force
2
+ rem Minfies and combines index.html and index.js and zips the result
3
+ rem Run npm install first to install required dependencies
4
+
5
+ rem --- BUILD ENGINE DEBUG ---
6
+
7
+ set BUILD_FOLDER=build
8
+ set ENGINE_NAME=littlejs
9
+
10
+ cd ..
11
+ rem remove old files
12
+ rmdir /s /q %BUILD_FOLDER%
13
+ mkdir %BUILD_FOLDER%
14
+ pushd %BUILD_FOLDER%
15
+
16
+ rem --- BUILD ENGINE ALL ---
17
+
18
+ set OUTPUT_FILENAME=%ENGINE_NAME%.js
19
+
20
+ rem combine code
21
+ type ..\src\engineDebug.js >> %OUTPUT_FILENAME%
22
+ echo.>> %OUTPUT_FILENAME%
23
+ type ..\src\engineUtilities.js >> %OUTPUT_FILENAME%
24
+ echo.>> %OUTPUT_FILENAME%
25
+ type ..\src\engineSettings.js >> %OUTPUT_FILENAME%
26
+ echo.>> %OUTPUT_FILENAME%
27
+ type ..\src\engineObject.js >> %OUTPUT_FILENAME%
28
+ echo.>> %OUTPUT_FILENAME%
29
+ type ..\src\engineDraw.js >> %OUTPUT_FILENAME%
30
+ echo.>> %OUTPUT_FILENAME%
31
+ type ..\src\engineInput.js >> %OUTPUT_FILENAME%
32
+ echo.>> %OUTPUT_FILENAME%
33
+ type ..\src\engineAudio.js >> %OUTPUT_FILENAME%
34
+ echo.>> %OUTPUT_FILENAME%
35
+ type ..\src\engineTileLayer.js >> %OUTPUT_FILENAME%
36
+ echo.>> %OUTPUT_FILENAME%
37
+ type ..\src\engineParticles.js >> %OUTPUT_FILENAME%
38
+ echo.>> %OUTPUT_FILENAME%
39
+ type ..\src\engineMedals.js >> %OUTPUT_FILENAME%
40
+ echo.>> %OUTPUT_FILENAME%
41
+ type ..\src\engineWebGL.js >> %OUTPUT_FILENAME%
42
+ echo.>> %OUTPUT_FILENAME%
43
+ type ..\src\engine.js >> %OUTPUT_FILENAME%
44
+ echo.>> %OUTPUT_FILENAME%
45
+
46
+ rem --- BUILD ENGINE RELEASE ---
47
+
48
+ set OUTPUT_FILENAME=%ENGINE_NAME%.release.js
49
+
50
+ rem combine code
51
+ type ..\src\engineRelease.js >> %OUTPUT_FILENAME%
52
+ echo.>> %OUTPUT_FILENAME%
53
+ type ..\src\engineUtilities.js >> %OUTPUT_FILENAME%
54
+ echo.>> %OUTPUT_FILENAME%
55
+ type ..\src\engineSettings.js >> %OUTPUT_FILENAME%
56
+ echo.>> %OUTPUT_FILENAME%
57
+ type ..\src\engine.js >> %OUTPUT_FILENAME%
58
+ echo.>> %OUTPUT_FILENAME%
59
+ type ..\src\engineObject.js >> %OUTPUT_FILENAME%
60
+ echo.>> %OUTPUT_FILENAME%
61
+ type ..\src\engineDraw.js >> %OUTPUT_FILENAME%
62
+ echo.>> %OUTPUT_FILENAME%
63
+ type ..\src\engineInput.js >> %OUTPUT_FILENAME%
64
+ echo.>> %OUTPUT_FILENAME%
65
+ type ..\src\engineAudio.js >> %OUTPUT_FILENAME%
66
+ echo.>> %OUTPUT_FILENAME%
67
+ type ..\src\engineTileLayer.js >> %OUTPUT_FILENAME%
68
+ echo.>> %OUTPUT_FILENAME%
69
+ type ..\src\engineParticles.js >> %OUTPUT_FILENAME%
70
+ echo.>> %OUTPUT_FILENAME%
71
+ type ..\src\engineMedals.js >> %OUTPUT_FILENAME%
72
+ echo.>> %OUTPUT_FILENAME%
73
+ type ..\src\engineWebGL.js >> %OUTPUT_FILENAME%
74
+ echo.>> %OUTPUT_FILENAME%
75
+
76
+ rem --- BUILD ENGINE MINIFIED ---
77
+
78
+ set OUTPUT_FILENAME=%ENGINE_NAME%.min.js
79
+
80
+ rem start with release build
81
+ copy %ENGINE_NAME%.release.js %OUTPUT_FILENAME%
82
+
83
+ rem check code with closure
84
+ move %OUTPUT_FILENAME% %OUTPUT_FILENAME%.temp
85
+ call npx google-closure-compiler --js=%OUTPUT_FILENAME%.temp --js_output_file=%OUTPUT_FILENAME% --language_out=ECMASCRIPT_2021 --warning_level=VERBOSE --jscomp_off=*
86
+ del %OUTPUT_FILENAME%.temp
87
+ if %ERRORLEVEL% NEQ 0 (
88
+ pause
89
+ exit /b %ERRORLEVEL%
90
+ )
91
+
92
+ rem lightly minify with uglify
93
+ call npx uglifyjs -o %OUTPUT_FILENAME% -- %OUTPUT_FILENAME%
94
+ if %ERRORLEVEL% NEQ 0 (
95
+ pause
96
+ exit /b %ERRORLEVEL%
97
+ )
98
+
99
+ rem --- BUILD ENGINE ESM MODULE ---
100
+
101
+ set OUTPUT_FILENAME=%ENGINE_NAME%.esm.js
102
+ type %ENGINE_NAME%.js >> %OUTPUT_FILENAME%
103
+ echo.>> %OUTPUT_FILENAME%
104
+ type ..\src\engineExport.js >> %OUTPUT_FILENAME%
105
+ echo.>> %OUTPUT_FILENAME%
106
+
107
+ rem --- BUILD ENGINE ESM MODULE RELEASE ---
108
+
109
+ set OUTPUT_FILENAME=%ENGINE_NAME%.esm.min.js
110
+ type %ENGINE_NAME%.min.js >> %OUTPUT_FILENAME%
111
+ echo.>> %OUTPUT_FILENAME%
112
+ type ..\src\engineExport.js >> %OUTPUT_FILENAME%
113
+ echo.>> %OUTPUT_FILENAME%
114
+
115
+ rem lightly minify with uglify
116
+ call npx uglifyjs -o %OUTPUT_FILENAME% -- %OUTPUT_FILENAME%
117
+ if %ERRORLEVEL% NEQ 0 (
118
+ pause
119
+ exit /b %ERRORLEVEL%
120
+ )
121
+
122
+ rem --- BUILD TYPESCRIPT DEFINITIONS ---
123
+
124
+ call npx tsc %ENGINE_NAME%.esm.js --declaration --allowJs --emitDeclarationOnly --outFile %ENGINE_NAME%.d.ts
125
+ if %ERRORLEVEL% NEQ 0 (
126
+ pause
127
+ exit /b %ERRORLEVEL%
128
+ )
129
+
130
+ popd
@@ -142,15 +142,15 @@ function inputUpdatePost()
142
142
  onkeydown = (e)=>
143
143
  {
144
144
  if (debug && e.target != document.body) return;
145
- e.repeat || (inputData[isUsingGamepad = 0][remapKeyCode(e.keyCode)] = 3);
145
+ e.repeat || (inputData[isUsingGamepad = 0][remapKey(e.which)] = 3);
146
146
  preventDefaultInput && e.preventDefault();
147
147
  }
148
148
  onkeyup = (e)=>
149
149
  {
150
150
  if (debug && e.target != document.body) return;
151
- inputData[0][remapKeyCode(e.keyCode)] = 4;
151
+ inputData[0][remapKey(e.which)] = 4;
152
152
  }
153
- const remapKeyCode = (c)=> inputWASDEmulateDirection ? c==87?38 : c==83?40 : c==65?37 : c==68?39 : c : c;
153
+ const remapKey = (c)=> inputWASDEmulateDirection ? c==87?38 : c==83?40 : c==65?37 : c==68?39 : c : c;
154
154
 
155
155
  ///////////////////////////////////////////////////////////////////////////////
156
156
  // Mouse event handlers
@@ -2,7 +2,7 @@
2
2
  * LittleJS Medal System
3
3
  * <br> - Tracks and displays medals
4
4
  * <br> - Saves medals to local storage
5
- * <br> - Newgrounds and OS13k integration
5
+ * <br> - Newgrounds integration
6
6
  * @namespace Medals
7
7
  */
8
8
 
@@ -1,32 +0,0 @@
1
- rem Simple build script for LittleJS Electron Builds by Frank Force
2
- rem Calls the normal build and then packages it with electron
3
- rem Run electronSetup.bat first to install electron
4
-
5
- rem do the normal build first
6
- cd ..
7
- call build.bat
8
- if %ERRORLEVEL% NEQ 0 (
9
- pause
10
- exit /b %ERRORLEVEL%
11
- )
12
- cd electron
13
-
14
- rem remove old electron build folder
15
- rmdir /s /q build
16
- mkdir build
17
- copy electron.js build\electron.js
18
- copy package.json build\package.json
19
-
20
- rem copy files and build clean html
21
- xcopy /h /i /c /k /e /r /y ..\build\*.* .\build\
22
- del build\index.html
23
- echo ^<body^>^<script^> >> build\index.html
24
- type ..\build\index.js >> build\index.html
25
- echo ^</script^> >> build\index.html
26
-
27
- rem build with electron
28
- call electron-packager build --overwrite
29
- if %ERRORLEVEL% NEQ 0 (
30
- pause
31
- exit /b %ERRORLEVEL%
32
- )
@@ -1,2 +0,0 @@
1
- npm install --save-dev electron | more
2
- npm install --save-dev electron-packager | more
@@ -1,21 +0,0 @@
1
- {
2
- "name": "LittleJSGame",
3
- "version": "1.0",
4
- "description": "",
5
- "main": "electron.js",
6
- "scripts": {
7
- "start": "electron ."
8
- },
9
- "repository": "",
10
- "keywords": [
11
- "game",
12
- "javascript",
13
- "littlejs"
14
- ],
15
- "author": "",
16
- "license": "",
17
- "devDependencies": {
18
- "electron": "^8.5.5",
19
- "electron-packager": "^14.2.1"
20
- }
21
- }