3D Workspace
Home
Assets
Affiliate Program
Creator Program
Sign up/Log in
View Plans
DCC Bridge
Anonymous1771088054
02-19 13:42
Model Name
low poly farm 3d model
Tags
farm scene
game asset
game asset stylized
isometric farm
nature environment
nature environment game asset
nature environment game asset stylized
nature environment stylized
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!