使用WASD键移动对象

  • 示例
  • HTML
  • CSS
  • JS

更多有趣示例 尽在知屋安砖社区

示例

HTML

<body><h1>use WASD to move the cube</h1><div class="three"></div>
</body>

CSS

three{width: 800px;height: 800px;background: grey;
}

JS

// https://threejs.org/docs/index.html#manual/en/introduction/Creating-a-sceneconst three = document.querySelector('.three');var scene = new THREE.Scene();
var camera = new THREE.PerspectiveCamera( 75, 1, 0.1, 1000 );var renderer = new THREE.WebGLRenderer();
// renderer.setSize( window.innerWidth, window.innerHeight );
renderer.setSize( 800, 800);three.appendChild( renderer.domElement );var geometry = new THREE.BoxGeometry( 6, 6, 6);
var material = new THREE.MeshLambertMaterial( { color: 0x0000ff } );
var cube = new THREE.Mesh( geometry, material );
cube.position.y = 25;
scene.add( cube );var geometry = new THREE.TorusKnotGeometry( 3.0, .9, 100, 16 );
var material = new THREE.MeshLambertMaterial( { color: 0xff00ff } );
var torusKnot = new THREE.Mesh( geometry, material );
torusKnot.position.y = 30;
torusKnot.position.x = -30;
scene.add( torusKnot );var light = new THREE.AmbientLight( 0x404040 ); // soft white light
scene.add( light );const pointLight =new THREE.PointLight(0xFFFFFF);// set its position
pointLight.position.x = 10;
pointLight.position.y = 50;
pointLight.position.z = 130;// add to the scene
scene.add(pointLight);camera.position.z = 50;function animate() {requestAnimationFrame( animate );torusKnot.rotation.x += 0.01;torusKnot.rotation.y += 0.01;// cube.rotation.x += 0.01;// cube.rotation.y += 0.01;renderer.render( scene, camera );
}
animate();const step = 2;window.addEventListener('keydown', e => {if (e.code === 'KeyW') cube.position.y += step;if (e.code === 'KeyS') cube.position.y -= step;if (e.code === 'KeyA') cube.position.x -= step;if (e.code === 'KeyD') cube.position.x += step;// if (e.code === 'ArrowUp'){//   cube.position.y += 1;// }
})

使用WASD键移动对象相关推荐

  1. python字典中的键是什么_在python字典中作为键的对象

    我试图在python字典中使用一个对象作为键,但是它的行为方式让我无法完全理解. 首先,我创建一个以对象为键的字典:package_disseminators = { ContentType(&quo ...

  2. WASD键控制物体移动

    脚本挂在物体上 using System.Collections; using System.Collections.Generic; using UnityEngine; public class ...

  3. EF ObjectStateManager 中已存在具有同一键的对象。ObjectStateManager 无法跟踪具有相同键的多个对象...

    今天编码过程中遇到这个问题,用EF 更新数据库,将组织好的数据传递到ef的上下文中,本以为附加上去更新,一切就ok了,不过事实证明没这么顺利 ----------------------------- ...

  4. java 上下键_java-同时使用WASD和方向键

    我正在开发Processing(在 Java上运行)中的两人游戏.一个用户将使用WASD键控制其角色,而另一个用户将使用箭头键控制移动.我遇到的问题是,当按下箭头时,使用keyPressed会否定WA ...

  5. containskey java_Java Map.containsKey()方法:判断Map集合对象中是否包含指定的键名

    搜索热词 Java 集合类中的 Map.containsKey() 方法判断 Map 集合对象中是否包含指定的键名.如果 Map 集合中包含指定的键名,则返回 true,否则返回 false. 语法: ...

  6. threejs以第一人称进行人物漫游,以wasd来控制人的模型,不使用PointerLockControls,需要碰撞检测。可以使用插件

    Model: GPT-4 3 / 3 我想在threejs以第一人称进行人物漫游,以wasd来控制人的模型.如何做,不适用PointerLockControls,需要碰撞检测.可以使用插件. 要在Th ...

  7. Asp.net 内置对象

    (1)简述ASP.NET内置对象. 答:ASP.NET提供了内置对象有Page.Request.Response.Application.Session.Server.Mail和Cookies.这些对 ...

  8. 将嵌套的Python字典转换为对象?

    我正在寻找一种优雅的方法来获取数据,该数据使用具有一些嵌套字典和列表(例如javascript样式的对象语法)的字典进行属性访问. 例如: >>> d = {'a': 1, 'b': ...

  9. INPUT type=password 元素 | input type=password 对象

    INPUT type=password 元素 | input type=password 对象     属性 描述 ACCESSKEY accessKey 设置或获取对象的快捷键. ATOMICSEL ...

最新文章

  1. 美团今年应届生年薪 35w+?为什么互联网大厂校招的薪资一年比一年高?
  2. 数组随机抽取 java_Java利用数组随机抽取幸运观众如何实现
  3. html自动刷新倒计时,基于JavaScript实现自动更新倒计时效果
  4. 真的汉子不多,褚时健褚老算一个
  5. 背包学习————完全背包
  6. 解决Windows客户端访问vsftpd服务器中文乱码问题
  7. 【bzoj2730】 HNOI2012—矿场搭建
  8. 未能加载文件或程序集_完美解决未能正确加载Visual C++资源编辑器包问题
  9. 送书!60 本签名书!
  10. PDF文件怎么转Word才能不乱码?这样做就可以了
  11. pyGurobi使用手册
  12. 单机MySQL性能_单机数据库性能测试总结
  13. DAO层和Service层的究极理解--这波我在大气层
  14. bug引发的惨案,拼多多100元话费只需4毛钱,损失上千亿……
  15. SVN E200030: There are unfinished transactions detected
  16. 近期做笔试题总结和思考(百度,滴滴,360)
  17. 怎么加载网页背景图随浏览器等比例缩放(css)
  18. HDU 5383 Yu-Gi-Oh!(费用流)
  19. CISSP 第五章 物理和环境安全
  20. JDP02-[策略模式]-鸭子模型

热门文章

  1. 安全合规/法案--29--《网络安全法》原文及解读
  2. 计算机管理评价指标,评价指标体系
  3. Navicat for MySQL给用户赋予角色
  4. 某公路边坡支护设计(lunwen+计算书+cad图纸+施工组织设计)
  5. JavaScript定时器-限时秒杀
  6. AppleXml.Framework(02)-通过框架搭建Demo环境
  7. 5G和WiFi6的故事
  8. 在 Ubuntu 中与手机发送文件不方便,怎么让手机和 Ubuntu 远程建立连接,传输文件?
  9. MYSQL及MSSQL安全设置
  10. 位(Bit)与字节(Byte)