Share this result

Previews are deleted daily. Get a permanent share link sent to your inbox:
Script
<!DOCTYPE html> <html><head><meta name="viewport" content="width=device-width, initial-scale=1"> <script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r128/three.min.js"></script> <style>body{margin:0;background:#000;color:white;font-family:sans-serif;text-align:center;overflow:hidden}button{padding:16px 22px;margin:4px;font-size:22px;border:none;border-radius:50%;background:#ff9800;color:white;box-shadow:0 4px 0 #e65100}button:active{transform:translateY(3px);box-shadow:none}#info{position:fixed;top:5px;left:0;right:0;z-index:10;background:rgba(0,0,0,.7);padding:5px}#ctrl{position:fixed;bottom:10px;left:0;right:0;z-index:10}</style></head> <body> <div id="info"><b>🌾 SAWAH 3D - BISA DIGERAKIN 🌾</b><br>β›½ <span id="bensin">0</span>/3 | ❀️ <span id="nyawa">3</span><br><span id="cerita">Pencet tombol oren buat jalan! Ambil bensin kuning!</span></div> <div id="ctrl"> <button onclick="gerak(0,-1)">⬆</button><br> <button onclick="gerak(-1,0)">β¬…</button> <button onclick="gerak(1,0)">➑</button><br> <button onclick="gerak(0,1)">⬇</button> </div> <script> let scene=new THREE.Scene(); scene.background=new THREE.Color(0x0a1a2a); let camera=new THREE.PerspectiveCamera(60,window.innerWidth/window.innerHeight,0.1,100); camera.position.set(0,12,12); camera.lookAt(0,0,0); let renderer=new THREE.WebGLRenderer(); renderer.setSize(window.innerWidth,window.innerHeight); document.body.appendChild(renderer.domElement); scene.add(new THREE.AmbientLight(0xffffff,0.9)); let dir=new THREE.DirectionalLight(0xffffff,0.8); dir.position.set(5,10,5); scene.add(dir); let ground=new THREE.Mesh(new THREE.PlaneGeometry(30,30), new THREE.MeshLambertMaterial({color:0x2e7d32})); ground.rotation.x=-Math.PI/2; scene.add(ground); let player=new THREE.Mesh(new THREE.BoxGeometry(1,1.8,1), new THREE.MeshLambertMaterial({color:0xff9800})); player.position.set(0,0.9,0); scene.add(player); let head=new THREE.Mesh(new THREE.SphereGeometry(0.55), new THREE.MeshLambertMaterial({color:0xffcc80})); head.position.set(0,2.2,0); scene.add(head); let motor=new THREE.Mesh(new THREE.BoxGeometry(2,0.6,0.8), new THREE.MeshLambertMaterial({color:0x111111})); motor.position.set(2,0.4,2); scene.add(motor); for(let p of [[-8,-8],[8,-8],[-8,8],[8,8],[0,-9]]){ let t=new THREE.Mesh(new THREE.CylinderGeometry(0.4,0.4,2), new THREE.MeshLambertMaterial({color:0x5d4037})); t.position.set(p[0],1,p[1]); scene.add(t); let l=new THREE.Mesh(new THREE.SphereGeometry(1.5), new THREE.MeshLambertMaterial({color:0x1b5e20})); l.position.set(p[0],3,p[1]); scene.add(l); } let bensinPos=[[-6,0],[0,-6],[6,6]]; let bensinObjs=[]; let bensin=0, nyawa=3; for(let b of bensinPos){ let m=new THREE.Mesh(new THREE.CylinderGeometry(0.5,0.5,1), new THREE.MeshLambertMaterial({color:0xffeb3b})); m.position.set(b[0],0.5,b[1]); scene.add(m); bensinObjs.push(m); } let pocong=new THREE.Mesh(new THREE.CapsuleGeometry(0.5,1.5,4,8), new THREE.MeshLambertMaterial({color:0xffffff})); pocong.position.set(-6,1.2,6); scene.add(pocong); let rumah=new THREE.Mesh(new THREE.BoxGeometry(3,2,3), new THREE.MeshLambertMaterial({color:0xffcc80})); rumah.position.set(9,1,-9); scene.add(rumah); let atap=new THREE.Mesh(new THREE.ConeGeometry(2.5,1.5,4), new THREE.MeshLambertMaterial({color:0xd32f2f})); atap.position.set(9,2.7,-9); scene.add(atap); function gerak(dx,dz){ player.position.x+=dx*1.8; player.position.z+=dz*1.8; head.position.x=player.position.x; head.position.z=player.position.z; camera.position.set(player.position.x,12,player.position.z+12); camera.lookAt(player.position.x,0,player.position.z); for(let i=bensinObjs.length-1;i>=0;i--){ let m=bensinObjs[i]; if(Math.abs(player.position.x-m.position.x)<1.2 && Math.abs(player.position.z-m.position.z)<1.2){ scene.remove(m); bensinObjs.splice(i,1); bensin++; document.getElementById("bensin").innerText=bensin; document.getElementById("cerita").innerText="DAPET BENSIN! "+bensin+"/3"; if(bensin>=3) document.getElementById("cerita").innerText="πŸŽ‰ MENANG! Lu dapet 3 bensin!"; } } if(Math.abs(player.position.x-pocong.position.x)<1.5 && Math.abs(player.position.z-pocong.position.z)<1.5){ nyawa--; document.getElementById("nyawa").innerText=nyawa; document.getElementById("cerita").innerText="πŸ‘» POCONG! Nyawa -1! Sisa "+nyawa; player.position.set(0,0.9,0); head.position.set(0,2.2,0); if(nyawa<=0) document.getElementById("cerita").innerText="πŸ’€ GAME OVER!"; } } // BISA PAKE KEYBOARD JUGA document.addEventListener("keydown",e=>{ if(e.key=="ArrowUp"||e.key=="w") gerak(0,-1); if(e.key=="ArrowDown"||e.key=="s") gerak(0,1); if(e.key=="ArrowLeft"||e.key=="a") gerak(-1,0); if(e.key=="ArrowRight"||e.key=="d") gerak(1,0); }); function animate(){ requestAnimationFrame(animate); pocong.rotation.y+=0.02; bensinObjs.forEach(m=>m.rotation.y+=0.05); renderer.render(scene,camera); } animate(); </script> </body></html>
Landing Page
This ad does not have a landing page available
Network Timeline
Performance Summary

2

Requests

2

Domains

124KB

Transfer Size

594KB

Content Size

360.0ms

Dom Content Loaded

388.0ms

First Paint

360.0ms

Load Time
Domain Breakdown
Transfer Size (bytes)
Loading...
Content Size (bytes)
Loading...
Header Size (bytes)
Loading...
Requests
Loading...
Timings (ms)
Loading...
Total Time
Loading...
Content Breakdown
Transfer Size (bytes)
Loading...
Content Size (bytes)
Loading...
Header Size (bytes)
Loading...
Requests
Loading...