Meta Description" name="description" />
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>SOUMEN PRO RACER HD</title>
<style>
body, html { margin: 0; padding: 0; width: 100%; height: 100%; overflow: hidden; background: #1b5e20; }
#gameCanvas { display: block; width: 100vw; height: 100vh; }
.ui { position: absolute; top: 0; left: 0; width: 100%; height: 100%; display: flex; flex-direction: column; justify-content: center; align-items: center; color: #fff; z-index: 10; font-family: 'Arial Black', sans-serif; }
.mode-btn { margin: 10px; padding: 20px 40px; font-size: 20px; border: 3px solid #fff; background: rgba(0,0,0,0.3); color: #fff; border-radius: 30px; cursor: pointer; }
</style>
</head>
<body>
<div class="ui" id="menu">
<h1>SOUMEN RACER</h1>
<button class="mode-btn" onclick="start(5)">SLOW (100 km/h)</button>
<button class="mode-btn" onclick="start(12)">MEDIUM (250 km/h)</button>
<button class="mode-btn" onclick="start(20)">INSANE (400 km/h)</button>
</div>
<canvas id="gameCanvas"></canvas>
<script>
const c = document.getElementById('gameCanvas'), ctx = c.getContext('2d');
let w, h, bikeX, game = false, speed, score = 0, tick = 0;
function resize() { w = c.width = window.innerWidth; h = c.height = window.innerHeight; }
window.onresize = resize; resize();
function start(s) { document.getElementById('menu').style.display = 'none'; speed = s; game = true; bikeX = w/2; }
function draw() {
ctx.fillStyle = '#2e7d32'; ctx.fillRect(0,0,w,h); // ঘাসের মাঠ
// লং হাইওয়ে রোড
ctx.fillStyle = '#444';
ctx.beginPath();
ctx.moveTo(w*0.3, h); ctx.lineTo(w*0.7, h);
ctx.lineTo(w*0.55, h*0.2); ctx.lineTo(w*0.45, h*0.2);
ctx.fill();
if(game) {
// থ্রিডি SOUMEN লোগো
ctx.fillStyle = 'rgba(255,255,255,0.1)';
ctx.font = 'bold 120px Arial';
ctx.textAlign = 'center';
ctx.fillText('SOUMEN', w/2, h*0.4);
// রিয়েলিস্টিক বাইক ড্রয়িং (Body & Shape)
ctx.fillStyle = '#00ff00';
// বাইকের বডি (Sports Bike Look)
ctx.beginPath();
ctx.moveTo(bikeX, h-150); ctx.lineTo(bikeX-30, h-100); ctx.lineTo(bikeX+30, h-100); ctx.fill();
// বাইকের চাকা
ctx.fillStyle = '#000';
ctx.beginPath(); ctx.arc(bikeX-20, h-90, 15, 0, Math.PI*2); ctx.fill();
ctx.beginPath(); ctx.arc(bikeX+20, h-90, 15, 0, Math.PI*2); ctx.fill();
score += Math.floor(speed);
ctx.fillStyle = '#fff'; ctx.font = '25px Arial';
ctx.fillText('SPEED: ' + (speed*20) + ' km/h', 100, 50);
ctx.fillText('SCORE: ' + score, 100, 90);
}
tick++;
requestAnimationFrame(draw);
}
window.ontouchmove = e => { bikeX = e.touches[0].clientX; };
draw();
</script>
</body>
</html>
1
1
3KB
3KB
183.0ms
208.0ms
183.0ms