3D Workspace
Home
Assets
Affiliate Program
Sign up/Log in
?
Upgrade
DCC Bridge
Anonymous1771088054
02-19 13:42
Model Name
low poly farm 3d model
Tags
nature & environment
game asset
stylized
Prompt
https://chatgpt.com/s/t_6991874ad5e48191baa2917ac3420f75 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>3D Survival V2</title> <style> body{margin:0;overflow:hidden;background:black} #ui{ position:absolute; top:10px;left:10px; background:white; padding:8px; border-radius:6px; font-family:sans-serif; } </style> </head> <body> <div id="ui"> Coins: 0<br> Wood: 0<br> Press SPACE to cut tree </div> <script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r128/three.min.js"></script> <script> let scene=new THREE.Scene(); scene.background=new THREE.Color(0x87ceeb); let camera=new THREE.PerspectiveCamera(75,innerWidth/innerHeight,0.1,1000); let renderer=new THREE.WebGLRenderer(); renderer.setSize(innerWidth,innerHeight); document.body.appendChild(renderer.domElement); /* light */ let light=new THREE.DirectionalLight(0xffffff,1); light.position.set(10,20,10); scene.add(light); /* ground */ let ground=new THREE.Mesh( new THREE.PlaneGeometry(100,100), new THREE.MeshStandardMaterial({color:0x228B22}) ); ground.rotation.x=-Math.PI/2; scene.add(ground); /* player */ let player=new THREE.Mesh( new THREE.BoxGeometry(1,1,1), new THREE.MeshStandardMaterial({color:0xff4444}) ); player.position.y=0.5; scene.add(player); /* barn */ let barn=new THREE.Mesh( new THREE.BoxGeometry(5,3,5), new THREE.MeshStandardMaterial({color:0x8b4513}) ); barn.position.set(15,1.5,15); scene.add(barn); /* animal */ let animal=new THREE.Mesh( new THREE.BoxGeometry(1.2,1,1), new THREE.MeshStandardMaterial({color:0xffffff}) ); animal.position.set(-5,0.5,-5); scene.add(animal); /* trees */ let trees=[]; for(let i=0;i<8;i++){ let t=new THREE.Mesh( new THREE.CylinderGeometry(0.5,0.5,3), new THREE.MeshStandardMaterial({color:0x006400}) ); t.position.set(Math.random()*30-15,1.5,Math.random()*30-15); scene.add(t); trees.push(t); } camera.position.set(0,5,8); let keys={}; let coins=0; let wood=0; const ui=document.getElementById("ui"); document.addEventListener("keydown",e=>{ keys[e.key.toLowerCase()]=true; /* cut tree */ if(e.code==="Space"){ trees.forEach((t,i)=>{ if(t && player.position.distanceTo(t.position)<2){ scene.remove(t); trees[i]=null; wood+=1; } }); } }); document.addEventListener("keyup",e=>keys[e.key.toLowerCase()]=false); function update(){ let speed=0.15; /* movement */ if(keys["w"]) player.position.z-=speed; if(keys["s"]) player.position.z+=speed; if(keys["a"]) player.position.x-=speed; if(keys["d"]) player.position.x+=speed; /* camera follow */ camera.position.x=player.position.x; camera.position.z=player.position.z+8; camera.lookAt(player.position); /* animal move */ animal.position.x+=Math.sin(Date.now()*0.001)*0.02; animal.position.z+=Math.cos(Date.now()*0.001)*0.02; /* sell wood near barn */ if(player.position.distanceTo(barn.position)<4 && wood>0){ coins+=wood*10; wood=0; } /* UI */ ui.innerHTML= "Coins: "+coins+ "<br>Wood: "+wood+ "<br>Press SPACE to cut tree"; } function animate(){ requestAnimationFrame(animate); update(); renderer.render(scene,camera); } animate();
Detailed Info
Related Models
Enter invite code
Enter invite code to get credits!