function onUpdate() { var movex = 0; var movey = 0; var k = ''; var f = null; if (isGameOver) { field.pitch = 0; field.yaw = 0; chart.movex = 0; chart.movey = 0; photons.fire = false; if (keys.key === '\e') { loop.enterPause(); } return; } if (keys.left) { --movex; } if (keys.right) { ++movex; } if (keys.up) { --movey; } if (keys.down) { ++movey; } /* Only fire missiles if not in hyperspace or hyperwarp. */ if (!hyperwarp.engaged() && !hyperwarp.inHyperspace() && field.speed < 70.0) { photons.fire = keys.fire; } else { photons.fire = false; } if (!chart.isShown() || hyperwarp.engaged()) { field.yaw = movex; field.pitch = -movey; chart.movex = 0; chart.movey = 0; } else { field.yaw = 0; field.pitch = 0; chart.movex = movex; chart.movey = movey; } k = keys.key; if (k !== '') { if (typeof keytable[k] === 'function') { keytable[k](k); } } }
keytable['h'] = keytable['H'] = function () { if (hyperwarp.engaged()) { console.write('Hyperwarp aborted.'); engines.setSpeed(0); } else { console.write('Hyperwarp engines engaged.'); hyperwarp.engage(); } };
function engineControl(k) { if (hyperwarp.engaged()) { console.write('Hyperwarp aborted.'); } engines.setSpeed(parseInt(k)); }