Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- http://bluegemx.cf:3000/index.js
- HTTP/1.1 200 OK
- X-Powered-By: Express
- Accept-Ranges: bytes
- Cache-Control: public, max-age=0
- Last-Modified: Wed, 15 Jun 2016 14:09:05 GMT
- ETag: W/"515a-1555464dfe8"
- Content-Type: application/javascript
- Content-Length: 20826
- Date: Wed, 15 Jun 2016 14:31:32 GMT
- 00000000: 34 01 00 00 03 00 04 00 2e de 7e 42 e8 93 2e 00 4.........~B....
- 00000010: d9 14 81 42 e8 93 2e 00 04 01 00 00 48 54 54 50 ...B........HTTP
- 00000020: 2f 31 2e 31 20 32 30 30 20 4f 4b 00 58 2d 50 6f /1.1 200 OK.X-Po
- 00000030: 77 65 72 65 64 2d 42 79 3a 20 45 78 70 72 65 73 wered-By: Expres
- 00000040: 73 00 41 63 63 65 70 74 2d 52 61 6e 67 65 73 3a s.Accept-Ranges:
- 00000050: 20 62 79 74 65 73 00 43 61 63 68 65 2d 43 6f 6e bytes.Cache-Con
- 00000060: 74 72 6f 6c 3a 20 70 75 62 6c 69 63 2c 20 6d 61 trol: public, ma
- 00000070: 78 2d 61 67 65 3d 30 00 4c 61 73 74 2d 4d 6f 64 x-age=0.Last-Mod
- 00000080: 69 66 69 65 64 3a 20 57 65 64 2c 20 31 35 20 4a ified: Wed, 15 J
- 00000090: 75 6e 20 32 30 31 36 20 31 34 3a 30 39 3a 30 35 un 2016 14:09:05
- 000000a0: 20 47 4d 54 00 45 54 61 67 3a 20 57 2f 22 35 31 GMT.ETag: W/"51
- 000000b0: 35 61 2d 31 35 35 35 34 36 34 64 66 65 38 22 00 5a-1555464dfe8".
- 000000c0: 43 6f 6e 74 65 6e 74 2d 54 79 70 65 3a 20 61 70 Content-Type: ap
- 000000d0: 70 6c 69 63 61 74 69 6f 6e 2f 6a 61 76 61 73 63 plication/javasc
- 000000e0: 72 69 70 74 00 43 6f 6e 74 65 6e 74 2d 4c 65 6e ript.Content-Len
- 000000f0: 67 74 68 3a 20 32 30 38 32 36 00 44 61 74 65 3a gth: 20826.Date:
- 00000100: 20 57 65 64 2c 20 31 35 20 4a 75 6e 20 32 30 31 Wed, 15 Jun 201
- 00000110: 36 20 31 34 3a 33 31 3a 33 32 20 47 4d 54 00 00 6 14:31:32 GMT..
- 00000120: 0c 00 00 00 38 34 2e 32 36 2e 31 31 30 2e 32 32 ....84.26.110.22
- 00000130: b8 0b 00 00 01 00 00 00 ........
- 00000000: 2f 2f 20 47 65 6e 65 72 61 74 65 64 20 62 79 20 // Generated by
- 00000010: 43 6f 66 66 65 65 53 63 72 69 70 74 20 31 2e 31 CoffeeScript 1.1
- 00000020: 30 2e 30 0a 0a 2f 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0.0../**********
- 00000030: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
- 00000040: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
- 00000050: 2a 2a 2a 2a 2a 2a 2a 2a 0a 2a 2a 20 47 41 4d 45 ********.** GAME
- 00000060: 20 49 4e 49 54 49 41 4c 49 53 41 54 49 4f 4e 0a INITIALISATION.
- 00000070: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
- 00000080: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
- 00000090: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
- 000000a0: 2a 0a 20 2a 2f 0a 76 61 72 20 4b 65 79 73 2c 20 *. */.var Keys,
- 000000b0: 50 6c 61 79 65 72 2c 20 63 61 6d 65 72 61 2c 20 Player, camera,
- 000000c0: 63 61 6e 76 61 73 2c 20 63 68 61 6e 6e 65 6c 73 canvas, channels
- 000000d0: 2c 20 63 68 65 63 6b 50 61 73 73 2c 20 63 74 78 , checkPass, ctx
- 000000e0: 2c 20 64 65 6c 74 61 54 69 6d 65 2c 20 64 69 76 , deltaTime, div
- 000000f0: 43 61 6e 76 61 73 2c 20 64 72 61 77 2c 20 64 72 Canvas, draw, dr
- 00000100: 61 77 5f 64 65 62 75 67 2c 20 65 6d 6f 6a 69 73 aw_debug, emojis
- 00000110: 2c 20 65 73 63 61 70 65 52 65 67 65 78 2c 20 67 , escapeRegex, g
- 00000120: 65 74 55 73 65 72 6e 61 6d 65 43 6f 6f 6b 69 65 etUsernameCookie
- 00000130: 2c 20 69 6e 69 74 2c 20 69 6e 69 74 63 68 61 74 , init, initchat
- 00000140: 2c 20 69 6e 69 74 67 61 6d 65 2c 20 6b 65 79 73 , initgame, keys
- 00000150: 2c 20 6c 61 73 74 55 70 64 61 74 65 2c 20 6c 65 , lastUpdate, le
- 00000160: 6e 2c 20 6c 6f 63 61 6c 50 6c 61 79 65 72 2c 20 n, localPlayer,
- 00000170: 6c 6f 63 61 6c 50 6c 61 79 65 72 4e 61 6d 65 2c localPlayerName,
- 00000180: 20 6c 6f 67 69 6e 2c 20 6c 6f 67 6f 75 74 2c 20 login, logout,
- 00000190: 6e 61 6d 65 2c 20 6f 6e 4b 65 79 64 6f 77 6e 2c name, onKeydown,
- 000001a0: 20 6f 6e 4b 65 79 75 70 2c 20 6f 6e 4d 6f 76 65 onKeyup, onMove
- 000001b0: 50 6c 61 79 65 72 2c 20 6f 6e 4e 65 77 50 6c 61 Player, onNewPla
- 000001c0: 79 65 72 2c 20 6f 6e 52 65 6d 6f 76 65 50 6c 61 yer, onRemovePla
- 000001d0: 79 65 72 2c 20 6f 6e 52 65 73 69 7a 65 2c 20 70 yer, onResize, p
- 000001e0: 61 72 73 65 4d 65 73 73 61 67 65 2c 20 70 6c 61 arseMessage, pla
- 000001f0: 79 65 72 42 79 49 64 2c 20 72 65 66 2c 20 72 65 yerById, ref, re
- 00000200: 67 69 73 74 65 72 2c 20 72 65 6d 6f 74 65 50 6c gister, remotePl
- 00000210: 61 79 65 72 73 2c 20 72 65 6d 6f 76 65 55 73 65 ayers, removeUse
- 00000220: 72 6e 61 6d 65 43 6f 6f 6b 69 65 2c 20 72 6f 6f rnameCookie, roo
- 00000230: 6d 2c 20 73 61 66 65 2c 20 73 65 73 73 69 6f 6e m, safe, session
- 00000240: 69 64 2c 20 73 65 74 47 61 6d 65 45 76 65 6e 74 id, setGameEvent
- 00000250: 48 61 6e 64 6c 65 72 73 2c 20 73 65 74 55 73 65 Handlers, setUse
- 00000260: 72 6e 61 6d 65 43 6f 6f 6b 69 65 2c 20 73 65 74 rnameCookie, set
- 00000270: 73 74 61 74 75 73 2c 20 73 6f 63 6b 65 74 2c 20 status, socket,
- 00000280: 74 69 63 6b 2c 20 75 70 64 61 74 65 2c 20 75 73 tick, update, us
- 00000290: 65 72 6e 61 6d 65 3b 0a 0a 6f 6e 4b 65 79 64 6f ername;..onKeydo
- 000002a0: 77 6e 20 3d 20 66 75 6e 63 74 69 6f 6e 28 65 29 wn = function(e)
- 000002b0: 20 7b 0a 20 20 69 66 20 28 6c 6f 63 61 6c 50 6c {. if (localPl
- 000002c0: 61 79 65 72 29 20 7b 0a 20 20 20 20 6b 65 79 73 ayer) {. keys
- 000002d0: 2e 6f 6e 4b 65 79 44 6f 77 6e 28 65 29 3b 0a 20 .onKeyDown(e);.
- 000002e0: 20 7d 0a 7d 3b 0a 0a 6f 6e 4b 65 79 75 70 20 3d }.};..onKeyup =
- 000002f0: 20 66 75 6e 63 74 69 6f 6e 28 65 29 20 7b 0a 20 function(e) {.
- 00000300: 20 69 66 20 28 6c 6f 63 61 6c 50 6c 61 79 65 72 if (localPlayer
- 00000310: 29 20 7b 0a 20 20 20 20 6b 65 79 73 2e 6f 6e 4b ) {. keys.onK
- 00000320: 65 79 55 70 28 65 29 3b 0a 20 20 7d 0a 7d 3b 0a eyUp(e);. }.};.
- 00000330: 0a 6f 6e 52 65 73 69 7a 65 20 3d 20 66 75 6e 63 .onResize = func
- 00000340: 74 69 6f 6e 28 65 29 20 7b 0a 20 20 63 61 6e 76 tion(e) {. canv
- 00000350: 61 73 2e 77 69 64 74 68 20 3d 20 64 69 76 43 61 as.width = divCa
- 00000360: 6e 76 61 73 2e 6f 66 66 73 65 74 57 69 64 74 68 nvas.offsetWidth
- 00000370: 3b 0a 20 20 63 61 6e 76 61 73 2e 68 65 69 67 68 ;. canvas.heigh
- 00000380: 74 20 3d 20 64 69 76 43 61 6e 76 61 73 2e 6f 66 t = divCanvas.of
- 00000390: 66 73 65 74 48 65 69 67 68 74 3b 0a 20 20 63 61 fsetHeight;. ca
- 000003a0: 6d 65 72 61 20 3d 20 6e 65 77 20 47 61 6d 65 2e mera = new Game.
- 000003b0: 43 61 6d 65 72 61 28 30 2c 20 30 2c 20 63 61 6e Camera(0, 0, can
- 000003c0: 76 61 73 2e 77 69 64 74 68 2c 20 63 61 6e 76 61 vas.width, canva
- 000003d0: 73 2e 68 65 69 67 68 74 2c 20 72 6f 6f 6d 2e 77 s.height, room.w
- 000003e0: 69 64 74 68 2c 20 72 6f 6f 6d 2e 68 65 69 67 68 idth, room.heigh
- 000003f0: 74 29 3b 0a 20 20 63 61 6d 65 72 61 2e 66 6f 6c t);. camera.fol
- 00000400: 6c 6f 77 28 6c 6f 63 61 6c 50 6c 61 79 65 72 2c low(localPlayer,
- 00000410: 20 63 61 6e 76 61 73 2e 77 69 64 74 68 20 2f 20 canvas.width /
- 00000420: 32 2c 20 63 61 6e 76 61 73 2e 68 65 69 67 68 74 2, canvas.height
- 00000430: 20 2f 20 32 29 3b 0a 7d 3b 0a 0a 6f 6e 4e 65 77 / 2);.};..onNew
- 00000440: 50 6c 61 79 65 72 20 3d 20 66 75 6e 63 74 69 6f Player = functio
- 00000450: 6e 28 64 61 74 61 29 20 7b 0a 20 20 76 61 72 20 n(data) {. var
- 00000460: 6e 65 77 50 6c 61 79 65 72 3b 0a 20 20 63 6f 6e newPlayer;. con
- 00000470: 73 6f 6c 65 2e 6c 6f 67 28 27 4e 65 77 20 70 6c sole.log('New pl
- 00000480: 61 79 65 72 20 63 6f 6e 6e 65 63 74 65 64 3a 20 ayer connected:
- 00000490: 27 20 2b 20 64 61 74 61 2e 69 64 29 3b 0a 20 20 ' + data.id);.
- 000004a0: 6e 65 77 50 6c 61 79 65 72 20 3d 20 6e 65 77 20 newPlayer = new
- 000004b0: 50 6c 61 79 65 72 28 64 61 74 61 2e 78 2c 20 64 Player(data.x, d
- 000004c0: 61 74 61 2e 79 2c 20 64 61 74 61 2e 6e 61 6d 65 ata.y, data.name
- 000004d0: 29 3b 0a 20 20 6e 65 77 50 6c 61 79 65 72 2e 69 );. newPlayer.i
- 000004e0: 64 20 3d 20 64 61 74 61 2e 69 64 3b 0a 20 20 6e d = data.id;. n
- 000004f0: 65 77 50 6c 61 79 65 72 2e 6e 61 6d 65 20 3d 20 ewPlayer.name =
- 00000500: 64 61 74 61 2e 6e 61 6d 65 3b 0a 20 20 72 65 6d data.name;. rem
- 00000510: 6f 74 65 50 6c 61 79 65 72 73 2e 70 75 73 68 28 otePlayers.push(
- 00000520: 6e 65 77 50 6c 61 79 65 72 29 3b 0a 7d 3b 0a 0a newPlayer);.};..
- 00000530: 6f 6e 4d 6f 76 65 50 6c 61 79 65 72 20 3d 20 66 onMovePlayer = f
- 00000540: 75 6e 63 74 69 6f 6e 28 64 61 74 61 29 20 7b 0a unction(data) {.
- 00000550: 20 20 76 61 72 20 6d 6f 76 65 50 6c 61 79 65 72 var movePlayer
- 00000560: 3b 0a 20 20 6d 6f 76 65 50 6c 61 79 65 72 20 3d ;. movePlayer =
- 00000570: 20 70 6c 61 79 65 72 42 79 49 64 28 64 61 74 61 playerById(data
- 00000580: 2e 69 64 29 3b 0a 20 20 69 66 20 28 21 6d 6f 76 .id);. if (!mov
- 00000590: 65 50 6c 61 79 65 72 29 20 7b 0a 20 20 20 20 63 ePlayer) {. c
- 000005a0: 6f 6e 73 6f 6c 65 2e 6c 6f 67 28 27 50 6c 61 79 onsole.log('Play
- 000005b0: 65 72 20 6e 6f 74 20 66 6f 75 6e 64 3a 20 27 20 er not found: '
- 000005c0: 2b 20 64 61 74 61 2e 69 64 29 3b 0a 20 20 20 20 + data.id);.
- 000005d0: 72 65 74 75 72 6e 3b 0a 20 20 7d 0a 20 20 6d 6f return;. }. mo
- 000005e0: 76 65 50 6c 61 79 65 72 2e 78 20 3d 20 64 61 74 vePlayer.x = dat
- 000005f0: 61 2e 78 3b 0a 20 20 6d 6f 76 65 50 6c 61 79 65 a.x;. movePlaye
- 00000600: 72 2e 79 20 3d 20 64 61 74 61 2e 79 3b 0a 7d 3b r.y = data.y;.};
- 00000610: 0a 0a 6f 6e 52 65 6d 6f 76 65 50 6c 61 79 65 72 ..onRemovePlayer
- 00000620: 20 3d 20 66 75 6e 63 74 69 6f 6e 28 64 61 74 61 = function(data
- 00000630: 29 20 7b 0a 20 20 76 61 72 20 72 65 6d 6f 76 65 ) {. var remove
- 00000640: 50 6c 61 79 65 72 3b 0a 20 20 72 65 6d 6f 76 65 Player;. remove
- 00000650: 50 6c 61 79 65 72 20 3d 20 70 6c 61 79 65 72 42 Player = playerB
- 00000660: 79 49 64 28 64 61 74 61 2e 69 64 29 3b 0a 20 20 yId(data.id);.
- 00000670: 69 66 20 28 21 72 65 6d 6f 76 65 50 6c 61 79 65 if (!removePlaye
- 00000680: 72 29 20 7b 0a 20 20 20 20 63 6f 6e 73 6f 6c 65 r) {. console
- 00000690: 2e 6c 6f 67 28 27 50 6c 61 79 65 72 20 6e 6f 74 .log('Player not
- 000006a0: 20 66 6f 75 6e 64 3a 20 27 20 2b 20 64 61 74 61 found: ' + data
- 000006b0: 2e 69 64 29 3b 0a 20 20 20 20 72 65 74 75 72 6e .id);. return
- 000006c0: 3b 0a 20 20 7d 0a 20 20 72 65 6d 6f 74 65 50 6c ;. }. remotePl
- 000006d0: 61 79 65 72 73 2e 73 70 6c 69 63 65 28 72 65 6d ayers.splice(rem
- 000006e0: 6f 74 65 50 6c 61 79 65 72 73 2e 69 6e 64 65 78 otePlayers.index
- 000006f0: 4f 66 28 72 65 6d 6f 76 65 50 6c 61 79 65 72 29 Of(removePlayer)
- 00000700: 2c 20 31 29 3b 0a 7d 3b 0a 0a 0a 2f 2a 2a 2a 2a , 1);.};.../****
- 00000710: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
- 00000720: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
- 00000730: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0a 2a **************.*
- 00000740: 2a 20 47 41 4d 45 20 41 4e 49 4d 41 54 49 4f 4e * GAME ANIMATION
- 00000750: 20 4c 4f 4f 50 0a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a LOOP.**********
- 00000760: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
- 00000770: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
- 00000780: 2a 2a 2a 2a 2a 2a 2a 0a 20 2a 2f 0a 0a 6c 61 73 *******. */..las
- 00000790: 74 55 70 64 61 74 65 20 3d 20 44 61 74 65 2e 6e tUpdate = Date.n
- 000007a0: 6f 77 28 29 3b 0a 0a 64 65 6c 74 61 54 69 6d 65 ow();..deltaTime
- 000007b0: 20 3d 20 76 6f 69 64 20 30 3b 0a 0a 74 69 63 6b = void 0;..tick
- 000007c0: 20 3d 20 66 75 6e 63 74 69 6f 6e 28 29 20 7b 0a = function() {.
- 000007d0: 20 20 76 61 72 20 6e 6f 77 3b 0a 20 20 6e 6f 77 var now;. now
- 000007e0: 20 3d 20 44 61 74 65 2e 6e 6f 77 28 29 3b 0a 20 = Date.now();.
- 000007f0: 20 64 65 6c 74 61 54 69 6d 65 20 3d 20 6e 6f 77 deltaTime = now
- 00000800: 20 2d 20 6c 61 73 74 55 70 64 61 74 65 3b 0a 20 - lastUpdate;.
- 00000810: 20 6c 61 73 74 55 70 64 61 74 65 20 3d 20 6e 6f lastUpdate = no
- 00000820: 77 3b 0a 20 20 75 70 64 61 74 65 28 29 3b 0a 20 w;. update();.
- 00000830: 20 64 72 61 77 28 29 3b 0a 20 20 77 69 6e 64 6f draw();. windo
- 00000840: 77 2e 72 65 71 75 65 73 74 41 6e 69 6d 46 72 61 w.requestAnimFra
- 00000850: 6d 65 28 74 69 63 6b 29 3b 0a 7d 3b 0a 0a 0a 2f me(tick);.};.../
- 00000860: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
- 00000870: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
- 00000880: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
- 00000890: 2a 2a 0a 2a 2a 20 47 41 4d 45 20 55 50 44 41 54 **.** GAME UPDAT
- 000008a0: 45 0a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a E.**************
- 000008b0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
- 000008c0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
- 000008d0: 2a 2a 2a 0a 20 2a 2f 0a 0a 75 70 64 61 74 65 20 ***. */..update
- 000008e0: 3d 20 66 75 6e 63 74 69 6f 6e 28 29 20 7b 0a 20 = function() {.
- 000008f0: 20 69 66 20 28 6c 6f 63 61 6c 50 6c 61 79 65 72 if (localPlayer
- 00000900: 2e 75 70 64 61 74 65 28 6b 65 79 73 29 29 20 7b .update(keys)) {
- 00000910: 0a 20 20 20 20 73 6f 63 6b 65 74 2e 65 6d 69 74 . socket.emit
- 00000920: 28 27 6d 6f 76 65 20 70 6c 61 79 65 72 27 2c 20 ('move player',
- 00000930: 7b 0a 20 20 20 20 20 20 78 3a 20 6c 6f 63 61 6c {. x: local
- 00000940: 50 6c 61 79 65 72 2e 78 2c 0a 20 20 20 20 20 20 Player.x,.
- 00000950: 79 3a 20 6c 6f 63 61 6c 50 6c 61 79 65 72 2e 79 y: localPlayer.y
- 00000960: 0a 20 20 20 20 7d 29 3b 0a 20 20 7d 0a 20 20 63 . });. }. c
- 00000970: 61 6d 65 72 61 2e 75 70 64 61 74 65 28 29 3b 0a amera.update();.
- 00000980: 7d 3b 0a 0a 0a 2f 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a };.../**********
- 00000990: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
- 000009a0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
- 000009b0: 2a 2a 2a 2a 2a 2a 2a 2a 0a 2a 2a 20 47 41 4d 45 ********.** GAME
- 000009c0: 20 44 52 41 57 0a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a DRAW.**********
- 000009d0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
- 000009e0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
- 000009f0: 2a 2a 2a 2a 2a 2a 2a 0a 20 2a 2f 0a 0a 64 72 61 *******. */..dra
- 00000a00: 77 20 3d 20 66 75 6e 63 74 69 6f 6e 28 29 20 7b w = function() {
- 00000a10: 0a 20 20 76 61 72 20 69 2c 20 6c 3b 0a 20 20 63 . var i, l;. c
- 00000a20: 74 78 2e 63 6c 65 61 72 52 65 63 74 28 30 2c 20 tx.clearRect(0,
- 00000a30: 30 2c 20 63 61 6e 76 61 73 2e 77 69 64 74 68 2c 0, canvas.width,
- 00000a40: 20 63 61 6e 76 61 73 2e 68 65 69 67 68 74 29 3b canvas.height);
- 00000a50: 0a 20 20 72 6f 6f 6d 2e 6d 61 70 2e 64 72 61 77 . room.map.draw
- 00000a60: 28 63 74 78 2c 20 63 61 6d 65 72 61 2e 78 56 69 (ctx, camera.xVi
- 00000a70: 65 77 2c 20 63 61 6d 65 72 61 2e 79 56 69 65 77 ew, camera.yView
- 00000a80: 29 3b 0a 20 20 66 6f 72 20 28 69 20 3d 20 30 2c );. for (i = 0,
- 00000a90: 20 6c 20 3d 20 72 65 6d 6f 74 65 50 6c 61 79 65 l = remotePlaye
- 00000aa0: 72 73 2e 6c 65 6e 67 74 68 3b 20 69 20 3c 20 6c rs.length; i < l
- 00000ab0: 3b 20 69 2b 2b 29 20 7b 0a 20 20 20 20 72 65 6d ; i++) {. rem
- 00000ac0: 6f 74 65 50 6c 61 79 65 72 73 5b 69 5d 2e 64 72 otePlayers[i].dr
- 00000ad0: 61 77 28 63 74 78 2c 20 63 61 6d 65 72 61 2e 78 aw(ctx, camera.x
- 00000ae0: 56 69 65 77 2c 20 63 61 6d 65 72 61 2e 79 56 69 View, camera.yVi
- 00000af0: 65 77 29 3b 0a 20 20 7d 0a 20 20 6c 6f 63 61 6c ew);. }. local
- 00000b00: 50 6c 61 79 65 72 2e 64 72 61 77 28 63 74 78 2c Player.draw(ctx,
- 00000b10: 20 63 61 6d 65 72 61 2e 78 56 69 65 77 2c 20 63 camera.xView, c
- 00000b20: 61 6d 65 72 61 2e 79 56 69 65 77 29 3b 0a 20 20 amera.yView);.
- 00000b30: 64 72 61 77 5f 64 65 62 75 67 28 63 74 78 2c 20 draw_debug(ctx,
- 00000b40: 63 61 6d 65 72 61 2e 77 56 69 65 77 2c 20 63 61 camera.wView, ca
- 00000b50: 6d 65 72 61 2e 68 56 69 65 77 29 3b 0a 7d 3b 0a mera.hView);.};.
- 00000b60: 0a 0a 2f 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ../*************
- 00000b70: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
- 00000b80: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
- 00000b90: 2a 2a 2a 2a 2a 0a 2a 2a 20 47 41 4d 45 20 50 4c *****.** GAME PL
- 00000ba0: 41 59 45 52 20 53 45 4c 45 43 54 4f 52 0a 2a 2a AYER SELECTOR.**
- 00000bb0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
- 00000bc0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
- 00000bd0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0a ***************.
- 00000be0: 20 2a 2f 0a 0a 70 6c 61 79 65 72 42 79 49 64 20 */..playerById
- 00000bf0: 3d 20 66 75 6e 63 74 69 6f 6e 28 69 64 29 20 7b = function(id) {
- 00000c00: 0a 20 20 76 61 72 20 69 2c 20 6c 3b 0a 20 20 66 . var i, l;. f
- 00000c10: 6f 72 20 28 69 20 3d 20 30 2c 20 6c 20 3d 20 72 or (i = 0, l = r
- 00000c20: 65 6d 6f 74 65 50 6c 61 79 65 72 73 2e 6c 65 6e emotePlayers.len
- 00000c30: 67 74 68 3b 20 69 20 3c 20 6c 3b 20 69 2b 2b 29 gth; i < l; i++)
- 00000c40: 20 7b 0a 20 20 20 20 69 66 20 28 72 65 6d 6f 74 {. if (remot
- 00000c50: 65 50 6c 61 79 65 72 73 5b 69 5d 2e 69 64 20 3d ePlayers[i].id =
- 00000c60: 3d 3d 20 69 64 29 20 7b 0a 20 20 20 20 20 20 72 == id) {. r
- 00000c70: 65 74 75 72 6e 20 72 65 6d 6f 74 65 50 6c 61 79 eturn remotePlay
- 00000c80: 65 72 73 5b 69 5d 3b 0a 20 20 20 20 7d 0a 20 20 ers[i];. }.
- 00000c90: 7d 0a 20 20 72 65 74 75 72 6e 20 66 61 6c 73 65 }. return false
- 00000ca0: 3b 0a 7d 3b 0a 0a 77 69 6e 64 6f 77 2e 72 65 71 ;.};..window.req
- 00000cb0: 75 65 73 74 41 6e 69 6d 46 72 61 6d 65 20 3d 20 uestAnimFrame =
- 00000cc0: 28 66 75 6e 63 74 69 6f 6e 28 29 20 7b 0a 20 20 (function() {.
- 00000cd0: 72 65 74 75 72 6e 20 77 69 6e 64 6f 77 2e 72 65 return window.re
- 00000ce0: 71 75 65 73 74 41 6e 69 6d 61 74 69 6f 6e 46 72 questAnimationFr
- 00000cf0: 61 6d 65 20 7c 7c 20 77 69 6e 64 6f 77 2e 77 65 ame || window.we
- 00000d00: 62 6b 69 74 52 65 71 75 65 73 74 41 6e 69 6d 61 bkitRequestAnima
- 00000d10: 74 69 6f 6e 46 72 61 6d 65 20 7c 7c 20 77 69 6e tionFrame || win
- 00000d20: 64 6f 77 2e 6d 6f 7a 52 65 71 75 65 73 74 41 6e dow.mozRequestAn
- 00000d30: 69 6d 61 74 69 6f 6e 46 72 61 6d 65 20 7c 7c 20 imationFrame ||
- 00000d40: 77 69 6e 64 6f 77 2e 6f 52 65 71 75 65 73 74 41 window.oRequestA
- 00000d50: 6e 69 6d 61 74 69 6f 6e 46 72 61 6d 65 20 7c 7c nimationFrame ||
- 00000d60: 20 77 69 6e 64 6f 77 2e 6d 73 52 65 71 75 65 73 window.msReques
- 00000d70: 74 41 6e 69 6d 61 74 69 6f 6e 46 72 61 6d 65 20 tAnimationFrame
- 00000d80: 7c 7c 20 66 75 6e 63 74 69 6f 6e 28 63 61 6c 6c || function(call
- 00000d90: 62 61 63 6b 2c 20 65 6c 65 6d 65 6e 74 29 20 7b back, element) {
- 00000da0: 0a 20 20 20 20 77 69 6e 64 6f 77 2e 73 65 74 54 . window.setT
- 00000db0: 69 6d 65 6f 75 74 28 63 61 6c 6c 62 61 63 6b 2c imeout(callback,
- 00000dc0: 20 31 30 30 30 20 2f 20 36 30 29 3b 0a 20 20 7d 1000 / 60);. }
- 00000dd0: 3b 0a 7d 29 28 29 3b 0a 0a 77 69 6e 64 6f 77 2e ;.})();..window.
- 00000de0: 47 61 6d 65 20 3d 20 7b 7d 3b 0a 0a 28 66 75 6e Game = {};..(fun
- 00000df0: 63 74 69 6f 6e 28 29 20 7b 0a 20 20 76 61 72 20 ction() {. var
- 00000e00: 52 65 63 74 61 6e 67 6c 65 3b 0a 20 20 52 65 63 Rectangle;. Rec
- 00000e10: 74 61 6e 67 6c 65 20 3d 20 66 75 6e 63 74 69 6f tangle = functio
- 00000e20: 6e 28 6c 65 66 74 2c 20 74 6f 70 2c 20 77 69 64 n(left, top, wid
- 00000e30: 74 68 2c 20 68 65 69 67 68 74 29 20 7b 0a 20 20 th, height) {.
- 00000e40: 20 20 74 68 69 73 2e 6c 65 66 74 20 3d 20 6c 65 this.left = le
- 00000e50: 66 74 20 7c 7c 20 30 3b 0a 20 20 20 20 74 68 69 ft || 0;. thi
- 00000e60: 73 2e 74 6f 70 20 3d 20 74 6f 70 20 7c 7c 20 30 s.top = top || 0
- 00000e70: 3b 0a 20 20 20 20 74 68 69 73 2e 77 69 64 74 68 ;. this.width
- 00000e80: 20 3d 20 77 69 64 74 68 20 7c 7c 20 30 3b 0a 20 = width || 0;.
- 00000e90: 20 20 20 74 68 69 73 2e 68 65 69 67 68 74 20 3d this.height =
- 00000ea0: 20 68 65 69 67 68 74 20 7c 7c 20 30 3b 0a 20 20 height || 0;.
- 00000eb0: 20 20 74 68 69 73 2e 72 69 67 68 74 20 3d 20 74 this.right = t
- 00000ec0: 68 69 73 2e 6c 65 66 74 20 2b 20 74 68 69 73 2e his.left + this.
- 00000ed0: 77 69 64 74 68 3b 0a 20 20 20 20 74 68 69 73 2e width;. this.
- 00000ee0: 62 6f 74 74 6f 6d 20 3d 20 74 68 69 73 2e 74 6f bottom = this.to
- 00000ef0: 70 20 2b 20 74 68 69 73 2e 68 65 69 67 68 74 3b p + this.height;
- 00000f00: 0a 20 20 7d 3b 0a 20 20 52 65 63 74 61 6e 67 6c . };. Rectangl
- 00000f10: 65 2e 70 72 6f 74 6f 74 79 70 65 2e 73 65 74 20 e.prototype.set
- 00000f20: 3d 20 66 75 6e 63 74 69 6f 6e 28 6c 65 66 74 2c = function(left,
- 00000f30: 20 74 6f 70 2c 20 77 69 64 74 68 2c 20 68 65 69 top, width, hei
- 00000f40: 67 68 74 29 20 7b 0a 20 20 20 20 74 68 69 73 2e ght) {. this.
- 00000f50: 6c 65 66 74 20 3d 20 6c 65 66 74 3b 0a 20 20 20 left = left;.
- 00000f60: 20 74 68 69 73 2e 74 6f 70 20 3d 20 74 6f 70 3b this.top = top;
- 00000f70: 0a 20 20 20 20 74 68 69 73 2e 77 69 64 74 68 20 . this.width
- 00000f80: 3d 20 77 69 64 74 68 20 7c 7c 20 74 68 69 73 2e = width || this.
- 00000f90: 77 69 64 74 68 3b 0a 20 20 20 20 74 68 69 73 2e width;. this.
- 00000fa0: 68 65 69 67 68 74 20 3d 20 68 65 69 67 68 74 20 height = height
- 00000fb0: 7c 7c 20 74 68 69 73 2e 68 65 69 67 68 74 3b 0a || this.height;.
- 00000fc0: 20 20 20 20 74 68 69 73 2e 72 69 67 68 74 20 3d this.right =
- 00000fd0: 20 74 68 69 73 2e 6c 65 66 74 20 2b 20 74 68 69 this.left + thi
- 00000fe0: 73 2e 77 69 64 74 68 3b 0a 20 20 20 20 74 68 69 s.width;. thi
- 00000ff0: 73 2e 62 6f 74 74 6f 6d 20 3d 20 74 68 69 73 2e s.bottom = this.
- 00001000: 74 6f 70 20 2b 20 74 68 69 73 2e 68 65 69 67 68 top + this.heigh
- 00001010: 74 3b 0a 20 20 7d 3b 0a 20 20 52 65 63 74 61 6e t;. };. Rectan
- 00001020: 67 6c 65 2e 70 72 6f 74 6f 74 79 70 65 2e 77 69 gle.prototype.wi
- 00001030: 74 68 69 6e 20 3d 20 66 75 6e 63 74 69 6f 6e 28 thin = function(
- 00001040: 72 29 20 7b 0a 20 20 20 20 72 65 74 75 72 6e 20 r) {. return
- 00001050: 72 2e 6c 65 66 74 20 3c 3d 20 74 68 69 73 2e 6c r.left <= this.l
- 00001060: 65 66 74 20 26 26 20 72 2e 72 69 67 68 74 20 3e eft && r.right >
- 00001070: 3d 20 74 68 69 73 2e 72 69 67 68 74 20 26 26 20 = this.right &&
- 00001080: 72 2e 74 6f 70 20 3c 3d 20 74 68 69 73 2e 74 6f r.top <= this.to
- 00001090: 70 20 26 26 20 72 2e 62 6f 74 74 6f 6d 20 3e 3d p && r.bottom >=
- 000010a0: 20 74 68 69 73 2e 62 6f 74 74 6f 6d 3b 0a 20 20 this.bottom;.
- 000010b0: 7d 3b 0a 20 20 52 65 63 74 61 6e 67 6c 65 2e 70 };. Rectangle.p
- 000010c0: 72 6f 74 6f 74 79 70 65 2e 6f 76 65 72 6c 61 70 rototype.overlap
- 000010d0: 73 20 3d 20 66 75 6e 63 74 69 6f 6e 28 72 29 20 s = function(r)
- 000010e0: 7b 0a 20 20 20 20 72 65 74 75 72 6e 20 74 68 69 {. return thi
- 000010f0: 73 2e 6c 65 66 74 20 3c 20 72 2e 72 69 67 68 74 s.left < r.right
- 00001100: 20 26 26 20 72 2e 6c 65 66 74 20 3c 20 74 68 69 && r.left < thi
- 00001110: 73 2e 72 69 67 68 74 20 26 26 20 74 68 69 73 2e s.right && this.
- 00001120: 74 6f 70 20 3c 20 72 2e 62 6f 74 74 6f 6d 20 26 top < r.bottom &
- 00001130: 26 20 72 2e 74 6f 70 20 3c 20 74 68 69 73 2e 62 & r.top < this.b
- 00001140: 6f 74 74 6f 6d 3b 0a 20 20 7d 3b 0a 20 20 47 61 ottom;. };. Ga
- 00001150: 6d 65 2e 52 65 63 74 61 6e 67 6c 65 20 3d 20 52 me.Rectangle = R
- 00001160: 65 63 74 61 6e 67 6c 65 3b 0a 7d 29 28 29 3b 0a ectangle;.})();.
- 00001170: 0a 28 66 75 6e 63 74 69 6f 6e 28 29 20 7b 0a 20 .(function() {.
- 00001180: 20 76 61 72 20 41 58 49 53 2c 20 43 61 6d 65 72 var AXIS, Camer
- 00001190: 61 3b 0a 20 20 41 58 49 53 20 3d 20 7b 0a 20 20 a;. AXIS = {.
- 000011a0: 20 20 4e 4f 4e 45 3a 20 27 6e 6f 6e 65 27 2c 0a NONE: 'none',.
- 000011b0: 20 20 20 20 48 4f 52 49 5a 4f 4e 54 41 4c 3a 20 HORIZONTAL:
- 000011c0: 27 68 6f 72 69 7a 6f 6e 74 61 6c 27 2c 0a 20 20 'horizontal',.
- 000011d0: 20 20 56 45 52 54 49 43 41 4c 3a 20 27 76 65 72 VERTICAL: 'ver
- 000011e0: 74 69 63 61 6c 27 2c 0a 20 20 20 20 42 4f 54 48 tical',. BOTH
- 000011f0: 3a 20 27 62 6f 74 68 27 0a 20 20 7d 3b 0a 20 20 : 'both'. };.
- 00001200: 43 61 6d 65 72 61 20 3d 20 66 75 6e 63 74 69 6f Camera = functio
- 00001210: 6e 28 78 56 69 65 77 2c 20 79 56 69 65 77 2c 20 n(xView, yView,
- 00001220: 63 61 6e 76 61 73 57 69 64 74 68 2c 20 63 61 6e canvasWidth, can
- 00001230: 76 61 73 48 65 69 67 68 74 2c 20 77 6f 72 6c 64 vasHeight, world
- 00001240: 57 69 64 74 68 2c 20 77 6f 72 6c 64 48 65 69 67 Width, worldHeig
- 00001250: 68 74 29 20 7b 0a 20 20 20 20 74 68 69 73 2e 78 ht) {. this.x
- 00001260: 56 69 65 77 20 3d 20 78 56 69 65 77 20 7c 7c 20 View = xView ||
- 00001270: 30 3b 0a 20 20 20 20 74 68 69 73 2e 79 56 69 65 0;. this.yVie
- 00001280: 77 20 3d 20 79 56 69 65 77 20 7c 7c 20 30 3b 0a w = yView || 0;.
- 00001290: 20 20 20 20 74 68 69 73 2e 78 44 65 61 64 5a 6f this.xDeadZo
- 000012a0: 6e 65 20 3d 20 30 3b 0a 20 20 20 20 74 68 69 73 ne = 0;. this
- 000012b0: 2e 79 44 65 61 64 5a 6f 6e 65 20 3d 20 30 3b 0a .yDeadZone = 0;.
- 000012c0: 20 20 20 20 74 68 69 73 2e 77 56 69 65 77 20 3d this.wView =
- 000012d0: 20 63 61 6e 76 61 73 57 69 64 74 68 3b 0a 20 20 canvasWidth;.
- 000012e0: 20 20 74 68 69 73 2e 68 56 69 65 77 20 3d 20 63 this.hView = c
- 000012f0: 61 6e 76 61 73 48 65 69 67 68 74 3b 0a 20 20 20 anvasHeight;.
- 00001300: 20 74 68 69 73 2e 61 78 69 73 20 3d 20 41 58 49 this.axis = AXI
- 00001310: 53 2e 42 4f 54 48 3b 0a 20 20 20 20 74 68 69 73 S.BOTH;. this
- 00001320: 2e 66 6f 6c 6c 6f 77 65 64 20 3d 20 6e 75 6c 6c .followed = null
- 00001330: 3b 0a 20 20 20 20 74 68 69 73 2e 76 69 65 77 70 ;. this.viewp
- 00001340: 6f 72 74 52 65 63 74 20 3d 20 6e 65 77 20 47 61 ortRect = new Ga
- 00001350: 6d 65 2e 52 65 63 74 61 6e 67 6c 65 28 74 68 69 me.Rectangle(thi
- 00001360: 73 2e 78 56 69 65 77 2c 20 74 68 69 73 2e 79 56 s.xView, this.yV
- 00001370: 69 65 77 2c 20 74 68 69 73 2e 77 56 69 65 77 2c iew, this.wView,
- 00001380: 20 74 68 69 73 2e 68 56 69 65 77 29 3b 0a 20 20 this.hView);.
- 00001390: 20 20 74 68 69 73 2e 77 6f 72 6c 64 52 65 63 74 this.worldRect
- 000013a0: 20 3d 20 6e 65 77 20 47 61 6d 65 2e 52 65 63 74 = new Game.Rect
- 000013b0: 61 6e 67 6c 65 28 30 2c 20 30 2c 20 77 6f 72 6c angle(0, 0, worl
- 000013c0: 64 57 69 64 74 68 2c 20 77 6f 72 6c 64 48 65 69 dWidth, worldHei
- 000013d0: 67 68 74 29 3b 0a 20 20 7d 3b 0a 20 20 43 61 6d ght);. };. Cam
- 000013e0: 65 72 61 2e 70 72 6f 74 6f 74 79 70 65 2e 66 6f era.prototype.fo
- 000013f0: 6c 6c 6f 77 20 3d 20 66 75 6e 63 74 69 6f 6e 28 llow = function(
- 00001400: 67 61 6d 65 4f 62 6a 65 63 74 2c 20 78 44 65 61 gameObject, xDea
- 00001410: 64 5a 6f 6e 65 2c 20 79 44 65 61 64 5a 6f 6e 65 dZone, yDeadZone
- 00001420: 29 20 7b 0a 20 20 20 20 74 68 69 73 2e 66 6f 6c ) {. this.fol
- 00001430: 6c 6f 77 65 64 20 3d 20 67 61 6d 65 4f 62 6a 65 lowed = gameObje
- 00001440: 63 74 3b 0a 20 20 20 20 74 68 69 73 2e 78 44 65 ct;. this.xDe
- 00001450: 61 64 5a 6f 6e 65 20 3d 20 78 44 65 61 64 5a 6f adZone = xDeadZo
- 00001460: 6e 65 3b 0a 20 20 20 20 74 68 69 73 2e 79 44 65 ne;. this.yDe
- 00001470: 61 64 5a 6f 6e 65 20 3d 20 79 44 65 61 64 5a 6f adZone = yDeadZo
- 00001480: 6e 65 3b 0a 20 20 7d 3b 0a 20 20 43 61 6d 65 72 ne;. };. Camer
- 00001490: 61 2e 70 72 6f 74 6f 74 79 70 65 2e 75 70 64 61 a.prototype.upda
- 000014a0: 74 65 20 3d 20 66 75 6e 63 74 69 6f 6e 28 29 20 te = function()
- 000014b0: 7b 0a 20 20 20 20 69 66 20 28 74 68 69 73 2e 66 {. if (this.f
- 000014c0: 6f 6c 6c 6f 77 65 64 20 21 3d 3d 20 6e 75 6c 6c ollowed !== null
- 000014d0: 29 20 7b 0a 20 20 20 20 20 20 69 66 20 28 74 68 ) {. if (th
- 000014e0: 69 73 2e 61 78 69 73 20 3d 3d 3d 20 41 58 49 53 is.axis === AXIS
- 000014f0: 2e 48 4f 52 49 5a 4f 4e 54 41 4c 20 7c 7c 20 74 .HORIZONTAL || t
- 00001500: 68 69 73 2e 61 78 69 73 20 3d 3d 3d 20 41 58 49 his.axis === AXI
- 00001510: 53 2e 42 4f 54 48 29 20 7b 0a 20 20 20 20 20 20 S.BOTH) {.
- 00001520: 20 20 69 66 20 28 74 68 69 73 2e 66 6f 6c 6c 6f if (this.follo
- 00001530: 77 65 64 2e 78 20 2d 20 74 68 69 73 2e 78 56 69 wed.x - this.xVi
- 00001540: 65 77 20 2b 20 74 68 69 73 2e 78 44 65 61 64 5a ew + this.xDeadZ
- 00001550: 6f 6e 65 20 3e 20 74 68 69 73 2e 77 56 69 65 77 one > this.wView
- 00001560: 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 74 68 ) {. th
- 00001570: 69 73 2e 78 56 69 65 77 20 3d 20 74 68 69 73 2e is.xView = this.
- 00001580: 66 6f 6c 6c 6f 77 65 64 2e 78 20 2d 20 28 74 68 followed.x - (th
- 00001590: 69 73 2e 77 56 69 65 77 20 2d 20 74 68 69 73 2e is.wView - this.
- 000015a0: 78 44 65 61 64 5a 6f 6e 65 29 3b 0a 20 20 20 20 xDeadZone);.
- 000015b0: 20 20 20 20 7d 20 65 6c 73 65 20 69 66 20 28 74 } else if (t
- 000015c0: 68 69 73 2e 66 6f 6c 6c 6f 77 65 64 2e 78 20 2d his.followed.x -
- 000015d0: 20 74 68 69 73 2e 78 44 65 61 64 5a 6f 6e 65 20 this.xDeadZone
- 000015e0: 3c 20 74 68 69 73 2e 78 56 69 65 77 29 20 7b 0a < this.xView) {.
- 000015f0: 20 20 20 20 20 20 20 20 20 20 74 68 69 73 2e 78 this.x
- 00001600: 56 69 65 77 20 3d 20 74 68 69 73 2e 66 6f 6c 6c View = this.foll
- 00001610: 6f 77 65 64 2e 78 20 2d 20 74 68 69 73 2e 78 44 owed.x - this.xD
- 00001620: 65 61 64 5a 6f 6e 65 3b 0a 20 20 20 20 20 20 20 eadZone;.
- 00001630: 20 7d 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 20 }. }.
- 00001640: 20 69 66 20 28 74 68 69 73 2e 61 78 69 73 20 3d if (this.axis =
- 00001650: 3d 3d 20 41 58 49 53 2e 56 45 52 54 49 43 41 4c == AXIS.VERTICAL
- 00001660: 20 7c 7c 20 74 68 69 73 2e 61 78 69 73 20 3d 3d || this.axis ==
- 00001670: 3d 20 41 58 49 53 2e 42 4f 54 48 29 20 7b 0a 20 = AXIS.BOTH) {.
- 00001680: 20 20 20 20 20 20 20 69 66 20 28 74 68 69 73 2e if (this.
- 00001690: 66 6f 6c 6c 6f 77 65 64 2e 79 20 2d 20 74 68 69 followed.y - thi
- 000016a0: 73 2e 79 56 69 65 77 20 2b 20 74 68 69 73 2e 79 s.yView + this.y
- 000016b0: 44 65 61 64 5a 6f 6e 65 20 3e 20 74 68 69 73 2e DeadZone > this.
- 000016c0: 68 56 69 65 77 29 20 7b 0a 20 20 20 20 20 20 20 hView) {.
- 000016d0: 20 20 20 74 68 69 73 2e 79 56 69 65 77 20 3d 20 this.yView =
- 000016e0: 74 68 69 73 2e 66 6f 6c 6c 6f 77 65 64 2e 79 20 this.followed.y
- 000016f0: 2d 20 28 74 68 69 73 2e 68 56 69 65 77 20 2d 20 - (this.hView -
- 00001700: 74 68 69 73 2e 79 44 65 61 64 5a 6f 6e 65 29 3b this.yDeadZone);
- 00001710: 0a 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 . } else
- 00001720: 69 66 20 28 74 68 69 73 2e 66 6f 6c 6c 6f 77 65 if (this.followe
- 00001730: 64 2e 79 20 2d 20 74 68 69 73 2e 79 44 65 61 64 d.y - this.yDead
- 00001740: 5a 6f 6e 65 20 3c 20 74 68 69 73 2e 79 56 69 65 Zone < this.yVie
- 00001750: 77 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 74 w) {. t
- 00001760: 68 69 73 2e 79 56 69 65 77 20 3d 20 74 68 69 73 his.yView = this
- 00001770: 2e 66 6f 6c 6c 6f 77 65 64 2e 79 20 2d 20 74 68 .followed.y - th
- 00001780: 69 73 2e 79 44 65 61 64 5a 6f 6e 65 3b 0a 20 20 is.yDeadZone;.
- 00001790: 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 7d 0a }. }.
- 000017a0: 20 20 20 20 7d 0a 20 20 20 20 74 68 69 73 2e 76 }. this.v
- 000017b0: 69 65 77 70 6f 72 74 52 65 63 74 2e 73 65 74 28 iewportRect.set(
- 000017c0: 74 68 69 73 2e 78 56 69 65 77 2c 20 74 68 69 73 this.xView, this
- 000017d0: 2e 79 56 69 65 77 29 3b 0a 20 20 20 20 69 66 20 .yView);. if
- 000017e0: 28 21 74 68 69 73 2e 76 69 65 77 70 6f 72 74 52 (!this.viewportR
- 000017f0: 65 63 74 2e 77 69 74 68 69 6e 28 74 68 69 73 2e ect.within(this.
- 00001800: 77 6f 72 6c 64 52 65 63 74 29 29 20 7b 0a 20 20 worldRect)) {.
- 00001810: 20 20 20 20 69 66 20 28 74 68 69 73 2e 76 69 65 if (this.vie
- 00001820: 77 70 6f 72 74 52 65 63 74 2e 6c 65 66 74 20 3c wportRect.left <
- 00001830: 20 74 68 69 73 2e 77 6f 72 6c 64 52 65 63 74 2e this.worldRect.
- 00001840: 6c 65 66 74 29 20 7b 0a 20 20 20 20 20 20 20 20 left) {.
- 00001850: 74 68 69 73 2e 78 56 69 65 77 20 3d 20 74 68 69 this.xView = thi
- 00001860: 73 2e 77 6f 72 6c 64 52 65 63 74 2e 6c 65 66 74 s.worldRect.left
- 00001870: 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 ;. }.
- 00001880: 69 66 20 28 74 68 69 73 2e 76 69 65 77 70 6f 72 if (this.viewpor
- 00001890: 74 52 65 63 74 2e 74 6f 70 20 3c 20 74 68 69 73 tRect.top < this
- 000018a0: 2e 77 6f 72 6c 64 52 65 63 74 2e 74 6f 70 29 20 .worldRect.top)
- 000018b0: 7b 0a 20 20 20 20 20 20 20 20 74 68 69 73 2e 79 {. this.y
- 000018c0: 56 69 65 77 20 3d 20 74 68 69 73 2e 77 6f 72 6c View = this.worl
- 000018d0: 64 52 65 63 74 2e 74 6f 70 3b 0a 20 20 20 20 20 dRect.top;.
- 000018e0: 20 7d 0a 20 20 20 20 20 20 69 66 20 28 74 68 69 }. if (thi
- 000018f0: 73 2e 76 69 65 77 70 6f 72 74 52 65 63 74 2e 72 s.viewportRect.r
- 00001900: 69 67 68 74 20 3e 20 74 68 69 73 2e 77 6f 72 6c ight > this.worl
- 00001910: 64 52 65 63 74 2e 72 69 67 68 74 29 20 7b 0a 20 dRect.right) {.
- 00001920: 20 20 20 20 20 20 20 74 68 69 73 2e 78 56 69 65 this.xVie
- 00001930: 77 20 3d 20 74 68 69 73 2e 77 6f 72 6c 64 52 65 w = this.worldRe
- 00001940: 63 74 2e 72 69 67 68 74 20 2d 20 74 68 69 73 2e ct.right - this.
- 00001950: 77 56 69 65 77 3b 0a 20 20 20 20 20 20 7d 0a 20 wView;. }.
- 00001960: 20 20 20 20 20 69 66 20 28 74 68 69 73 2e 76 69 if (this.vi
- 00001970: 65 77 70 6f 72 74 52 65 63 74 2e 62 6f 74 74 6f ewportRect.botto
- 00001980: 6d 20 3e 20 74 68 69 73 2e 77 6f 72 6c 64 52 65 m > this.worldRe
- 00001990: 63 74 2e 62 6f 74 74 6f 6d 29 20 7b 0a 20 20 20 ct.bottom) {.
- 000019a0: 20 20 20 20 20 74 68 69 73 2e 79 56 69 65 77 20 this.yView
- 000019b0: 3d 20 74 68 69 73 2e 77 6f 72 6c 64 52 65 63 74 = this.worldRect
- 000019c0: 2e 62 6f 74 74 6f 6d 20 2d 20 74 68 69 73 2e 68 .bottom - this.h
- 000019d0: 56 69 65 77 3b 0a 20 20 20 20 20 20 7d 0a 20 20 View;. }.
- 000019e0: 20 20 7d 0a 20 20 7d 3b 0a 20 20 47 61 6d 65 2e }. };. Game.
- 000019f0: 43 61 6d 65 72 61 20 3d 20 43 61 6d 65 72 61 3b Camera = Camera;
- 00001a00: 0a 7d 29 28 29 3b 0a 0a 28 66 75 6e 63 74 69 6f .})();..(functio
- 00001a10: 6e 28 29 20 7b 0a 20 20 76 61 72 20 4d 61 70 3b n() {. var Map;
- 00001a20: 0a 20 20 4d 61 70 20 3d 20 66 75 6e 63 74 69 6f . Map = functio
- 00001a30: 6e 28 77 69 64 74 68 2c 20 68 65 69 67 68 74 29 n(width, height)
- 00001a40: 20 7b 0a 20 20 20 20 74 68 69 73 2e 77 69 64 74 {. this.widt
- 00001a50: 68 20 3d 20 77 69 64 74 68 3b 0a 20 20 20 20 74 h = width;. t
- 00001a60: 68 69 73 2e 68 65 69 67 68 74 20 3d 20 68 65 69 his.height = hei
- 00001a70: 67 68 74 3b 0a 20 20 20 20 74 68 69 73 2e 69 6d ght;. this.im
- 00001a80: 61 67 65 20 3d 20 6e 75 6c 6c 3b 0a 20 20 7d 3b age = null;. };
- 00001a90: 0a 20 20 4d 61 70 2e 70 72 6f 74 6f 74 79 70 65 . Map.prototype
- 00001aa0: 2e 67 65 6e 65 72 61 74 65 20 3d 20 66 75 6e 63 .generate = func
- 00001ab0: 74 69 6f 6e 28 29 20 7b 0a 20 20 20 20 76 61 72 tion() {. var
- 00001ac0: 20 63 6f 6c 6f 72 2c 20 63 6f 6c 75 6d 6e 73 2c color, columns,
- 00001ad0: 20 63 74 78 2c 20 69 2c 20 6a 2c 20 72 6f 77 73 ctx, i, j, rows
- 00001ae0: 2c 20 78 2c 20 79 3b 0a 20 20 20 20 63 74 78 20 , x, y;. ctx
- 00001af0: 3d 20 64 6f 63 75 6d 65 6e 74 2e 63 72 65 61 74 = document.creat
- 00001b00: 65 45 6c 65 6d 65 6e 74 28 27 63 61 6e 76 61 73 eElement('canvas
- 00001b10: 27 29 2e 67 65 74 43 6f 6e 74 65 78 74 28 27 32 ').getContext('2
- 00001b20: 64 27 29 3b 0a 20 20 20 20 63 74 78 2e 63 61 6e d');. ctx.can
- 00001b30: 76 61 73 2e 77 69 64 74 68 20 3d 20 74 68 69 73 vas.width = this
- 00001b40: 2e 77 69 64 74 68 3b 0a 20 20 20 20 63 74 78 2e .width;. ctx.
- 00001b50: 63 61 6e 76 61 73 2e 68 65 69 67 68 74 20 3d 20 canvas.height =
- 00001b60: 74 68 69 73 2e 68 65 69 67 68 74 3b 0a 20 20 20 this.height;.
- 00001b70: 20 72 6f 77 73 20 3d 20 7e 7e 28 74 68 69 73 2e rows = ~~(this.
- 00001b80: 77 69 64 74 68 20 2f 20 34 34 29 20 2b 20 31 3b width / 44) + 1;
- 00001b90: 0a 20 20 20 20 63 6f 6c 75 6d 6e 73 20 3d 20 7e . columns = ~
- 00001ba0: 7e 28 74 68 69 73 2e 68 65 69 67 68 74 20 2f 20 ~(this.height /
- 00001bb0: 34 34 29 20 2b 20 31 3b 0a 20 20 20 20 63 6f 6c 44) + 1;. col
- 00001bc0: 6f 72 20 3d 20 27 79 65 6c 6c 6f 77 27 3b 0a 20 or = 'yellow';.
- 00001bd0: 20 20 20 63 74 78 2e 73 61 76 65 28 29 3b 0a 20 ctx.save();.
- 00001be0: 20 20 20 63 74 78 2e 66 69 6c 6c 53 74 79 6c 65 ctx.fillStyle
- 00001bf0: 20 3d 20 63 6f 6c 6f 72 3b 0a 20 20 20 20 78 20 = color;. x
- 00001c00: 3d 20 32 3b 0a 20 20 20 20 69 20 3d 20 30 3b 0a = 2;. i = 0;.
- 00001c10: 20 20 20 20 77 68 69 6c 65 20 28 69 20 3c 20 72 while (i < r
- 00001c20: 6f 77 73 29 20 7b 0a 20 20 20 20 20 20 79 20 3d ows) {. y =
- 00001c30: 20 32 3b 0a 20 20 20 20 20 20 6a 20 3d 20 30 3b 2;. j = 0;
- 00001c40: 0a 20 20 20 20 20 20 77 68 69 6c 65 20 28 6a 20 . while (j
- 00001c50: 3c 20 63 6f 6c 75 6d 6e 73 29 20 7b 0a 20 20 20 < columns) {.
- 00001c60: 20 20 20 20 20 63 74 78 2e 62 65 67 69 6e 50 61 ctx.beginPa
- 00001c70: 74 68 28 29 3b 0a 20 20 20 20 20 20 20 20 63 74 th();. ct
- 00001c80: 78 2e 72 65 63 74 28 78 2c 20 79 2c 20 34 30 2c x.rect(x, y, 40,
- 00001c90: 20 34 30 29 3b 0a 20 20 20 20 20 20 20 20 63 6f 40);. co
- 00001ca0: 6c 6f 72 20 3d 20 63 6f 6c 6f 72 20 3d 3d 3d 20 lor = color ===
- 00001cb0: 27 79 65 6c 6c 6f 77 27 20 3f 20 27 6f 72 61 6e 'yellow' ? 'oran
- 00001cc0: 67 65 27 20 3a 20 27 79 65 6c 6c 6f 77 27 3b 0a ge' : 'yellow';.
- 00001cd0: 20 20 20 20 20 20 20 20 63 74 78 2e 66 69 6c 6c ctx.fill
- 00001ce0: 53 74 79 6c 65 20 3d 20 63 6f 6c 6f 72 3b 0a 20 Style = color;.
- 00001cf0: 20 20 20 20 20 20 20 63 74 78 2e 66 69 6c 6c 28 ctx.fill(
- 00001d00: 29 3b 0a 20 20 20 20 20 20 20 20 63 74 78 2e 63 );. ctx.c
- 00001d10: 6c 6f 73 65 50 61 74 68 28 29 3b 0a 20 20 20 20 losePath();.
- 00001d20: 20 20 20 20 79 20 2b 3d 20 34 34 3b 0a 20 20 20 y += 44;.
- 00001d30: 20 20 20 20 20 6a 2b 2b 3b 0a 20 20 20 20 20 20 j++;.
- 00001d40: 7d 0a 20 20 20 20 20 20 78 20 2b 3d 20 34 34 3b }. x += 44;
- 00001d50: 0a 20 20 20 20 20 20 69 2b 2b 3b 0a 20 20 20 20 . i++;.
- 00001d60: 7d 0a 20 20 20 20 63 74 78 2e 72 65 73 74 6f 72 }. ctx.restor
- 00001d70: 65 28 29 3b 0a 20 20 20 20 74 68 69 73 2e 69 6d e();. this.im
- 00001d80: 61 67 65 20 3d 20 6e 65 77 20 49 6d 61 67 65 3b age = new Image;
- 00001d90: 0a 20 20 20 20 74 68 69 73 2e 69 6d 61 67 65 2e . this.image.
- 00001da0: 73 72 63 20 3d 20 63 74 78 2e 63 61 6e 76 61 73 src = ctx.canvas
- 00001db0: 2e 74 6f 44 61 74 61 55 52 4c 28 27 69 6d 61 67 .toDataURL('imag
- 00001dc0: 65 2f 70 6e 67 27 29 3b 0a 20 20 20 20 63 74 78 e/png');. ctx
- 00001dd0: 20 3d 20 6e 75 6c 6c 3b 0a 20 20 7d 3b 0a 20 20 = null;. };.
- 00001de0: 4d 61 70 2e 70 72 6f 74 6f 74 79 70 65 2e 64 72 Map.prototype.dr
- 00001df0: 61 77 20 3d 20 66 75 6e 63 74 69 6f 6e 28 63 6f aw = function(co
- 00001e00: 6e 74 65 78 74 2c 20 78 56 69 65 77 2c 20 79 56 ntext, xView, yV
- 00001e10: 69 65 77 29 20 7b 0a 20 20 20 20 76 61 72 20 64 iew) {. var d
- 00001e20: 48 65 69 67 68 74 2c 20 64 57 69 64 74 68 2c 20 Height, dWidth,
- 00001e30: 64 78 2c 20 64 79 2c 20 73 48 65 69 67 68 74 2c dx, dy, sHeight,
- 00001e40: 20 73 57 69 64 74 68 2c 20 73 78 2c 20 73 79 3b sWidth, sx, sy;
- 00001e50: 0a 20 20 20 20 73 78 20 3d 20 76 6f 69 64 20 30 . sx = void 0
- 00001e60: 3b 0a 20 20 20 20 73 79 20 3d 20 76 6f 69 64 20 ;. sy = void
- 00001e70: 30 3b 0a 20 20 20 20 64 78 20 3d 20 76 6f 69 64 0;. dx = void
- 00001e80: 20 30 3b 0a 20 20 20 20 64 79 20 3d 20 76 6f 69 0;. dy = voi
- 00001e90: 64 20 30 3b 0a 20 20 20 20 73 57 69 64 74 68 20 d 0;. sWidth
- 00001ea0: 3d 20 76 6f 69 64 20 30 3b 0a 20 20 20 20 73 48 = void 0;. sH
- 00001eb0: 65 69 67 68 74 20 3d 20 76 6f 69 64 20 30 3b 0a eight = void 0;.
- 00001ec0: 20 20 20 20 64 57 69 64 74 68 20 3d 20 76 6f 69 dWidth = voi
- 00001ed0: 64 20 30 3b 0a 20 20 20 20 64 48 65 69 67 68 74 d 0;. dHeight
- 00001ee0: 20 3d 20 76 6f 69 64 20 30 3b 0a 20 20 20 20 73 = void 0;. s
- 00001ef0: 78 20 3d 20 78 56 69 65 77 3b 0a 20 20 20 20 73 x = xView;. s
- 00001f00: 79 20 3d 20 79 56 69 65 77 3b 0a 20 20 20 20 73 y = yView;. s
- 00001f10: 57 69 64 74 68 20 3d 20 63 6f 6e 74 65 78 74 2e Width = context.
- 00001f20: 63 61 6e 76 61 73 2e 77 69 64 74 68 3b 0a 20 20 canvas.width;.
- 00001f30: 20 20 73 48 65 69 67 68 74 20 3d 20 63 6f 6e 74 sHeight = cont
- 00001f40: 65 78 74 2e 63 61 6e 76 61 73 2e 68 65 69 67 68 ext.canvas.heigh
- 00001f50: 74 3b 0a 20 20 20 20 69 66 20 28 74 68 69 73 2e t;. if (this.
- 00001f60: 69 6d 61 67 65 2e 77 69 64 74 68 20 2d 20 73 78 image.width - sx
- 00001f70: 20 3c 20 73 57 69 64 74 68 29 20 7b 0a 20 20 20 < sWidth) {.
- 00001f80: 20 20 20 73 57 69 64 74 68 20 3d 20 74 68 69 73 sWidth = this
- 00001f90: 2e 69 6d 61 67 65 2e 77 69 64 74 68 20 2d 20 73 .image.width - s
- 00001fa0: 78 3b 0a 20 20 20 20 7d 0a 20 20 20 20 69 66 20 x;. }. if
- 00001fb0: 28 74 68 69 73 2e 69 6d 61 67 65 2e 68 65 69 67 (this.image.heig
- 00001fc0: 68 74 20 2d 20 73 79 20 3c 20 73 48 65 69 67 68 ht - sy < sHeigh
- 00001fd0: 74 29 20 7b 0a 20 20 20 20 20 20 73 48 65 69 67 t) {. sHeig
- 00001fe0: 68 74 20 3d 20 74 68 69 73 2e 69 6d 61 67 65 2e ht = this.image.
- 00001ff0: 68 65 69 67 68 74 20 2d 20 73 79 3b 0a 20 20 20 height - sy;.
- 00002000: 20 7d 0a 20 20 20 20 64 78 20 3d 20 30 3b 0a 20 }. dx = 0;.
- 00002010: 20 20 20 64 79 20 3d 20 30 3b 0a 20 20 20 20 64 dy = 0;. d
- 00002020: 57 69 64 74 68 20 3d 20 73 57 69 64 74 68 3b 0a Width = sWidth;.
- 00002030: 20 20 20 20 64 48 65 69 67 68 74 20 3d 20 73 48 dHeight = sH
- 00002040: 65 69 67 68 74 3b 0a 20 20 20 20 63 6f 6e 74 65 eight;. conte
- 00002050: 78 74 2e 64 72 61 77 49 6d 61 67 65 28 74 68 69 xt.drawImage(thi
- 00002060: 73 2e 69 6d 61 67 65 2c 20 73 78 2c 20 73 79 2c s.image, sx, sy,
- 00002070: 20 73 57 69 64 74 68 2c 20 73 48 65 69 67 68 74 sWidth, sHeight
- 00002080: 2c 20 64 78 2c 20 64 79 2c 20 64 57 69 64 74 68 , dx, dy, dWidth
- 00002090: 2c 20 64 48 65 69 67 68 74 29 3b 0a 20 20 7d 3b , dHeight);. };
- 000020a0: 0a 20 20 47 61 6d 65 2e 4d 61 70 20 3d 20 4d 61 . Game.Map = Ma
- 000020b0: 70 3b 0a 7d 29 28 29 3b 0a 0a 0a 2f 2a 2a 2a 2a p;.})();.../****
- 000020c0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
- 000020d0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
- 000020e0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0a 2a **************.*
- 000020f0: 2a 20 47 41 4d 45 20 4b 45 59 42 4f 41 52 44 20 * GAME KEYBOARD
- 00002100: 43 4c 41 53 53 0a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a CLASS.**********
- 00002110: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
- 00002120: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
- 00002130: 2a 2a 2a 2a 2a 2a 2a 0a 20 2a 2f 0a 0a 4b 65 79 *******. */..Key
- 00002140: 73 20 3d 20 66 75 6e 63 74 69 6f 6e 28 75 70 2c s = function(up,
- 00002150: 20 6c 65 66 74 2c 20 72 69 67 68 74 2c 20 64 6f left, right, do
- 00002160: 77 6e 29 20 7b 0a 20 20 76 61 72 20 75 70 3b 0a wn) {. var up;.
- 00002170: 20 20 76 61 72 20 6c 65 66 74 3b 0a 20 20 76 61 var left;. va
- 00002180: 72 20 72 69 67 68 74 3b 0a 20 20 76 61 72 20 64 r right;. var d
- 00002190: 6f 77 6e 3b 0a 20 20 76 61 72 20 6f 6e 4b 65 79 own;. var onKey
- 000021a0: 44 6f 77 6e 2c 20 6f 6e 4b 65 79 55 70 3b 0a 20 Down, onKeyUp;.
- 000021b0: 20 75 70 20 3d 20 75 70 20 7c 7c 20 66 61 6c 73 up = up || fals
- 000021c0: 65 3b 0a 20 20 6c 65 66 74 20 3d 20 6c 65 66 74 e;. left = left
- 000021d0: 20 7c 7c 20 66 61 6c 73 65 3b 0a 20 20 72 69 67 || false;. rig
- 000021e0: 68 74 20 3d 20 72 69 67 68 74 20 7c 7c 20 66 61 ht = right || fa
- 000021f0: 6c 73 65 3b 0a 20 20 64 6f 77 6e 20 3d 20 64 6f lse;. down = do
- 00002200: 77 6e 20 7c 7c 20 66 61 6c 73 65 3b 0a 20 20 6f wn || false;. o
- 00002210: 6e 4b 65 79 44 6f 77 6e 20 3d 20 66 75 6e 63 74 nKeyDown = funct
- 00002220: 69 6f 6e 28 65 29 20 7b 0a 20 20 20 20 76 61 72 ion(e) {. var
- 00002230: 20 63 2c 20 74 68 61 74 3b 0a 20 20 20 20 74 68 c, that;. th
- 00002240: 61 74 20 3d 20 74 68 69 73 3b 0a 20 20 20 20 63 at = this;. c
- 00002250: 20 3d 20 65 2e 6b 65 79 43 6f 64 65 3b 0a 20 20 = e.keyCode;.
- 00002260: 20 20 73 77 69 74 63 68 20 28 63 29 20 7b 0a 20 switch (c) {.
- 00002270: 20 20 20 20 20 63 61 73 65 20 33 37 3a 0a 20 20 case 37:.
- 00002280: 20 20 20 20 20 20 74 68 61 74 2e 6c 65 66 74 20 that.left
- 00002290: 3d 20 74 72 75 65 3b 0a 20 20 20 20 20 20 20 20 = true;.
- 000022a0: 62 72 65 61 6b 3b 0a 20 20 20 20 20 20 63 61 73 break;. cas
- 000022b0: 65 20 33 38 3a 0a 20 20 20 20 20 20 20 20 74 68 e 38:. th
- 000022c0: 61 74 2e 75 70 20 3d 20 74 72 75 65 3b 0a 20 20 at.up = true;.
- 000022d0: 20 20 20 20 20 20 62 72 65 61 6b 3b 0a 20 20 20 break;.
- 000022e0: 20 20 20 63 61 73 65 20 33 39 3a 0a 20 20 20 20 case 39:.
- 000022f0: 20 20 20 20 74 68 61 74 2e 72 69 67 68 74 20 3d that.right =
- 00002300: 20 74 72 75 65 3b 0a 20 20 20 20 20 20 20 20 62 true;. b
- 00002310: 72 65 61 6b 3b 0a 20 20 20 20 20 20 63 61 73 65 reak;. case
- 00002320: 20 34 30 3a 0a 20 20 20 20 20 20 20 20 74 68 61 40:. tha
- 00002330: 74 2e 64 6f 77 6e 20 3d 20 74 72 75 65 3b 0a 20 t.down = true;.
- 00002340: 20 20 20 7d 0a 20 20 7d 3b 0a 20 20 6f 6e 4b 65 }. };. onKe
- 00002350: 79 55 70 20 3d 20 66 75 6e 63 74 69 6f 6e 28 65 yUp = function(e
- 00002360: 29 20 7b 0a 20 20 20 20 76 61 72 20 63 2c 20 74 ) {. var c, t
- 00002370: 68 61 74 3b 0a 20 20 20 20 74 68 61 74 20 3d 20 hat;. that =
- 00002380: 74 68 69 73 3b 0a 20 20 20 20 63 20 3d 20 65 2e this;. c = e.
- 00002390: 6b 65 79 43 6f 64 65 3b 0a 20 20 20 20 73 77 69 keyCode;. swi
- 000023a0: 74 63 68 20 28 63 29 20 7b 0a 20 20 20 20 20 20 tch (c) {.
- 000023b0: 63 61 73 65 20 33 37 3a 0a 20 20 20 20 20 20 20 case 37:.
- 000023c0: 20 74 68 61 74 2e 6c 65 66 74 20 3d 20 66 61 6c that.left = fal
- 000023d0: 73 65 3b 0a 20 20 20 20 20 20 20 20 62 72 65 61 se;. brea
- 000023e0: 6b 3b 0a 20 20 20 20 20 20 63 61 73 65 20 33 38 k;. case 38
- 000023f0: 3a 0a 20 20 20 20 20 20 20 20 74 68 61 74 2e 75 :. that.u
- 00002400: 70 20 3d 20 66 61 6c 73 65 3b 0a 20 20 20 20 20 p = false;.
- 00002410: 20 20 20 62 72 65 61 6b 3b 0a 20 20 20 20 20 20 break;.
- 00002420: 63 61 73 65 20 33 39 3a 0a 20 20 20 20 20 20 20 case 39:.
- 00002430: 20 74 68 61 74 2e 72 69 67 68 74 20 3d 20 66 61 that.right = fa
- 00002440: 6c 73 65 3b 0a 20 20 20 20 20 20 20 20 62 72 65 lse;. bre
- 00002450: 61 6b 3b 0a 20 20 20 20 20 20 63 61 73 65 20 34 ak;. case 4
- 00002460: 30 3a 0a 20 20 20 20 20 20 20 20 74 68 61 74 2e 0:. that.
- 00002470: 64 6f 77 6e 20 3d 20 66 61 6c 73 65 3b 0a 20 20 down = false;.
- 00002480: 20 20 7d 0a 20 20 7d 3b 0a 20 20 72 65 74 75 72 }. };. retur
- 00002490: 6e 20 7b 0a 20 20 20 20 75 70 3a 20 75 70 2c 0a n {. up: up,.
- 000024a0: 20 20 20 20 6c 65 66 74 3a 20 6c 65 66 74 2c 0a left: left,.
- 000024b0: 20 20 20 20 72 69 67 68 74 3a 20 72 69 67 68 74 right: right
- 000024c0: 2c 0a 20 20 20 20 64 6f 77 6e 3a 20 64 6f 77 6e ,. down: down
- 000024d0: 2c 0a 20 20 20 20 6f 6e 4b 65 79 44 6f 77 6e 3a ,. onKeyDown:
- 000024e0: 20 6f 6e 4b 65 79 44 6f 77 6e 2c 0a 20 20 20 20 onKeyDown,.
- 000024f0: 6f 6e 4b 65 79 55 70 3a 20 6f 6e 4b 65 79 55 70 onKeyUp: onKeyUp
- 00002500: 0a 20 20 7d 3b 0a 7d 3b 0a 0a 0a 2f 2a 2a 2a 2a . };.};.../****
- 00002510: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
- 00002520: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
- 00002530: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0a 2a **************.*
- 00002540: 2a 20 47 41 4d 45 20 50 4c 41 59 45 52 20 43 4c * GAME PLAYER CL
- 00002550: 41 53 53 0a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ASS.************
- 00002560: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
- 00002570: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
- 00002580: 2a 2a 2a 2a 2a 0a 20 2a 2f 0a 0a 50 6c 61 79 65 *****. */..Playe
- 00002590: 72 20 3d 20 66 75 6e 63 74 69 6f 6e 28 73 74 61 r = function(sta
- 000025a0: 72 74 58 2c 20 73 74 61 72 74 59 2c 20 75 73 65 rtX, startY, use
- 000025b0: 72 4e 61 6d 65 2c 20 62 6c 6f 63 6b 43 6f 6c 6f rName, blockColo
- 000025c0: 72 29 20 7b 0a 20 20 76 61 72 20 62 6c 6f 63 6b r) {. var block
- 000025d0: 43 6f 6c 6f 72 2c 20 75 70 64 61 74 65 2c 20 64 Color, update, d
- 000025e0: 72 61 77 2c 20 68 65 69 67 68 74 2c 20 6d 6f 76 raw, height, mov
- 000025f0: 65 41 6d 6f 75 6e 74 2c 20 6e 61 6d 65 2c 20 77 eAmount, name, w
- 00002600: 69 64 74 68 2c 20 78 2c 20 79 3b 0a 20 20 78 20 idth, x, y;. x
- 00002610: 3d 20 73 74 61 72 74 58 3b 0a 20 20 79 20 3d 20 = startX;. y =
- 00002620: 73 74 61 72 74 59 3b 0a 20 20 6e 61 6d 65 20 3d startY;. name =
- 00002630: 20 75 73 65 72 4e 61 6d 65 3b 0a 20 20 62 6c 6f userName;. blo
- 00002640: 63 6b 43 6f 6c 6f 72 20 3d 20 62 6c 6f 63 6b 43 ckColor = blockC
- 00002650: 6f 6c 6f 72 20 7c 7c 20 27 62 6c 61 63 6b 27 3b olor || 'black';
- 00002660: 0a 20 20 77 69 64 74 68 20 3d 20 33 32 3b 0a 20 . width = 32;.
- 00002670: 20 68 65 69 67 68 74 20 3d 20 33 32 3b 0a 20 20 height = 32;.
- 00002680: 6d 6f 76 65 41 6d 6f 75 6e 74 20 3d 20 30 2e 32 moveAmount = 0.2
- 00002690: 3b 0a 20 20 75 70 64 61 74 65 20 3d 20 66 75 6e ;. update = fun
- 000026a0: 63 74 69 6f 6e 28 6b 65 79 73 29 20 7b 0a 20 20 ction(keys) {.
- 000026b0: 20 20 76 61 72 20 70 72 65 76 58 2c 20 70 72 65 var prevX, pre
- 000026c0: 76 59 3b 0a 20 20 20 20 70 72 65 76 58 20 3d 20 vY;. prevX =
- 000026d0: 74 68 69 73 2e 78 3b 0a 20 20 20 20 70 72 65 76 this.x;. prev
- 000026e0: 59 20 3d 20 74 68 69 73 2e 79 3b 0a 20 20 20 20 Y = this.y;.
- 000026f0: 69 66 20 28 6b 65 79 73 2e 6c 65 66 74 29 20 7b if (keys.left) {
- 00002700: 0a 20 20 20 20 20 20 74 68 69 73 2e 78 20 2d 3d . this.x -=
- 00002710: 20 4d 61 74 68 2e 72 6f 75 6e 64 28 6d 6f 76 65 Math.round(move
- 00002720: 41 6d 6f 75 6e 74 20 2a 20 64 65 6c 74 61 54 69 Amount * deltaTi
- 00002730: 6d 65 29 3b 0a 20 20 20 20 7d 0a 20 20 20 20 69 me);. }. i
- 00002740: 66 20 28 6b 65 79 73 2e 75 70 29 20 7b 0a 20 20 f (keys.up) {.
- 00002750: 20 20 20 20 74 68 69 73 2e 79 20 2d 3d 20 4d 61 this.y -= Ma
- 00002760: 74 68 2e 72 6f 75 6e 64 28 6d 6f 76 65 41 6d 6f th.round(moveAmo
- 00002770: 75 6e 74 20 2a 20 64 65 6c 74 61 54 69 6d 65 29 unt * deltaTime)
- 00002780: 3b 0a 20 20 20 20 7d 0a 20 20 20 20 69 66 20 28 ;. }. if (
- 00002790: 6b 65 79 73 2e 64 6f 77 6e 29 20 7b 0a 20 20 20 keys.down) {.
- 000027a0: 20 20 20 74 68 69 73 2e 79 20 2b 3d 20 4d 61 74 this.y += Mat
- 000027b0: 68 2e 72 6f 75 6e 64 28 6d 6f 76 65 41 6d 6f 75 h.round(moveAmou
- 000027c0: 6e 74 20 2a 20 64 65 6c 74 61 54 69 6d 65 29 3b nt * deltaTime);
- 000027d0: 0a 20 20 20 20 7d 0a 20 20 20 20 69 66 20 28 6b . }. if (k
- 000027e0: 65 79 73 2e 72 69 67 68 74 29 20 7b 0a 20 20 20 eys.right) {.
- 000027f0: 20 20 20 74 68 69 73 2e 78 20 2b 3d 20 4d 61 74 this.x += Mat
- 00002800: 68 2e 72 6f 75 6e 64 28 6d 6f 76 65 41 6d 6f 75 h.round(moveAmou
- 00002810: 6e 74 20 2a 20 64 65 6c 74 61 54 69 6d 65 29 3b nt * deltaTime);
- 00002820: 0a 20 20 20 20 7d 0a 20 20 20 20 69 66 20 28 74 . }. if (t
- 00002830: 68 69 73 2e 78 20 3c 20 74 68 69 73 2e 77 69 64 his.x < this.wid
- 00002840: 74 68 29 20 7b 0a 20 20 20 20 20 20 74 68 69 73 th) {. this
- 00002850: 2e 78 20 3d 20 74 68 69 73 2e 77 69 64 74 68 3b .x = this.width;
- 00002860: 0a 20 20 20 20 7d 0a 20 20 20 20 69 66 20 28 74 . }. if (t
- 00002870: 68 69 73 2e 79 20 3c 20 74 68 69 73 2e 68 65 69 his.y < this.hei
- 00002880: 67 68 74 29 20 7b 0a 20 20 20 20 20 20 74 68 69 ght) {. thi
- 00002890: 73 2e 79 20 3d 20 74 68 69 73 2e 68 65 69 67 68 s.y = this.heigh
- 000028a0: 74 3b 0a 20 20 20 20 7d 0a 20 20 20 20 69 66 20 t;. }. if
- 000028b0: 28 74 68 69 73 2e 78 20 3e 20 72 6f 6f 6d 2e 77 (this.x > room.w
- 000028c0: 69 64 74 68 20 2d 20 74 68 69 73 2e 77 69 64 74 idth - this.widt
- 000028d0: 68 29 20 7b 0a 20 20 20 20 20 20 74 68 69 73 2e h) {. this.
- 000028e0: 78 20 3d 20 72 6f 6f 6d 2e 77 69 64 74 68 20 2d x = room.width -
- 000028f0: 20 74 68 69 73 2e 77 69 64 74 68 3b 0a 20 20 20 this.width;.
- 00002900: 20 7d 0a 20 20 20 20 69 66 20 28 74 68 69 73 2e }. if (this.
- 00002910: 79 20 3e 20 72 6f 6f 6d 2e 68 65 69 67 68 74 20 y > room.height
- 00002920: 2d 20 74 68 69 73 2e 68 65 69 67 68 74 29 20 7b - this.height) {
- 00002930: 0a 20 20 20 20 20 20 74 68 69 73 2e 79 20 3d 20 . this.y =
- 00002940: 72 6f 6f 6d 2e 68 65 69 67 68 74 20 2d 20 74 68 room.height - th
- 00002950: 69 73 2e 68 65 69 67 68 74 3b 0a 20 20 20 20 7d is.height;. }
- 00002960: 0a 20 20 20 20 69 66 20 28 70 72 65 76 58 20 21 . if (prevX !
- 00002970: 3d 3d 20 74 68 69 73 2e 78 20 7c 7c 20 70 72 65 == this.x || pre
- 00002980: 76 59 20 21 3d 3d 20 74 68 69 73 2e 79 29 20 7b vY !== this.y) {
- 00002990: 0a 20 20 20 20 20 20 72 65 74 75 72 6e 20 74 72 . return tr
- 000029a0: 75 65 3b 0a 20 20 20 20 7d 20 65 6c 73 65 20 7b ue;. } else {
- 000029b0: 0a 20 20 20 20 20 20 72 65 74 75 72 6e 20 66 61 . return fa
- 000029c0: 6c 73 65 3b 0a 20 20 20 20 7d 0a 20 20 7d 3b 0a lse;. }. };.
- 000029d0: 20 20 64 72 61 77 20 3d 20 66 75 6e 63 74 69 6f draw = functio
- 000029e0: 6e 28 63 74 78 2c 20 78 56 69 65 77 2c 20 79 56 n(ctx, xView, yV
- 000029f0: 69 65 77 29 20 7b 0a 20 20 20 20 63 74 78 2e 73 iew) {. ctx.s
- 00002a00: 61 76 65 28 29 3b 0a 20 20 20 20 63 74 78 2e 66 ave();. ctx.f
- 00002a10: 69 6c 6c 53 74 79 6c 65 20 3d 20 74 68 69 73 2e illStyle = this.
- 00002a20: 62 6c 6f 63 6b 43 6f 6c 6f 72 3b 0a 20 20 20 20 blockColor;.
- 00002a30: 63 74 78 2e 66 69 6c 6c 52 65 63 74 28 74 68 69 ctx.fillRect(thi
- 00002a40: 73 2e 78 20 2d 20 28 74 68 69 73 2e 77 69 64 74 s.x - (this.widt
- 00002a50: 68 20 2f 20 32 29 20 2d 20 78 56 69 65 77 2c 20 h / 2) - xView,
- 00002a60: 74 68 69 73 2e 79 20 2d 20 28 74 68 69 73 2e 68 this.y - (this.h
- 00002a70: 65 69 67 68 74 20 2f 20 32 29 20 2d 20 79 56 69 eight / 2) - yVi
- 00002a80: 65 77 2c 20 74 68 69 73 2e 77 69 64 74 68 2c 20 ew, this.width,
- 00002a90: 74 68 69 73 2e 68 65 69 67 68 74 29 3b 0a 20 20 this.height);.
- 00002aa0: 20 20 63 74 78 2e 66 6f 6e 74 20 3d 20 27 31 32 ctx.font = '12
- 00002ab0: 70 78 20 73 61 6e 73 2d 73 65 72 69 66 27 3b 0a px sans-serif';.
- 00002ac0: 20 20 20 20 63 74 78 2e 74 65 78 74 41 6c 69 67 ctx.textAlig
- 00002ad0: 6e 20 3d 20 27 63 65 6e 74 65 72 27 3b 0a 20 20 n = 'center';.
- 00002ae0: 20 20 63 74 78 2e 66 69 6c 6c 54 65 78 74 28 6e ctx.fillText(n
- 00002af0: 61 6d 65 2c 20 74 68 69 73 2e 78 20 2d 20 78 56 ame, this.x - xV
- 00002b00: 69 65 77 2c 20 74 68 69 73 2e 79 20 2d 20 79 56 iew, this.y - yV
- 00002b10: 69 65 77 20 2d 20 32 34 29 3b 0a 20 20 20 20 63 iew - 24);. c
- 00002b20: 74 78 2e 72 65 73 74 6f 72 65 28 29 3b 0a 20 20 tx.restore();.
- 00002b30: 7d 3b 0a 20 20 72 65 74 75 72 6e 20 7b 0a 20 20 };. return {.
- 00002b40: 20 20 78 3a 20 78 2c 0a 20 20 20 20 79 3a 20 79 x: x,. y: y
- 00002b50: 2c 0a 20 20 20 20 77 69 64 74 68 3a 20 77 69 64 ,. width: wid
- 00002b60: 74 68 2c 0a 20 20 20 20 68 65 69 67 68 74 3a 20 th,. height:
- 00002b70: 68 65 69 67 68 74 2c 0a 20 20 20 20 62 6c 6f 63 height,. bloc
- 00002b80: 6b 43 6f 6c 6f 72 3a 20 62 6c 6f 63 6b 43 6f 6c kColor: blockCol
- 00002b90: 6f 72 2c 0a 20 20 20 20 75 70 64 61 74 65 3a 20 or,. update:
- 00002ba0: 75 70 64 61 74 65 2c 0a 20 20 20 20 64 72 61 77 update,. draw
- 00002bb0: 3a 20 64 72 61 77 0a 20 20 7d 3b 0a 7d 3b 0a 0a : draw. };.};..
- 00002bc0: 0a 2f 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ./**************
- 00002bd0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
- 00002be0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
- 00002bf0: 2a 2a 2a 2a 0a 2a 2a 20 47 41 4d 45 20 44 45 42 ****.** GAME DEB
- 00002c00: 55 47 20 43 4c 41 53 53 0a 2a 2a 2a 2a 2a 2a 2a UG CLASS.*******
- 00002c10: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
- 00002c20: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
- 00002c30: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0a 20 2a 2f 0a 0a **********. */..
- 00002c40: 64 72 61 77 5f 64 65 62 75 67 20 3d 20 66 75 6e draw_debug = fun
- 00002c50: 63 74 69 6f 6e 28 63 74 78 2c 20 78 56 69 65 77 ction(ctx, xView
- 00002c60: 2c 20 79 56 69 65 77 29 20 7b 0a 20 20 76 61 72 , yView) {. var
- 00002c70: 20 64 65 62 75 67 56 61 72 4e 61 6d 65 73 2c 20 debugVarNames,
- 00002c80: 64 65 62 75 67 56 61 72 73 2c 20 69 2c 20 6a 2c debugVars, i, j,
- 00002c90: 20 6c 2c 20 6c 6c 2c 20 70 6c 61 79 65 72 2c 20 l, ll, player,
- 00002ca0: 70 6c 61 79 65 72 50 72 6f 70 4e 61 6d 65 73 2c playerPropNames,
- 00002cb0: 20 70 6c 61 79 65 72 50 72 6f 70 73 3b 0a 20 20 playerProps;.
- 00002cc0: 63 74 78 2e 73 61 76 65 28 29 3b 0a 20 20 63 74 ctx.save();. ct
- 00002cd0: 78 2e 66 6f 6e 74 20 3d 20 27 62 6f 6c 64 20 31 x.font = 'bold 1
- 00002ce0: 32 70 78 20 6d 6f 6e 6f 73 70 61 63 65 27 3b 0a 2px monospace';.
- 00002cf0: 20 20 63 74 78 2e 74 65 78 74 41 6c 69 67 6e 20 ctx.textAlign
- 00002d00: 3d 20 27 73 74 61 72 74 27 3b 0a 20 20 63 74 78 = 'start';. ctx
- 00002d10: 2e 66 69 6c 6c 53 74 79 6c 65 20 3d 20 27 62 6c .fillStyle = 'bl
- 00002d20: 61 63 6b 27 3b 0a 20 20 63 74 78 2e 66 69 6c 6c ack';. ctx.fill
- 00002d30: 54 65 78 74 28 27 5b 44 45 42 55 47 5d 27 2c 20 Text('[DEBUG]',
- 00002d40: 38 2c 20 36 30 29 3b 0a 20 20 64 65 62 75 67 56 8, 60);. debugV
- 00002d50: 61 72 73 20 3d 20 5b 4d 61 74 68 2e 72 6f 75 6e ars = [Math.roun
- 00002d60: 64 28 31 30 30 30 20 2f 20 64 65 6c 74 61 54 69 d(1000 / deltaTi
- 00002d70: 6d 65 29 20 2b 20 31 2c 20 64 65 6c 74 61 54 69 me) + 1, deltaTi
- 00002d80: 6d 65 2c 20 27 27 2c 20 6c 6f 63 61 6c 50 6c 61 me, '', localPla
- 00002d90: 79 65 72 2e 69 64 2c 20 6c 6f 63 61 6c 50 6c 61 yer.id, localPla
- 00002da0: 79 65 72 2e 78 2c 20 6c 6f 63 61 6c 50 6c 61 79 yer.x, localPlay
- 00002db0: 65 72 2e 79 5d 3b 0a 20 20 64 65 62 75 67 56 61 er.y];. debugVa
- 00002dc0: 72 4e 61 6d 65 73 20 3d 20 5b 27 46 50 53 3a 20 rNames = ['FPS:
- 00002dd0: 20 20 20 20 20 20 20 27 2c 20 27 44 65 6c 74 61 ', 'Delta
- 00002de0: 54 69 6d 65 3a 20 20 27 2c 20 27 27 2c 20 27 50 Time: ', '', 'P
- 00002df0: 6c 61 79 65 72 20 49 44 3a 20 20 27 2c 20 27 50 layer ID: ', 'P
- 00002e00: 6c 61 79 65 72 20 58 3a 20 20 20 27 2c 20 27 50 layer X: ', 'P
- 00002e10: 6c 61 79 65 72 20 59 3a 20 20 20 27 5d 3b 0a 20 layer Y: '];.
- 00002e20: 20 70 6c 61 79 65 72 50 72 6f 70 73 20 3d 20 5b playerProps = [
- 00002e30: 27 69 64 27 2c 20 27 6e 61 6d 65 27 2c 20 27 78 'id', 'name', 'x
- 00002e40: 27 2c 20 27 79 27 5d 3b 0a 20 20 70 6c 61 79 65 ', 'y'];. playe
- 00002e50: 72 50 72 6f 70 4e 61 6d 65 73 20 3d 20 5b 27 49 rPropNames = ['I
- 00002e60: 44 3a 20 20 20 20 20 27 2c 20 27 4e 61 6d 65 3a D: ', 'Name:
- 00002e70: 20 20 20 27 2c 20 27 58 3a 20 20 20 20 20 20 27 ', 'X: '
- 00002e80: 2c 20 27 59 3a 20 20 20 20 20 20 27 5d 3b 0a 20 , 'Y: '];.
- 00002e90: 20 64 65 62 75 67 56 61 72 73 2e 70 75 73 68 28 debugVars.push(
- 00002ea0: 27 27 29 3b 0a 20 20 64 65 62 75 67 56 61 72 4e '');. debugVarN
- 00002eb0: 61 6d 65 73 2e 70 75 73 68 28 27 27 29 3b 0a 20 ames.push('');.
- 00002ec0: 20 66 6f 72 20 28 69 20 3d 20 30 2c 20 6c 20 3d for (i = 0, l =
- 00002ed0: 20 72 65 6d 6f 74 65 50 6c 61 79 65 72 73 2e 6c remotePlayers.l
- 00002ee0: 65 6e 67 74 68 3b 20 69 20 3c 20 6c 3b 20 69 2b ength; i < l; i+
- 00002ef0: 2b 29 20 7b 0a 20 20 20 20 64 65 62 75 67 56 61 +) {. debugVa
- 00002f00: 72 73 2e 70 75 73 68 28 27 27 29 3b 0a 20 20 20 rs.push('');.
- 00002f10: 20 64 65 62 75 67 56 61 72 4e 61 6d 65 73 2e 70 debugVarNames.p
- 00002f20: 75 73 68 28 27 27 29 3b 0a 20 20 20 20 70 6c 61 ush('');. pla
- 00002f30: 79 65 72 20 3d 20 70 6c 61 79 65 72 42 79 49 64 yer = playerById
- 00002f40: 28 72 65 6d 6f 74 65 50 6c 61 79 65 72 73 5b 69 (remotePlayers[i
- 00002f50: 5d 2e 69 64 29 3b 0a 20 20 20 20 66 6f 72 20 28 ].id);. for (
- 00002f60: 6a 20 3d 20 30 2c 20 6c 6c 20 3d 20 70 6c 61 79 j = 0, ll = play
- 00002f70: 65 72 50 72 6f 70 73 2e 6c 65 6e 67 74 68 3b 20 erProps.length;
- 00002f80: 6a 20 3c 20 6c 6c 3b 20 6a 2b 2b 29 20 7b 0a 20 j < ll; j++) {.
- 00002f90: 20 20 20 20 20 64 65 62 75 67 56 61 72 73 2e 70 debugVars.p
- 00002fa0: 75 73 68 28 70 6c 61 79 65 72 5b 70 6c 61 79 65 ush(player[playe
- 00002fb0: 72 50 72 6f 70 73 5b 6a 5d 5d 29 3b 0a 20 20 20 rProps[j]]);.
- 00002fc0: 20 20 20 64 65 62 75 67 56 61 72 4e 61 6d 65 73 debugVarNames
- 00002fd0: 2e 70 75 73 68 28 70 6c 61 79 65 72 50 72 6f 70 .push(playerProp
- 00002fe0: 4e 61 6d 65 73 5b 6a 5d 29 3b 0a 20 20 20 20 7d Names[j]);. }
- 00002ff0: 0a 20 20 7d 0a 20 20 69 20 3d 20 30 3b 0a 20 20 . }. i = 0;.
- 00003000: 77 68 69 6c 65 20 28 69 20 3c 20 64 65 62 75 67 while (i < debug
- 00003010: 56 61 72 73 2e 6c 65 6e 67 74 68 29 20 7b 0a 20 Vars.length) {.
- 00003020: 20 20 20 63 74 78 2e 66 69 6c 6c 54 65 78 74 28 ctx.fillText(
- 00003030: 64 65 62 75 67 56 61 72 4e 61 6d 65 73 5b 69 5d debugVarNames[i]
- 00003040: 20 2b 20 64 65 62 75 67 56 61 72 73 5b 69 5d 2c + debugVars[i],
- 00003050: 20 38 2c 20 36 38 20 2b 20 28 69 20 2b 20 31 29 8, 68 + (i + 1)
- 00003060: 20 2a 20 31 32 29 3b 0a 20 20 20 20 69 2b 2b 3b * 12);. i++;
- 00003070: 0a 20 20 7d 0a 20 20 63 74 78 2e 72 65 73 74 6f . }. ctx.resto
- 00003080: 72 65 28 29 3b 0a 7d 3b 0a 0a 0a 2f 2a 2a 2a 2a re();.};.../****
- 00003090: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
- 000030a0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
- 000030b0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0a 2a **************.*
- 000030c0: 2a 20 47 41 4d 45 20 45 56 45 4e 54 20 48 41 4e * GAME EVENT HAN
- 000030d0: 44 4c 45 52 53 0a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a DLERS.**********
- 000030e0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
- 000030f0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
- 00003100: 2a 2a 2a 2a 2a 2a 2a 0a 20 2a 2f 0a 0a 73 65 74 *******. */..set
- 00003110: 47 61 6d 65 45 76 65 6e 74 48 61 6e 64 6c 65 72 GameEventHandler
- 00003120: 73 20 3d 20 66 75 6e 63 74 69 6f 6e 28 29 20 7b s = function() {
- 00003130: 0a 20 20 77 69 6e 64 6f 77 2e 61 64 64 45 76 65 . window.addEve
- 00003140: 6e 74 4c 69 73 74 65 6e 65 72 28 27 6b 65 79 64 ntListener('keyd
- 00003150: 6f 77 6e 27 2c 20 6f 6e 4b 65 79 64 6f 77 6e 2c own', onKeydown,
- 00003160: 20 66 61 6c 73 65 29 3b 0a 20 20 77 69 6e 64 6f false);. windo
- 00003170: 77 2e 61 64 64 45 76 65 6e 74 4c 69 73 74 65 6e w.addEventListen
- 00003180: 65 72 28 27 6b 65 79 75 70 27 2c 20 6f 6e 4b 65 er('keyup', onKe
- 00003190: 79 75 70 2c 20 66 61 6c 73 65 29 3b 0a 20 20 77 yup, false);. w
- 000031a0: 69 6e 64 6f 77 2e 61 64 64 45 76 65 6e 74 4c 69 indow.addEventLi
- 000031b0: 73 74 65 6e 65 72 28 27 72 65 73 69 7a 65 27 2c stener('resize',
- 000031c0: 20 6f 6e 52 65 73 69 7a 65 2c 20 66 61 6c 73 65 onResize, false
- 000031d0: 29 3b 0a 20 20 73 6f 63 6b 65 74 2e 6f 6e 28 27 );. socket.on('
- 000031e0: 6e 65 77 20 70 6c 61 79 65 72 27 2c 20 6f 6e 4e new player', onN
- 000031f0: 65 77 50 6c 61 79 65 72 29 3b 0a 20 20 73 6f 63 ewPlayer);. soc
- 00003200: 6b 65 74 2e 6f 6e 28 27 6d 6f 76 65 20 70 6c 61 ket.on('move pla
- 00003210: 79 65 72 27 2c 20 6f 6e 4d 6f 76 65 50 6c 61 79 yer', onMovePlay
- 00003220: 65 72 29 3b 0a 20 20 73 6f 63 6b 65 74 2e 6f 6e er);. socket.on
- 00003230: 28 27 72 65 6d 6f 76 65 20 70 6c 61 79 65 72 27 ('remove player'
- 00003240: 2c 20 6f 6e 52 65 6d 6f 76 65 50 6c 61 79 65 72 , onRemovePlayer
- 00003250: 29 3b 0a 7d 3b 0a 0a 0a 2f 2a 6a 73 68 69 6e 74 );.};.../*jshint
- 00003260: 20 6a 71 75 65 72 79 3a 20 74 72 75 65 20 2a 2f jquery: true */
- 00003270: 0a 0a 0a 2f 2a 67 6c 6f 62 61 6c 73 20 69 6f 3a .../*globals io:
- 00003280: 66 61 6c 73 65 2c 20 63 6f 6e 73 6f 6c 65 3a 66 false, console:f
- 00003290: 61 6c 73 65 2c 20 43 6f 6f 6b 69 65 73 3a 66 61 alse, Cookies:fa
- 000032a0: 6c 73 65 20 2a 2f 0a 0a 27 75 73 65 20 73 74 72 lse */..'use str
- 000032b0: 69 63 74 27 3b 0a 2f 2a 0a 63 68 61 6e 6e 65 6c ict';./*.channel
- 000032c0: 73 20 3d 20 76 6f 69 64 20 30 3b 0a 0a 63 68 65 s = void 0;..che
- 000032d0: 63 6b 50 61 73 73 20 3d 20 76 6f 69 64 20 30 3b ckPass = void 0;
- 000032e0: 0a 0a 65 6d 6f 6a 69 73 20 3d 20 76 6f 69 64 20 ..emojis = void
- 000032f0: 30 3b 0a 0a 65 73 63 61 70 65 52 65 67 65 78 20 0;..escapeRegex
- 00003300: 3d 20 76 6f 69 64 20 30 3b 0a 0a 67 65 74 55 73 = void 0;..getUs
- 00003310: 65 72 6e 61 6d 65 43 6f 6f 6b 69 65 20 3d 20 76 ernameCookie = v
- 00003320: 6f 69 64 20 30 3b 0a 0a 69 20 3d 20 76 6f 69 64 oid 0;..i = void
- 00003330: 20 30 3b 0a 0a 69 6e 69 74 20 3d 20 76 6f 69 64 0;..init = void
- 00003340: 20 30 3b 0a 0a 69 6e 69 74 63 68 61 74 20 3d 20 0;..initchat =
- 00003350: 76 6f 69 64 20 30 3b 0a 0a 6c 65 6e 20 3d 20 76 void 0;..len = v
- 00003360: 6f 69 64 20 30 3b 0a 0a 6c 6f 67 69 6e 20 3d 20 oid 0;..login =
- 00003370: 76 6f 69 64 20 30 3b 0a 0a 6c 6f 67 6f 75 74 20 void 0;..logout
- 00003380: 3d 20 76 6f 69 64 20 30 3b 0a 0a 6e 61 6d 65 20 = void 0;..name
- 00003390: 3d 20 76 6f 69 64 20 30 3b 0a 0a 70 61 72 73 65 = void 0;..parse
- 000033a0: 4d 65 73 73 61 67 65 20 3d 20 76 6f 69 64 20 30 Message = void 0
- 000033b0: 3b 0a 0a 72 65 66 20 3d 20 76 6f 69 64 20 30 3b ;..ref = void 0;
- 000033c0: 0a 0a 72 65 67 69 73 74 65 72 20 3d 20 76 6f 69 ..register = voi
- 000033d0: 64 20 30 3b 0a 0a 72 65 6d 6f 76 65 55 73 65 72 d 0;..removeUser
- 000033e0: 6e 61 6d 65 43 6f 6f 6b 69 65 20 3d 20 76 6f 69 nameCookie = voi
- 000033f0: 64 20 30 3b 0a 0a 73 61 66 65 20 3d 20 76 6f 69 d 0;..safe = voi
- 00003400: 64 20 30 3b 0a 0a 73 65 73 73 69 6f 6e 69 64 20 d 0;..sessionid
- 00003410: 3d 20 76 6f 69 64 20 30 3b 0a 0a 73 65 74 55 73 = void 0;..setUs
- 00003420: 65 72 6e 61 6d 65 43 6f 6f 6b 69 65 20 3d 20 76 ernameCookie = v
- 00003430: 6f 69 64 20 30 3b 0a 0a 73 65 74 73 74 61 74 75 oid 0;..setstatu
- 00003440: 73 20 3d 20 76 6f 69 64 20 30 3b 0a 0a 73 6f 63 s = void 0;..soc
- 00003450: 6b 65 74 20 3d 20 76 6f 69 64 20 30 3b 0a 0a 73 ket = void 0;..s
- 00003460: 6f 63 6b 65 74 20 3d 20 6e 75 6c 6c 3b 0a 0a 73 ocket = null;..s
- 00003470: 65 73 73 69 6f 6e 69 64 20 3d 20 6e 75 6c 6c 3b essionid = null;
- 00003480: 0a 2a 2f 0a 63 68 61 6e 6e 65 6c 73 20 3d 20 5b .*/.channels = [
- 00003490: 5d 3b 0a 0a 65 6d 6f 6a 69 73 20 3d 20 7b 0a 20 ];..emojis = {.
- 000034a0: 20 27 3a 29 27 3a 20 27 68 74 74 70 3a 2f 2f 65 ':)': 'http://e
- 000034b0: 6d 6f 6a 69 6f 6e 65 2e 63 6f 6d 2f 77 70 2d 63 mojione.com/wp-c
- 000034c0: 6f 6e 74 65 6e 74 2f 75 70 6c 6f 61 64 73 2f 61 ontent/uploads/a
- 000034d0: 73 73 65 74 73 2f 65 6d 6f 6a 69 73 2f 31 66 36 ssets/emojis/1f6
- 000034e0: 30 33 2e 73 76 67 27 2c 0a 20 20 27 3a 75 6e 69 03.svg',. ':uni
- 000034f0: 63 6f 72 6e 3a 27 3a 20 27 68 74 74 70 3a 2f 2f corn:': 'http://
- 00003500: 65 6d 6f 6a 69 6f 6e 65 2e 63 6f 6d 2f 77 70 2d emojione.com/wp-
- 00003510: 63 6f 6e 74 65 6e 74 2f 75 70 6c 6f 61 64 73 2f content/uploads/
- 00003520: 61 73 73 65 74 73 2f 65 6d 6f 6a 69 73 2f 31 66 assets/emojis/1f
- 00003530: 39 38 34 2e 73 76 67 27 0a 7d 3b 0a 0a 72 65 66 984.svg'.};..ref
- 00003540: 20 3d 20 5b 27 32 30 25 73 61 64 64 65 72 27 2c = ['20%sadder',
- 00003550: 20 27 61 64 72 69 61 6e 79 6f 75 68 61 70 70 79 'adrianyouhappy
- 00003560: 6e 6f 77 27 2c 20 27 41 4a 73 63 61 72 65 64 27 now', 'AJscared'
- 00003570: 2c 20 27 62 69 67 6d 61 63 27 2c 20 27 63 61 64 , 'bigmac', 'cad
- 00003580: 61 6e 63 65 27 2c 20 27 63 6f 6c 67 61 74 65 68 ance', 'colgateh
- 00003590: 61 70 70 79 27 2c 20 27 64 65 72 70 27 2c 20 27 appy', 'derp', '
- 000035a0: 65 79 65 72 6f 6c 6c 27 2c 20 27 66 61 62 75 6c eyeroll', 'fabul
- 000035b0: 6f 75 73 27 2c 20 27 66 61 63 65 68 6f 6f 66 27 ous', 'facehoof'
- 000035c0: 2c 20 27 67 72 65 65 64 27 2c 20 27 68 65 72 6f , 'greed', 'hero
- 000035d0: 27 2c 20 27 6c 61 75 67 68 27 2c 20 27 6c 69 65 ', 'laugh', 'lie
- 000035e0: 27 2c 20 27 6c 79 72 61 65 78 63 69 74 65 64 27 ', 'lyraexcited'
- 000035f0: 2c 20 27 6c 79 72 61 73 61 64 27 2c 20 27 4e 4d , 'lyrasad', 'NM
- 00003600: 32 27 2c 20 27 4e 4d 33 27 2c 20 27 6e 6f 74 61 2', 'NM3', 'nota
- 00003610: 6d 75 73 65 64 27 2c 20 27 70 68 6f 74 6f 66 69 mused', 'photofi
- 00003620: 6e 69 73 68 27 2c 20 27 70 70 73 6d 69 6c 65 27 nish', 'ppsmile'
- 00003630: 2c 20 27 70 77 69 6e 6b 27 2c 20 27 52 44 68 75 , 'pwink', 'RDhu
- 00003640: 68 27 2c 20 27 72 64 73 6d 69 6c 65 27 2c 20 27 h', 'rdsmile', '
- 00003650: 72 64 77 69 6e 6b 27 2c 20 27 73 63 61 72 65 64 rdwink', 'scared
- 00003660: 27 2c 20 27 73 63 69 65 6e 63 65 27 2c 20 27 73 ', 'science', 's
- 00003670: 65 72 69 6f 75 73 54 53 27 2c 20 27 73 68 69 6e eriousTS', 'shin
- 00003680: 79 27 2c 20 27 73 68 72 75 67 27 2c 20 27 73 6f y', 'shrug', 'so
- 00003690: 6d 65 74 68 69 6e 67 77 65 6e 74 77 72 6f 6e 67 methingwentwrong
- 000036a0: 27 2c 20 27 73 70 69 6b 65 6d 6f 76 27 2c 20 27 ', 'spikemov', '
- 000036b0: 73 70 69 6b 65 27 2c 20 27 73 71 75 65 65 27 2c spike', 'squee',
- 000036c0: 20 27 73 77 65 65 74 69 65 27 2c 20 27 74 68 69 'sweetie', 'thi
- 000036d0: 73 69 73 61 62 72 75 73 68 69 65 27 2c 20 27 74 sisabrushie', 't
- 000036e0: 68 6f 72 67 27 2c 20 27 74 72 69 78 69 65 27 2c horg', 'trixie',
- 000036f0: 20 27 74 73 73 6d 69 6c 65 27 2c 20 27 74 77 69 'tssmile', 'twi
- 00003700: 62 6c 75 73 68 27 2c 20 27 75 6d 61 64 27 2c 20 blush', 'umad',
- 00003710: 27 76 69 6e 79 6c 27 2c 20 27 58 54 55 58 53 6d 'vinyl', 'XTUXSm
- 00003720: 69 6c 65 79 27 2c 20 27 79 61 79 27 2c 20 27 59 iley', 'yay', 'Y
- 00003730: 45 41 48 27 5d 3b 0a 0a 69 20 3d 20 30 3b 0a 0a EAH'];..i = 0;..
- 00003740: 6c 65 6e 20 3d 20 72 65 66 2e 6c 65 6e 67 74 68 len = ref.length
- 00003750: 3b 0a 0a 77 68 69 6c 65 20 28 69 20 3c 20 6c 65 ;..while (i < le
- 00003760: 6e 29 20 7b 0a 20 20 6e 61 6d 65 20 3d 20 72 65 n) {. name = re
- 00003770: 66 5b 69 5d 3b 0a 20 20 65 6d 6f 6a 69 73 5b 27 f[i];. emojis['
- 00003780: 3a 27 20 2b 20 6e 61 6d 65 20 2b 20 27 3a 27 5d :' + name + ':']
- 00003790: 20 3d 20 27 2f 69 6d 61 67 65 73 2f 65 6d 6f 6a = '/images/emoj
- 000037a0: 69 2f 27 20 2b 20 6e 61 6d 65 20 2b 20 27 2e 70 i/' + name + '.p
- 000037b0: 6e 67 27 3b 0a 20 20 69 2b 2b 3b 0a 7d 0a 0a 73 ng';. i++;.}..s
- 000037c0: 65 74 55 73 65 72 6e 61 6d 65 43 6f 6f 6b 69 65 etUsernameCookie
- 000037d0: 20 3d 20 66 75 6e 63 74 69 6f 6e 28 75 73 65 72 = function(user
- 000037e0: 6e 61 6d 65 29 20 7b 0a 20 20 69 66 20 28 43 6f name) {. if (Co
- 000037f0: 6f 6b 69 65 73 20 3d 3d 3d 20 76 6f 69 64 20 30 okies === void 0
- 00003800: 29 20 7b 0a 20 20 20 20 72 65 74 75 72 6e 20 76 ) {. return v
- 00003810: 6f 69 64 20 30 3b 0a 20 20 7d 0a 20 20 69 66 20 oid 0;. }. if
- 00003820: 28 24 28 27 23 72 65 6d 65 6d 62 65 72 27 29 2e ($('#remember').
- 00003830: 69 73 28 27 3a 63 68 65 63 6b 65 64 27 29 29 20 is(':checked'))
- 00003840: 7b 0a 20 20 20 20 72 65 74 75 72 6e 20 43 6f 6f {. return Coo
- 00003850: 6b 69 65 73 2e 73 65 74 28 27 75 73 65 72 6e 61 kies.set('userna
- 00003860: 6d 65 27 2c 20 75 73 65 72 6e 61 6d 65 29 3b 0a me', username);.
- 00003870: 20 20 7d 0a 7d 3b 0a 0a 67 65 74 55 73 65 72 6e }.};..getUsern
- 00003880: 61 6d 65 43 6f 6f 6b 69 65 20 3d 20 66 75 6e 63 ameCookie = func
- 00003890: 74 69 6f 6e 28 29 20 7b 0a 20 20 69 66 20 28 43 tion() {. if (C
- 000038a0: 6f 6f 6b 69 65 73 20 3d 3d 3d 20 76 6f 69 64 20 ookies === void
- 000038b0: 30 29 20 7b 0a 20 20 20 20 72 65 74 75 72 6e 20 0) {. return
- 000038c0: 76 6f 69 64 20 30 3b 0a 20 20 7d 0a 20 20 72 65 void 0;. }. re
- 000038d0: 74 75 72 6e 20 43 6f 6f 6b 69 65 73 2e 67 65 74 turn Cookies.get
- 000038e0: 28 27 75 73 65 72 6e 61 6d 65 27 29 3b 0a 7d 3b ('username');.};
- 000038f0: 0a 0a 72 65 6d 6f 76 65 55 73 65 72 6e 61 6d 65 ..removeUsername
- 00003900: 43 6f 6f 6b 69 65 20 3d 20 66 75 6e 63 74 69 6f Cookie = functio
- 00003910: 6e 28 29 20 7b 0a 20 20 69 66 20 28 43 6f 6f 6b n() {. if (Cook
- 00003920: 69 65 73 20 3d 3d 3d 20 76 6f 69 64 20 30 29 20 ies === void 0)
- 00003930: 7b 0a 20 20 20 20 72 65 74 75 72 6e 20 76 6f 69 {. return voi
- 00003940: 64 20 30 3b 0a 20 20 7d 0a 20 20 72 65 74 75 72 d 0;. }. retur
- 00003950: 6e 20 43 6f 6f 6b 69 65 73 2e 72 65 6d 6f 76 65 n Cookies.remove
- 00003960: 28 27 75 73 65 72 6e 61 6d 65 27 29 3b 0a 7d 3b ('username');.};
- 00003970: 0a 0a 73 65 74 73 74 61 74 75 73 20 3d 20 66 75 ..setstatus = fu
- 00003980: 6e 63 74 69 6f 6e 28 73 74 61 74 2c 20 73 75 62 nction(stat, sub
- 00003990: 73 63 72 2c 20 69 73 65 72 72 6f 72 29 20 7b 0a scr, iserror) {.
- 000039a0: 20 20 76 61 72 20 65 6c 65 6d 2c 20 68 74 6d 6c var elem, html
- 000039b0: 3b 0a 20 20 69 66 20 28 74 79 70 65 6f 66 20 73 ;. if (typeof s
- 000039c0: 75 62 73 63 72 20 21 3d 3d 20 27 73 74 72 69 6e ubscr !== 'strin
- 000039d0: 67 27 29 20 7b 0a 20 20 20 20 69 73 65 72 72 6f g') {. iserro
- 000039e0: 72 20 3d 20 73 75 62 73 63 72 3b 0a 20 20 20 20 r = subscr;.
- 000039f0: 73 75 62 73 63 72 20 3d 20 27 27 3b 0a 20 20 7d subscr = '';. }
- 00003a00: 0a 20 20 65 6c 65 6d 20 3d 20 24 28 27 23 63 6f . elem = $('#co
- 00003a10: 6e 6e 73 74 61 74 75 73 27 29 3b 0a 20 20 68 74 nnstatus');. ht
- 00003a20: 6d 6c 20 3d 20 73 74 61 74 20 2b 20 27 3c 62 72 ml = stat + '<br
- 00003a30: 3e 3c 73 6d 61 6c 6c 3e 27 20 2b 20 73 75 62 73 ><small>' + subs
- 00003a40: 63 72 20 2b 20 27 3c 2f 73 6d 61 6c 6c 3e 27 3b cr + '</small>';
- 00003a50: 0a 20 20 65 6c 65 6d 2e 68 74 6d 6c 28 68 74 6d . elem.html(htm
- 00003a60: 6c 29 3b 0a 20 20 69 66 20 28 69 73 65 72 72 6f l);. if (iserro
- 00003a70: 72 29 20 7b 0a 20 20 20 20 72 65 74 75 72 6e 20 r) {. return
- 00003a80: 65 6c 65 6d 2e 61 64 64 43 6c 61 73 73 28 27 65 elem.addClass('e
- 00003a90: 72 72 6f 72 27 29 3b 0a 20 20 7d 20 65 6c 73 65 rror');. } else
- 00003aa0: 20 7b 0a 20 20 20 20 72 65 74 75 72 6e 20 65 6c {. return el
- 00003ab0: 65 6d 2e 72 65 6d 6f 76 65 43 6c 61 73 73 28 27 em.removeClass('
- 00003ac0: 65 72 72 6f 72 27 29 3b 0a 20 20 7d 0a 7d 3b 0a error');. }.};.
- 00003ad0: 0a 63 68 65 63 6b 50 61 73 73 20 3d 20 66 75 6e .checkPass = fun
- 00003ae0: 63 74 69 6f 6e 28 29 20 7b 0a 20 20 76 61 72 20 ction() {. var
- 00003af0: 70 61 73 73 31 2c 20 70 61 73 73 32 2c 20 72 65 pass1, pass2, re
- 00003b00: 67 69 73 74 65 72 62 75 74 74 6f 6e 3b 0a 20 20 gisterbutton;.
- 00003b10: 70 61 73 73 31 20 3d 20 24 28 27 23 70 61 73 73 pass1 = $('#pass
- 00003b20: 77 6f 72 64 27 29 2e 76 61 6c 28 29 3b 0a 20 20 word').val();.
- 00003b30: 70 61 73 73 32 20 3d 20 24 28 27 23 70 61 73 73 pass2 = $('#pass
- 00003b40: 77 6f 72 64 32 27 29 2e 76 61 6c 28 29 3b 0a 20 word2').val();.
- 00003b50: 20 72 65 67 69 73 74 65 72 62 75 74 74 6f 6e 20 registerbutton
- 00003b60: 3d 20 24 28 27 23 62 74 6e 27 29 3b 0a 20 20 69 = $('#btn');. i
- 00003b70: 66 20 28 70 61 73 73 31 20 3d 3d 3d 20 70 61 73 f (pass1 === pas
- 00003b80: 73 32 29 20 7b 0a 20 20 20 20 72 65 67 69 73 74 s2) {. regist
- 00003b90: 65 72 62 75 74 74 6f 6e 2e 70 72 6f 70 28 27 64 erbutton.prop('d
- 00003ba0: 69 73 61 62 6c 65 64 27 2c 20 66 61 6c 73 65 29 isabled', false)
- 00003bb0: 3b 0a 20 20 20 20 24 28 27 23 70 61 73 73 77 6f ;. $('#passwo
- 00003bc0: 72 64 32 27 29 2e 72 65 6d 6f 76 65 43 6c 61 73 rd2').removeClas
- 00003bd0: 73 28 27 62 61 64 70 61 73 73 27 29 3b 0a 20 20 s('badpass');.
- 00003be0: 20 20 72 65 74 75 72 6e 20 24 28 27 23 70 61 73 return $('#pas
- 00003bf0: 73 77 6f 72 64 32 27 29 2e 61 64 64 43 6c 61 73 sword2').addClas
- 00003c00: 73 28 27 67 6f 6f 64 70 61 73 73 27 29 3b 0a 20 s('goodpass');.
- 00003c10: 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 72 65 } else {. re
- 00003c20: 67 69 73 74 65 72 62 75 74 74 6f 6e 2e 70 72 6f gisterbutton.pro
- 00003c30: 70 28 27 64 69 73 61 62 6c 65 64 27 2c 20 74 72 p('disabled', tr
- 00003c40: 75 65 29 3b 0a 20 20 20 20 24 28 27 23 70 61 73 ue);. $('#pas
- 00003c50: 73 77 6f 72 64 32 27 29 2e 72 65 6d 6f 76 65 43 sword2').removeC
- 00003c60: 6c 61 73 73 28 27 67 6f 6f 64 70 61 73 73 27 29 lass('goodpass')
- 00003c70: 3b 0a 20 20 20 20 72 65 74 75 72 6e 20 24 28 27 ;. return $('
- 00003c80: 23 70 61 73 73 77 6f 72 64 32 27 29 2e 61 64 64 #password2').add
- 00003c90: 43 6c 61 73 73 28 27 62 61 64 70 61 73 73 27 29 Class('badpass')
- 00003ca0: 3b 0a 20 20 7d 0a 7d 3b 0a 0a 73 61 66 65 20 3d ;. }.};..safe =
- 00003cb0: 20 66 75 6e 63 74 69 6f 6e 28 63 61 6c 6c 62 61 function(callba
- 00003cc0: 63 6b 29 20 7b 0a 20 20 76 61 72 20 65 72 72 2c ck) {. var err,
- 00003cd0: 20 65 72 72 6f 72 2c 20 65 72 72 6f 72 31 3b 0a error, error1;.
- 00003ce0: 20 20 74 72 79 20 7b 0a 20 20 20 20 72 65 74 75 try {. retu
- 00003cf0: 72 6e 20 63 61 6c 6c 62 61 63 6b 28 29 3b 0a 20 rn callback();.
- 00003d00: 20 7d 20 63 61 74 63 68 20 28 65 72 72 6f 72 31 } catch (error1
- 00003d10: 29 20 7b 0a 20 20 20 20 65 72 72 6f 72 20 3d 20 ) {. error =
- 00003d20: 65 72 72 6f 72 31 3b 0a 20 20 20 20 65 72 72 20 error1;. err
- 00003d30: 3d 20 65 72 72 6f 72 3b 0a 20 20 20 20 63 6f 6e = error;. con
- 00003d40: 73 6f 6c 65 2e 6c 6f 67 28 65 72 72 29 3b 0a 20 sole.log(err);.
- 00003d50: 20 20 20 72 65 74 75 72 6e 20 73 65 74 73 74 61 return setsta
- 00003d60: 74 75 73 28 65 72 72 2e 6d 65 73 73 61 67 65 2c tus(err.message,
- 00003d70: 20 74 72 75 65 29 3b 0a 20 20 7d 0a 7d 3b 0a 0a true);. }.};..
- 00003d80: 65 73 63 61 70 65 52 65 67 65 78 20 3d 20 66 75 escapeRegex = fu
- 00003d90: 6e 63 74 69 6f 6e 28 73 74 72 29 20 7b 0a 20 20 nction(str) {.
- 00003da0: 72 65 74 75 72 6e 20 73 74 72 2e 72 65 70 6c 61 return str.repla
- 00003db0: 63 65 28 2f 5b 5c 2d 5c 5b 5c 5d 5c 2f 5c 7b 5c ce(/[\-\[\]\/\{\
- 00003dc0: 7d 5c 28 5c 29 5c 2a 5c 2b 5c 3f 5c 2e 5c 5c 5c }\(\)\*\+\?\.\\\
- 00003dd0: 5e 5c 24 5c 7c 5d 2f 67 2c 20 27 5c 5c 24 26 27 ^\$\|]/g, '\\$&'
- 00003de0: 29 3b 0a 7d 3b 0a 0a 70 61 72 73 65 4d 65 73 73 );.};..parseMess
- 00003df0: 61 67 65 20 3d 20 66 75 6e 63 74 69 6f 6e 28 68 age = function(h
- 00003e00: 74 6d 6c 29 20 7b 0a 20 20 76 61 72 20 65 6d 6f tml) {. var emo
- 00003e10: 6a 69 2c 20 6c 69 6e 6b 3b 0a 20 20 66 6f 72 20 ji, link;. for
- 00003e20: 28 65 6d 6f 6a 69 20 69 6e 20 65 6d 6f 6a 69 73 (emoji in emojis
- 00003e30: 29 20 7b 0a 20 20 20 20 65 6d 6f 6a 69 20 3d 20 ) {. emoji =
- 00003e40: 65 6d 6f 6a 69 3b 0a 20 20 20 20 6c 69 6e 6b 20 emoji;. link
- 00003e50: 3d 20 65 6d 6f 6a 69 73 5b 65 6d 6f 6a 69 5d 3b = emojis[emoji];
- 00003e60: 0a 20 20 20 20 68 74 6d 6c 20 3d 20 68 74 6d 6c . html = html
- 00003e70: 2e 72 65 70 6c 61 63 65 28 6e 65 77 20 52 65 67 .replace(new Reg
- 00003e80: 45 78 70 28 65 73 63 61 70 65 52 65 67 65 78 28 Exp(escapeRegex(
- 00003e90: 65 6d 6f 6a 69 29 2c 20 27 67 69 27 29 2c 20 27 emoji), 'gi'), '
- 00003ea0: 3c 69 6d 67 20 61 6c 74 3d 5c 27 27 20 2b 20 65 <img alt=\'' + e
- 00003eb0: 6d 6f 6a 69 20 2b 20 27 5c 27 20 73 72 63 3d 5c moji + '\' src=\
- 00003ec0: 27 27 20 2b 20 6c 69 6e 6b 20 2b 20 27 5c 27 3e '' + link + '\'>
- 00003ed0: 27 29 3b 0a 20 20 7d 0a 20 20 72 65 74 75 72 6e ');. }. return
- 00003ee0: 20 68 74 6d 6c 3b 0a 7d 3b 0a 0a 69 6e 69 74 20 html;.};..init
- 00003ef0: 3d 20 66 75 6e 63 74 69 6f 6e 28 29 20 7b 0a 20 = function() {.
- 00003f00: 20 72 65 74 75 72 6e 20 73 61 66 65 28 66 75 6e return safe(fun
- 00003f10: 63 74 69 6f 6e 28 29 20 7b 0a 20 20 20 20 73 6f ction() {. so
- 00003f20: 63 6b 65 74 20 3d 20 69 6f 2e 63 6f 6e 6e 65 63 cket = io.connec
- 00003f30: 74 28 29 3b 0a 20 20 20 20 73 6f 63 6b 65 74 2e t();. socket.
- 00003f40: 6f 6e 28 27 63 6f 6e 6e 65 63 74 27 2c 20 66 75 on('connect', fu
- 00003f50: 6e 63 74 69 6f 6e 28 29 20 7b 0a 20 20 20 20 20 nction() {.
- 00003f60: 20 72 65 74 75 72 6e 20 73 65 74 73 74 61 74 75 return setstatu
- 00003f70: 73 28 27 43 6f 6e 6e 65 63 74 65 64 20 74 6f 20 s('Connected to
- 00003f80: 74 68 65 20 73 65 72 76 65 72 21 27 29 3b 0a 20 the server!');.
- 00003f90: 20 20 20 7d 29 3b 0a 20 20 20 20 73 6f 63 6b 65 });. socke
- 00003fa0: 74 2e 6f 6e 28 27 73 65 74 69 64 27 2c 20 66 75 t.on('setid', fu
- 00003fb0: 6e 63 74 69 6f 6e 28 64 61 74 61 29 20 7b 0a 20 nction(data) {.
- 00003fc0: 20 20 20 20 20 72 65 74 75 72 6e 20 73 65 73 73 return sess
- 00003fd0: 69 6f 6e 69 64 20 3d 20 64 61 74 61 2e 73 65 73 ionid = data.ses
- 00003fe0: 73 69 6f 6e 69 64 3b 0a 20 20 20 20 7d 29 3b 0a sionid;. });.
- 00003ff0: 20 20 20 20 73 6f 63 6b 65 74 2e 6f 6e 28 27 64 socket.on('d
- 00004000: 69 73 63 6f 6e 6e 65 63 74 27 2c 20 66 75 6e 63 isconnect', func
- 00004010: 74 69 6f 6e 28 29 20 7b 0a 20 20 20 20 20 20 72 tion() {. r
- 00004020: 65 74 75 72 6e 20 73 65 74 73 74 61 74 75 73 28 eturn setstatus(
- 00004030: 27 4c 6f 73 74 20 63 6f 6e 6e 65 63 74 69 6f 6e 'Lost connection
- 00004040: 21 27 2c 20 74 72 75 65 29 3b 0a 20 20 20 20 7d !', true);. }
- 00004050: 29 3b 0a 20 20 20 20 24 28 27 23 70 61 73 73 77 );. $('#passw
- 00004060: 6f 72 64 27 29 2e 6b 65 79 64 6f 77 6e 28 66 75 ord').keydown(fu
- 00004070: 6e 63 74 69 6f 6e 28 65 76 65 6e 74 29 20 7b 0a nction(event) {.
- 00004080: 20 20 20 20 20 20 69 66 20 28 65 76 65 6e 74 2e if (event.
- 00004090: 6b 65 79 43 6f 64 65 20 3d 3d 3d 20 31 33 29 20 keyCode === 13)
- 000040a0: 7b 0a 20 20 20 20 20 20 20 20 65 76 65 6e 74 2e {. event.
- 000040b0: 70 72 65 76 65 6e 74 44 65 66 61 75 6c 74 28 29 preventDefault()
- 000040c0: 3b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e ;. return
- 000040d0: 20 24 28 27 23 62 74 6e 27 29 2e 63 6c 69 63 6b $('#btn').click
- 000040e0: 28 29 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 ();. }.
- 000040f0: 7d 29 3b 0a 20 20 20 20 73 6f 63 6b 65 74 2e 6f });. socket.o
- 00004100: 6e 28 27 6c 6f 67 69 6e 2d 63 6f 6d 70 6c 65 74 n('login-complet
- 00004110: 65 27 2c 20 66 75 6e 63 74 69 6f 6e 28 64 61 74 e', function(dat
- 00004120: 61 29 20 7b 0a 20 20 20 20 20 20 73 65 74 55 73 a) {. setUs
- 00004130: 65 72 6e 61 6d 65 43 6f 6f 6b 69 65 28 64 61 74 ernameCookie(dat
- 00004140: 61 2e 75 73 65 72 6e 61 6d 65 29 3b 0a 20 20 20 a.username);.
- 00004150: 20 20 20 73 65 74 73 74 61 74 75 73 28 27 57 65 setstatus('We
- 00004160: 6c 63 6f 6d 65 20 27 20 2b 20 64 61 74 61 2e 75 lcome ' + data.u
- 00004170: 73 65 72 6e 61 6d 65 20 2b 20 27 21 27 2c 20 27 sername + '!', '
- 00004180: 4c 6f 61 64 69 6e 67 20 63 68 61 74 2e 2e 2e 27 Loading chat...'
- 00004190: 29 3b 0a 20 20 20 20 20 20 73 65 74 47 61 6d 65 );. setGame
- 000041a0: 45 76 65 6e 74 48 61 6e 64 6c 65 72 73 28 29 3b EventHandlers();
- 000041b0: 0a 20 20 20 20 20 20 72 65 74 75 72 6e 20 69 6e . return in
- 000041c0: 69 74 63 68 61 74 28 29 3b 0a 20 20 20 20 7d 29 itchat();. })
- 000041d0: 3b 0a 20 20 20 20 73 6f 63 6b 65 74 2e 6f 6e 28 ;. socket.on(
- 000041e0: 27 6c 6f 67 69 6e 2d 66 61 69 6c 65 64 27 2c 20 'login-failed',
- 000041f0: 66 75 6e 63 74 69 6f 6e 28 64 61 74 61 29 20 7b function(data) {
- 00004200: 0a 20 20 20 20 20 20 72 65 74 75 72 6e 20 73 65 . return se
- 00004210: 74 73 74 61 74 75 73 28 27 46 61 69 6c 65 64 20 tstatus('Failed
- 00004220: 74 6f 20 6c 6f 67 69 6e 3a 27 2c 20 64 61 74 61 to login:', data
- 00004230: 2e 65 72 72 6f 72 2c 20 74 72 75 65 29 3b 0a 20 .error, true);.
- 00004240: 20 20 20 7d 29 3b 0a 20 20 20 20 73 6f 63 6b 65 });. socke
- 00004250: 74 2e 6f 6e 28 27 72 65 67 69 73 74 65 72 2d 63 t.on('register-c
- 00004260: 6f 6d 70 6c 65 74 65 27 2c 20 66 75 6e 63 74 69 omplete', functi
- 00004270: 6f 6e 28 64 61 74 61 29 20 7b 0a 20 20 20 20 20 on(data) {.
- 00004280: 20 72 65 74 75 72 6e 20 73 65 74 73 74 61 74 75 return setstatu
- 00004290: 73 28 27 55 73 65 72 6e 61 6d 65 20 5c 27 27 20 s('Username \''
- 000042a0: 2b 20 64 61 74 61 2e 75 73 65 72 6e 61 6d 65 20 + data.username
- 000042b0: 2b 20 27 5c 27 20 68 61 73 20 62 65 65 6e 20 73 + '\' has been s
- 000042c0: 75 63 63 65 73 73 66 75 6c 6c 79 20 72 65 67 69 uccessfully regi
- 000042d0: 73 74 65 72 65 64 27 29 3b 0a 20 20 20 20 7d 29 stered');. })
- 000042e0: 3b 0a 20 20 20 20 73 6f 63 6b 65 74 2e 6f 6e 28 ;. socket.on(
- 000042f0: 27 72 65 67 69 73 74 65 72 2d 66 61 69 6c 65 64 'register-failed
- 00004300: 27 2c 20 66 75 6e 63 74 69 6f 6e 28 64 61 74 61 ', function(data
- 00004310: 29 20 7b 0a 20 20 20 20 20 20 72 65 74 75 72 6e ) {. return
- 00004320: 20 73 65 74 73 74 61 74 75 73 28 27 46 61 69 6c setstatus('Fail
- 00004330: 65 64 20 74 6f 20 72 65 67 69 73 74 65 72 27 2c ed to register',
- 00004340: 20 64 61 74 61 2e 65 72 72 6f 72 2c 20 74 72 75 data.error, tru
- 00004350: 65 29 3b 0a 20 20 20 20 7d 29 3b 0a 20 20 20 20 e);. });.
- 00004360: 75 73 65 72 6e 61 6d 65 20 3d 20 67 65 74 55 73 username = getUs
- 00004370: 65 72 6e 61 6d 65 43 6f 6f 6b 69 65 28 29 3b 0a ernameCookie();.
- 00004380: 20 20 20 20 69 66 20 28 75 73 65 72 6e 61 6d 65 if (username
- 00004390: 20 21 3d 3d 20 76 6f 69 64 20 30 29 20 7b 0a 20 !== void 0) {.
- 000043a0: 20 20 20 20 20 72 65 74 75 72 6e 20 24 28 27 23 return $('#
- 000043b0: 75 73 65 72 6e 61 6d 65 27 29 2e 76 61 6c 28 75 username').val(u
- 000043c0: 73 65 72 6e 61 6d 65 29 3b 0a 20 20 20 20 7d 0a sername);. }.
- 000043d0: 20 20 7d 29 3b 0a 7d 3b 0a 0a 69 6e 69 74 63 68 });.};..initch
- 000043e0: 61 74 20 3d 20 66 75 6e 63 74 69 6f 6e 28 29 20 at = function()
- 000043f0: 7b 0a 20 20 72 65 74 75 72 6e 20 73 61 66 65 28 {. return safe(
- 00004400: 66 75 6e 63 74 69 6f 6e 28 29 20 7b 0a 20 20 20 function() {.
- 00004410: 20 73 6f 63 6b 65 74 2e 6f 6e 28 27 64 69 73 63 socket.on('disc
- 00004420: 6f 6e 6e 65 63 74 27 2c 20 66 75 6e 63 74 69 6f onnect', functio
- 00004430: 6e 28 29 20 7b 0a 20 20 20 20 20 20 69 66 20 28 n() {. if (
- 00004440: 24 28 27 23 6d 73 67 62 6f 78 27 29 20 3d 3d 3d $('#msgbox') ===
- 00004450: 20 6e 75 6c 6c 29 20 7b 0a 20 20 20 20 20 20 20 null) {.
- 00004460: 20 72 65 74 75 72 6e 20 61 6c 65 72 74 28 27 44 return alert('D
- 00004470: 69 73 63 6f 6e 6e 65 63 74 65 64 20 66 72 6f 6d isconnected from
- 00004480: 20 73 65 72 76 65 72 21 27 29 3b 0a 20 20 20 20 server!');.
- 00004490: 20 20 7d 0a 20 20 20 20 7d 29 3b 0a 20 20 20 20 }. });.
- 000044a0: 73 6f 63 6b 65 74 2e 6f 6e 28 27 63 68 61 74 2d socket.on('chat-
- 000044b0: 64 61 74 61 27 2c 20 66 75 6e 63 74 69 6f 6e 28 data', function(
- 000044c0: 64 61 74 61 29 20 7b 0a 20 20 20 20 20 20 76 61 data) {. va
- 000044d0: 72 20 68 74 6d 6c 3b 0a 20 20 20 20 20 20 68 74 r html;. ht
- 000044e0: 6d 6c 20 3d 20 64 61 74 61 2e 68 74 6d 6c 3b 0a ml = data.html;.
- 000044f0: 20 20 20 20 20 20 24 28 27 62 6f 64 79 27 29 2e $('body').
- 00004500: 68 74 6d 6c 28 68 74 6d 6c 29 3b 0a 20 20 20 20 html(html);.
- 00004510: 20 20 73 6f 63 6b 65 74 2e 6f 6e 28 27 64 69 73 socket.on('dis
- 00004520: 63 6f 6e 6e 65 63 74 27 2c 20 66 75 6e 63 74 69 connect', functi
- 00004530: 6f 6e 28 29 20 7b 0a 20 20 20 20 20 20 20 20 76 on() {. v
- 00004540: 61 72 20 6d 73 67 62 6f 78 3b 0a 20 20 20 20 20 ar msgbox;.
- 00004550: 20 20 20 6d 73 67 62 6f 78 20 3d 20 24 28 27 23 msgbox = $('#
- 00004560: 6d 73 67 62 6f 78 27 29 3b 0a 20 20 20 20 20 20 msgbox');.
- 00004570: 20 20 6d 73 67 62 6f 78 2e 68 69 64 65 28 29 3b msgbox.hide();
- 00004580: 0a 20 20 20 20 20 20 20 20 69 66 20 28 24 28 27 . if ($('
- 00004590: 23 72 65 66 72 65 73 68 6c 69 6e 6b 27 29 5b 30 #refreshlink')[0
- 000045a0: 5d 20 3d 3d 3d 20 76 6f 69 64 20 30 29 20 7b 0a ] === void 0) {.
- 000045b0: 20 20 20 20 20 20 20 20 20 20 6d 73 67 62 6f 78 msgbox
- 000045c0: 2e 70 61 72 65 6e 74 28 29 2e 61 70 70 65 6e 64 .parent().append
- 000045d0: 28 27 3c 73 70 61 6e 20 69 64 3d 22 72 65 66 72 ('<span id="refr
- 000045e0: 65 73 68 6c 69 6e 6b 22 20 63 6c 61 73 73 3d 22 eshlink" class="
- 000045f0: 65 72 72 6f 72 22 3e 4c 6f 73 74 20 63 6f 6e 6e error">Lost conn
- 00004600: 65 63 74 69 6f 6e 5c 6e 3c 61 20 68 72 65 66 20 ection\n<a href
- 00004610: 73 74 79 6c 65 3d 22 64 69 73 70 6c 61 79 3a 20 style="display:
- 00004620: 6e 6f 6e 65 3b 22 20 6f 6e 63 6c 69 63 6b 3d 22 none;" onclick="
- 00004630: 6c 6f 63 61 74 69 6f 6e 2e 68 72 65 66 3d 6c 6f location.href=lo
- 00004640: 63 61 74 69 6f 6e 2e 68 72 65 66 22 3e 20 54 72 cation.href"> Tr
- 00004650: 79 20 72 65 66 72 65 73 68 69 6e 67 3f 3c 2f 61 y refreshing?</a
- 00004660: 3e 3c 2f 73 70 61 6e 3e 27 29 3b 0a 20 20 20 20 ></span>');.
- 00004670: 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 73 6f }. so
- 00004680: 63 6b 65 74 2e 6f 6e 28 27 63 6f 6e 6e 65 63 74 cket.on('connect
- 00004690: 27 2c 20 66 75 6e 63 74 69 6f 6e 28 29 20 7b 0a ', function() {.
- 000046a0: 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e return
- 000046b0: 20 24 28 27 23 72 65 66 72 65 73 68 6c 69 6e 6b $('#refreshlink
- 000046c0: 20 61 27 29 2e 73 68 6f 77 28 29 3b 0a 20 20 20 a').show();.
- 000046d0: 20 20 20 20 20 7d 29 3b 0a 20 20 20 20 20 20 20 });.
- 000046e0: 20 72 65 74 75 72 6e 20 73 6f 63 6b 65 74 2e 6f return socket.o
- 000046f0: 6e 28 27 64 69 73 63 6f 6e 6e 65 63 74 27 2c 20 n('disconnect',
- 00004700: 66 75 6e 63 74 69 6f 6e 28 29 20 7b 0a 20 20 20 function() {.
- 00004710: 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 28 return $(
- 00004720: 27 23 72 65 66 72 65 73 68 6c 69 6e 6b 20 61 27 '#refreshlink a'
- 00004730: 29 2e 68 69 64 65 28 29 3b 0a 20 20 20 20 20 20 ).hide();.
- 00004740: 20 20 7d 29 3b 0a 20 20 20 20 20 20 7d 29 3b 0a });. });.
- 00004750: 20 20 20 20 20 20 24 28 27 23 6d 73 67 62 6f 78 $('#msgbox
- 00004760: 27 29 2e 6b 65 79 64 6f 77 6e 28 66 75 6e 63 74 ').keydown(funct
- 00004770: 69 6f 6e 28 65 76 65 6e 74 29 20 7b 0a 20 20 20 ion(event) {.
- 00004780: 20 20 20 20 20 76 61 72 20 6d 65 73 73 61 67 65 var message
- 00004790: 3b 0a 20 20 20 20 20 20 20 20 69 66 20 28 65 76 ;. if (ev
- 000047a0: 65 6e 74 2e 6b 65 79 43 6f 64 65 20 3d 3d 3d 20 ent.keyCode ===
- 000047b0: 31 33 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 13) {.
- 000047c0: 65 76 65 6e 74 2e 70 72 65 76 65 6e 74 44 65 66 event.preventDef
- 000047d0: 61 75 6c 74 28 29 3b 0a 20 20 20 20 20 20 20 20 ault();.
- 000047e0: 20 20 6d 65 73 73 61 67 65 20 3d 20 24 28 27 23 message = $('#
- 000047f0: 6d 73 67 62 6f 78 27 29 2e 76 61 6c 28 29 3b 0a msgbox').val();.
- 00004800: 20 20 20 20 20 20 20 20 20 20 24 28 27 23 6d 73 $('#ms
- 00004810: 67 62 6f 78 27 29 2e 76 61 6c 28 27 27 29 3b 0a gbox').val('');.
- 00004820: 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e return
- 00004830: 20 73 6f 63 6b 65 74 2e 65 6d 69 74 28 27 63 6c socket.emit('cl
- 00004840: 69 65 6e 74 2d 73 65 6e 64 2d 6d 65 73 73 61 67 ient-send-messag
- 00004850: 65 27 2c 20 7b 0a 20 20 20 20 20 20 20 20 20 20 e', {.
- 00004860: 20 20 73 65 73 73 69 6f 6e 69 64 3a 20 73 65 73 sessionid: ses
- 00004870: 73 69 6f 6e 69 64 2c 0a 20 20 20 20 20 20 20 20 sionid,.
- 00004880: 20 20 20 20 6d 65 73 73 61 67 65 3a 20 6d 65 73 message: mes
- 00004890: 73 61 67 65 0a 20 20 20 20 20 20 20 20 20 20 7d sage. }
- 000048a0: 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 );. }.
- 000048b0: 20 20 20 7d 29 3b 0a 20 20 20 20 20 20 73 6f 63 });. soc
- 000048c0: 6b 65 74 2e 6f 6e 28 27 63 6c 69 65 6e 74 2d 72 ket.on('client-r
- 000048d0: 65 63 65 69 76 65 2d 6d 65 73 73 61 67 65 27 2c eceive-message',
- 000048e0: 20 66 75 6e 63 74 69 6f 6e 28 64 61 74 61 29 20 function(data)
- 000048f0: 7b 0a 20 20 20 20 20 20 20 20 76 61 72 20 6d 65 {. var me
- 00004900: 73 73 61 67 65 2c 20 75 73 65 72 3b 0a 20 20 20 ssage, user;.
- 00004910: 20 20 20 20 20 6d 65 73 73 61 67 65 20 3d 20 64 message = d
- 00004920: 61 74 61 2e 6d 65 73 73 61 67 65 3b 0a 20 20 20 ata.message;.
- 00004930: 20 20 20 20 20 75 73 65 72 20 3d 20 64 61 74 61 user = data
- 00004940: 2e 75 73 65 72 3b 0a 20 20 20 20 20 20 20 20 68 .user;. h
- 00004950: 74 6d 6c 20 3d 20 27 3c 70 20 63 6c 61 73 73 3d tml = '<p class=
- 00004960: 5c 27 63 68 61 74 2d 6d 65 73 73 61 67 65 20 27 \'chat-message '
- 00004970: 20 2b 20 75 73 65 72 2e 74 79 70 65 20 2b 20 27 + user.type + '
- 00004980: 5c 27 3e 27 3b 0a 20 20 20 20 20 20 20 20 69 66 \'>';. if
- 00004990: 20 28 75 73 65 72 2e 6e 61 6d 65 20 21 3d 3d 20 (user.name !==
- 000049a0: 27 53 45 52 56 45 52 27 29 20 7b 0a 20 20 20 20 'SERVER') {.
- 000049b0: 20 20 20 20 20 20 68 74 6d 6c 20 2b 3d 20 27 3c html += '<
- 000049c0: 73 70 61 6e 20 63 6c 61 73 73 3d 5c 27 75 73 65 span class=\'use
- 000049d0: 72 5c 27 3e 27 20 2b 20 75 73 65 72 2e 6e 61 6d r\'>' + user.nam
- 000049e0: 65 20 2b 20 27 3a 20 3c 2f 73 70 61 6e 3e 27 3b e + ': </span>';
- 000049f0: 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 . }.
- 00004a00: 20 20 20 68 74 6d 6c 20 2b 3d 20 70 61 72 73 65 html += parse
- 00004a10: 4d 65 73 73 61 67 65 28 6d 65 73 73 61 67 65 29 Message(message)
- 00004a20: 20 2b 20 27 3c 2f 70 3e 27 3b 0a 20 20 20 20 20 + '</p>';.
- 00004a30: 20 20 20 72 65 74 75 72 6e 20 24 28 27 23 63 68 return $('#ch
- 00004a40: 61 74 62 6f 78 27 29 2e 68 74 6d 6c 28 68 74 6d atbox').html(htm
- 00004a50: 6c 20 2b 20 24 28 27 23 63 68 61 74 62 6f 78 27 l + $('#chatbox'
- 00004a60: 29 2e 68 74 6d 6c 28 29 29 3b 0a 20 20 20 20 20 ).html());.
- 00004a70: 20 7d 29 3b 0a 20 20 20 20 20 20 72 65 74 75 72 });. retur
- 00004a80: 6e 20 73 6f 63 6b 65 74 2e 6f 6e 28 27 73 65 74 n socket.on('set
- 00004a90: 63 68 61 6e 6e 65 6c 73 27 2c 20 66 75 6e 63 74 channels', funct
- 00004aa0: 69 6f 6e 28 64 61 74 61 29 20 7b 0a 20 20 20 20 ion(data) {.
- 00004ab0: 20 20 20 20 63 68 61 6e 6e 65 6c 73 20 3d 20 64 channels = d
- 00004ac0: 61 74 61 2e 63 68 61 6e 6e 65 6c 73 3b 0a 20 20 ata.channels;.
- 00004ad0: 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 28 27 return $('
- 00004ae0: 23 63 68 61 6e 6e 65 6c 73 27 29 2e 68 74 6d 6c #channels').html
- 00004af0: 28 27 43 68 61 6e 6e 65 6c 73 3a 20 27 20 2b 20 ('Channels: ' +
- 00004b00: 63 68 61 6e 6e 65 6c 73 2e 6a 6f 69 6e 28 27 2c channels.join(',
- 00004b10: 20 27 29 29 3b 0a 20 20 20 20 20 20 7d 29 3b 0a '));. });.
- 00004b20: 20 20 20 20 7d 29 3b 0a 20 20 20 20 73 6f 63 6b });. sock
- 00004b30: 65 74 2e 65 6d 69 74 28 27 67 65 74 2d 63 68 61 et.emit('get-cha
- 00004b40: 74 2d 64 61 74 61 27 2c 20 7b 7d 29 3b 0a 20 20 t-data', {});.
- 00004b50: 7d 29 3b 0a 7d 3b 0a 0a 69 6e 69 74 67 61 6d 65 });.};..initgame
- 00004b60: 20 3d 20 66 75 6e 63 74 69 6f 6e 28 29 20 7b 0a = function() {.
- 00004b70: 20 20 76 61 72 20 73 74 61 72 74 58 2c 20 73 74 var startX, st
- 00004b80: 61 72 74 59 3b 0a 20 20 63 61 6e 76 61 73 20 3d artY;. canvas =
- 00004b90: 20 64 6f 63 75 6d 65 6e 74 2e 67 65 74 45 6c 65 document.getEle
- 00004ba0: 6d 65 6e 74 42 79 49 64 28 27 67 61 6d 65 43 61 mentById('gameCa
- 00004bb0: 6e 76 61 73 27 29 3b 0a 20 20 63 74 78 20 3d 20 nvas');. ctx =
- 00004bc0: 63 61 6e 76 61 73 2e 67 65 74 43 6f 6e 74 65 78 canvas.getContex
- 00004bd0: 74 28 27 32 64 27 29 3b 0a 20 20 64 69 76 43 61 t('2d');. divCa
- 00004be0: 6e 76 61 73 20 3d 20 64 6f 63 75 6d 65 6e 74 2e nvas = document.
- 00004bf0: 67 65 74 45 6c 65 6d 65 6e 74 42 79 49 64 28 27 getElementById('
- 00004c00: 67 61 6d 65 27 29 3b 0a 20 20 63 61 6e 76 61 73 game');. canvas
- 00004c10: 2e 77 69 64 74 68 20 3d 20 64 69 76 43 61 6e 76 .width = divCanv
- 00004c20: 61 73 2e 6f 66 66 73 65 74 57 69 64 74 68 20 2d as.offsetWidth -
- 00004c30: 20 36 3b 0a 20 20 63 61 6e 76 61 73 2e 68 65 69 6;. canvas.hei
- 00004c40: 67 68 74 20 3d 20 64 69 76 43 61 6e 76 61 73 2e ght = divCanvas.
- 00004c50: 6f 66 66 73 65 74 48 65 69 67 68 74 20 2d 20 36 offsetHeight - 6
- 00004c60: 3b 0a 20 20 6b 65 79 73 20 3d 20 6e 65 77 20 4b ;. keys = new K
- 00004c70: 65 79 73 3b 0a 20 20 72 6f 6f 6d 20 3d 20 7b 0a eys;. room = {.
- 00004c80: 20 20 20 20 77 69 64 74 68 3a 20 32 32 30 30 2c width: 2200,
- 00004c90: 0a 20 20 20 20 68 65 69 67 68 74 3a 20 32 32 30 . height: 220
- 00004ca0: 30 0a 20 20 7d 3b 0a 20 20 72 6f 6f 6d 2e 6d 61 0. };. room.ma
- 00004cb0: 70 20 3d 20 6e 65 77 20 47 61 6d 65 2e 4d 61 70 p = new Game.Map
- 00004cc0: 28 72 6f 6f 6d 2e 77 69 64 74 68 2c 20 72 6f 6f (room.width, roo
- 00004cd0: 6d 2e 68 65 69 67 68 74 29 3b 0a 20 20 72 6f 6f m.height);. roo
- 00004ce0: 6d 2e 6d 61 70 2e 67 65 6e 65 72 61 74 65 28 29 m.map.generate()
- 00004cf0: 3b 0a 20 20 73 74 61 72 74 58 20 3d 20 4d 61 74 ;. startX = Mat
- 00004d00: 68 2e 72 6f 75 6e 64 28 4d 61 74 68 2e 72 61 6e h.round(Math.ran
- 00004d10: 64 6f 6d 28 29 20 2a 20 28 72 6f 6f 6d 2e 77 69 dom() * (room.wi
- 00004d20: 64 74 68 20 2d 20 33 32 29 29 3b 0a 20 20 73 74 dth - 32));. st
- 00004d30: 61 72 74 59 20 3d 20 4d 61 74 68 2e 72 6f 75 6e artY = Math.roun
- 00004d40: 64 28 4d 61 74 68 2e 72 61 6e 64 6f 6d 28 29 20 d(Math.random()
- 00004d50: 2a 20 28 72 6f 6f 6d 2e 68 65 69 67 68 74 20 2d * (room.height -
- 00004d60: 20 33 32 29 29 3b 0a 20 20 6c 6f 63 61 6c 50 6c 32));. localPl
- 00004d70: 61 79 65 72 4e 61 6d 65 20 3d 20 75 73 65 72 6e ayerName = usern
- 00004d80: 61 6d 65 3b 0a 20 20 6c 6f 63 61 6c 50 6c 61 79 ame;. localPlay
- 00004d90: 65 72 20 3d 20 6e 65 77 20 50 6c 61 79 65 72 28 er = new Player(
- 00004da0: 73 74 61 72 74 58 2c 20 73 74 61 72 74 59 2c 20 startX, startY,
- 00004db0: 6c 6f 63 61 6c 50 6c 61 79 65 72 4e 61 6d 65 2c localPlayerName,
- 00004dc0: 20 27 62 6c 61 63 6b 27 29 3b 0a 20 20 6c 6f 63 'black');. loc
- 00004dd0: 61 6c 50 6c 61 79 65 72 2e 69 64 20 3d 20 27 2f alPlayer.id = '/
- 00004de0: 23 27 20 2b 20 73 6f 63 6b 65 74 2e 69 64 3b 0a #' + socket.id;.
- 00004df0: 20 20 63 61 6d 65 72 61 20 3d 20 6e 65 77 20 47 camera = new G
- 00004e00: 61 6d 65 2e 43 61 6d 65 72 61 28 30 2c 20 30 2c ame.Camera(0, 0,
- 00004e10: 20 63 61 6e 76 61 73 2e 77 69 64 74 68 2c 20 63 canvas.width, c
- 00004e20: 61 6e 76 61 73 2e 68 65 69 67 68 74 2c 20 72 6f anvas.height, ro
- 00004e30: 6f 6d 2e 77 69 64 74 68 2c 20 72 6f 6f 6d 2e 68 om.width, room.h
- 00004e40: 65 69 67 68 74 29 3b 0a 20 20 63 61 6d 65 72 61 eight);. camera
- 00004e50: 2e 66 6f 6c 6c 6f 77 28 6c 6f 63 61 6c 50 6c 61 .follow(localPla
- 00004e60: 79 65 72 2c 20 63 61 6e 76 61 73 2e 77 69 64 74 yer, canvas.widt
- 00004e70: 68 20 2f 20 32 2c 20 63 61 6e 76 61 73 2e 68 65 h / 2, canvas.he
- 00004e80: 69 67 68 74 20 2f 20 32 29 3b 0a 20 20 72 65 6d ight / 2);. rem
- 00004e90: 6f 74 65 50 6c 61 79 65 72 73 20 3d 20 5b 5d 3b otePlayers = [];
- 00004ea0: 0a 20 20 73 6f 63 6b 65 74 2e 65 6d 69 74 28 27 . socket.emit('
- 00004eb0: 6e 65 77 20 70 6c 61 79 65 72 27 2c 20 7b 0a 20 new player', {.
- 00004ec0: 20 20 20 78 3a 20 6c 6f 63 61 6c 50 6c 61 79 65 x: localPlaye
- 00004ed0: 72 2e 78 2c 0a 20 20 20 20 79 3a 20 6c 6f 63 61 r.x,. y: loca
- 00004ee0: 6c 50 6c 61 79 65 72 2e 79 2c 0a 20 20 20 20 6e lPlayer.y,. n
- 00004ef0: 61 6d 65 3a 20 6c 6f 63 61 6c 50 6c 61 79 65 72 ame: localPlayer
- 00004f00: 4e 61 6d 65 0a 20 20 7d 29 3b 0a 20 20 72 65 74 Name. });. ret
- 00004f10: 75 72 6e 20 77 69 6e 64 6f 77 2e 72 65 71 75 65 urn window.reque
- 00004f20: 73 74 41 6e 69 6d 46 72 61 6d 65 28 74 69 63 6b stAnimFrame(tick
- 00004f30: 29 3b 0a 7d 3b 0a 0a 6c 6f 67 69 6e 20 3d 20 66 );.};..login = f
- 00004f40: 75 6e 63 74 69 6f 6e 28 29 20 7b 0a 20 20 72 65 unction() {. re
- 00004f50: 74 75 72 6e 20 73 61 66 65 28 66 75 6e 63 74 69 turn safe(functi
- 00004f60: 6f 6e 28 29 20 7b 0a 20 20 20 20 76 61 72 20 70 on() {. var p
- 00004f70: 61 73 73 77 6f 72 64 3b 0a 20 20 20 20 75 73 65 assword;. use
- 00004f80: 72 6e 61 6d 65 20 3d 20 24 28 27 23 75 73 65 72 rname = $('#user
- 00004f90: 6e 61 6d 65 27 29 2e 76 61 6c 28 29 3b 0a 20 20 name').val();.
- 00004fa0: 20 20 70 61 73 73 77 6f 72 64 20 3d 20 24 28 27 password = $('
- 00004fb0: 23 70 61 73 73 77 6f 72 64 27 29 2e 76 61 6c 28 #password').val(
- 00004fc0: 29 3b 0a 20 20 20 20 72 65 74 75 72 6e 20 73 6f );. return so
- 00004fd0: 63 6b 65 74 2e 65 6d 69 74 28 27 6c 6f 67 69 6e cket.emit('login
- 00004fe0: 27 2c 20 7b 0a 20 20 20 20 20 20 75 73 65 72 6e ', {. usern
- 00004ff0: 61 6d 65 3a 20 75 73 65 72 6e 61 6d 65 2c 0a 20 ame: username,.
- 00005000: 20 20 20 20 20 70 61 73 73 77 6f 72 64 3a 20 70 password: p
- 00005010: 61 73 73 77 6f 72 64 0a 20 20 20 20 7d 29 3b 0a assword. });.
- 00005020: 20 20 7d 29 3b 0a 7d 3b 0a 0a 72 65 67 69 73 74 });.};..regist
- 00005030: 65 72 20 3d 20 66 75 6e 63 74 69 6f 6e 28 29 20 er = function()
- 00005040: 7b 0a 20 20 72 65 74 75 72 6e 20 73 61 66 65 28 {. return safe(
- 00005050: 66 75 6e 63 74 69 6f 6e 28 29 20 7b 0a 20 20 20 function() {.
- 00005060: 20 76 61 72 20 70 61 73 73 77 6f 72 64 3b 0a 20 var password;.
- 00005070: 20 20 20 75 73 65 72 6e 61 6d 65 20 3d 20 24 28 username = $(
- 00005080: 27 23 75 73 65 72 6e 61 6d 65 27 29 2e 76 61 6c '#username').val
- 00005090: 28 29 3b 0a 20 20 20 20 70 61 73 73 77 6f 72 64 ();. password
- 000050a0: 20 3d 20 24 28 27 23 70 61 73 73 77 6f 72 64 27 = $('#password'
- 000050b0: 29 2e 76 61 6c 28 29 3b 0a 20 20 20 20 72 65 74 ).val();. ret
- 000050c0: 75 72 6e 20 73 6f 63 6b 65 74 2e 65 6d 69 74 28 urn socket.emit(
- 000050d0: 27 72 65 67 69 73 74 65 72 27 2c 20 7b 0a 20 20 'register', {.
- 000050e0: 20 20 20 20 75 73 65 72 6e 61 6d 65 3a 20 75 73 username: us
- 000050f0: 65 72 6e 61 6d 65 2c 0a 20 20 20 20 20 20 70 61 ername,. pa
- 00005100: 73 73 77 6f 72 64 3a 20 70 61 73 73 77 6f 72 64 ssword: password
- 00005110: 0a 20 20 20 20 7d 29 3b 0a 20 20 7d 29 3b 0a 7d . });. });.}
- 00005120: 3b 0a 0a 6c 6f 67 6f 75 74 20 3d 20 66 75 6e 63 ;..logout = func
- 00005130: 74 69 6f 6e 28 29 20 7b 0a 20 20 72 65 74 75 72 tion() {. retur
- 00005140: 6e 20 6c 6f 63 61 74 69 6f 6e 2e 68 72 65 66 20 n location.href
- 00005150: 2b 3d 20 27 27 3b 0a 7d 3b 0a += '';.};.
- 00000000: 9e b6 dc 39 e3 e3 92 af 59 d8 d5 41 ...9....Y..A
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement