This repository has been archived on 2025-03-26. You can view files and clone it, but cannot push or open issues or pull requests.
FlappyBird/bird.js
2021-12-13 14:35:18 -05:00

32 lines
No EOL
1 KiB
JavaScript

const birdElem = document.querySelector( "[data-bird]" )
const BIRD_SPEED = 0.5
const JUMP_DURATION = 150
let timeSinceLastJump = Number.POSITIVE_INFINITY
const setTop = ( top ) => birdElem.style.setProperty( "--bird-top", top )
const getTop = () => parseFloat( getComputedStyle( birdElem ).getPropertyValue( "--bird-top" ) )
const handleJump = ( event ) => {
if ( event.code === "Space" || event.type == "click") timeSinceLastJump = 0
}
export const setupBird = () => {
setTop( window.innerHeight / 2 )
document.removeEventListener( "keydown", handleJump )
document.addEventListener( "keydown", handleJump )
document.removeEventListener( "click", handleJump )
document.addEventListener( "click", handleJump )
}
export const updateBird = ( delta ) => {
if ( timeSinceLastJump < JUMP_DURATION )
setTop( getTop() - BIRD_SPEED * delta )
else
setTop( getTop() + BIRD_SPEED * delta )
timeSinceLastJump += delta
}
export const getBirdRect = () => birdElem.getBoundingClientRect()