littlejsengine
Version:
LittleJS - Tiny and Fast HTML5 Game Engine
64 lines (57 loc) • 1.84 kB
JavaScript
function gameUpdate()
{
touchGamepadEnable = 1;
if (isTouchDevice || isUsingGamepad)
{
if (isTouchDevice)
{
debugText('Touch Gamepad Mode', vec2(0,5));
// touch input is routed to mouse
debugPoint(mousePos, mouseIsDown(0) ? RED : YELLOW, 1);
}
else
{
debugText('Gamepad Mode', vec2(0,5));
debugText('Primary Gamepad: ' + gamepadPrimary, vec2(0,4));
}
// analog sticks
for (let i=2; i--;)
{
const stick = gamepadStick(i);
const pos = vec2(i?3:-3, 1);
debugCircle(pos, 4, WHITE);
debugLine(pos, pos.add(stick.scale(2)), GREEN);
}
// buttons
for (let i=16; i--;)
{
const pos = vec2(-7 + i%8*2, -3 - (i/8|0)*2);
if (gamepadIsDown(i))
debugCircle(pos, 2, RED, 0, 1);
debugCircle(pos, 2, WHITE);
debugText(i, pos);
}
}
else
{
debugText('Mouse and Keyboard Mode', vec2(0,5));
// keyboard key (space bar)
debugRect(vec2(), vec2(4), WHITE);
if (keyIsDown('Space'))
debugRect(vec2(), vec2(4), RED, 0, 0, 1);
// keyboard direction (arrow keys or WASD)
const inputDirection = keyDirection();
debugLine(vec2(), inputDirection.scale(2), GREEN);
// mouse pos
debugPoint(mousePos, mouseIsDown(0) ? RED : YELLOW, 1);
// mouse buttons
for (let i=3; i--;)
{
const pos = vec2(-2 + i*2, -5);
if (mouseIsDown(i))
debugCircle(pos, 2, RED, 0, 1);
debugCircle(pos, 2, WHITE);
debugText(i, pos);
}
}
}