Flipper Pinball Game
About this app
A fun and colorful single-page flipper pinball game.
Flipper Pinball Game
Related apps
Put this on your site
Source
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>Flipper Pinball Game</title>
<meta name="description" content="A fun and colorful single-page flipper pinball game.">
<meta name="keywords" content="pinball, game, flipper, HTML, CSS, JavaScript">
<link href="https://fonts.googleapis.com/css?family=Press+Start+2P" rel="stylesheet">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet"
integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">
<link href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet">
<script type="text/javascript">
try {
var ball = document.querySelector('.ball');
var game = document.querySelector('.game');
var xSpeed = 2;
var ySpeed = 3;
function loop() {
var gameRect = game.getBoundingClientRect();
var ballRect = ball.getBoundingClientRect();
if (ballRect.left + xSpeed < gameRect.left || ballRect.right + xSpeed > gameRect.right) {
xSpeed = -xSpeed;
}
if (ballRect.top + ySpeed < gameRect.top || ballRect.bottom + ySpeed > gameRect.bottom) {
ySpeed = -ySpeed;
}
ball.style.left = ballRect.left - gameRect.left + xSpeed + 'px';
ball.style.top = ballRect.top - gameRect.top + ySpeed + 'px';
requestAnimationFrame(loop);
}
loop();
var leftFlipper = document.querySelector('.left-flipper');
var rightFlipper = document.querySelector('.right-flipper');
document.addEventListener('keydown', function(event) {
if (event.key === 'ArrowLeft') {
leftFlipper.classList.add('flip');
}
if (event.key === 'ArrowRight') {
rightFlipper.classList.add('flip');
}
});
document.addEventListener('keyup', function(event) {
if (event.key === 'ArrowLeft') {
leftFlipper.classList.remove('flip');
}
if (event.key === 'ArrowRight') {
rightFlipper.classList.remove('flip');
}
});
} catch (error) {
throw error;
}
</script>
<style>
.game {
position: relative;
height: 600px;
width: 400px;
margin: 0 auto;
background: linear-gradient(to bottom, #3a7bd5, #3a6073);
}
.ball {
position: absolute;
top: 50%;
left: 50%;
width: 20px;
height: 20px;
background: white;
border-radius: 50%;
}
.flipper {
position: absolute;
bottom: 20px;
width: 70px;
height: 20px;
background: #FFD700;
border-radius: 50% 50% 0 0;
}
.left-flipper {
left: 50px;
transform-origin: center bottom;
}
.right-flipper {
right: 50px;
transform: scaleX(-1);
transform-origin: center bottom;
}
.flipper.flip {
transform: rotate(-30deg);
}
.right-flipper.flip {
transform: scaleX(-1) rotate(-30deg);
}
body {
background-color: #000;
height: 100vh;
display: flex;
align-items: center;
justify-content: center;
color: white;
font-family: 'Press Start 2P', cursive;
}
</style>
</head>
<body>
<div id="main-container" class="container">
<div class="game">
<div class="ball"></div>
<div class="left-flipper flipper"></div>
<div class="right-flipper flipper"></div>
</div>
</div>
</body>
</html>
NEW APPS
These are apps made by the community!