taro.js实现一个三维重力操作小球撞击方块倒下代码
代码语言:html
所属分类:三维
代码描述:taro.js实现一个三维重力操作小球撞击方块倒下代码,这个官方的一个示例代码,演示如何通过taro创建一个三维游戏场景,按上下左右键操作小球,wasd键进行三维空间控制。
代码标签: taro.js 三维 重力 操作 小球 撞击 方块 倒下 代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0">
<title>Example</title>
<style>
html,
body {
margin: 0;
height: 100%;
}
#c {
width: 100%;
height: 100%;
}
</style>
</head>
<body>
<canvas id="c"></canvas>
<script type="module">
import * as TARO from "//repo.bfw.wiki/bfwrepo/js/module/taro.module.js";
let entity, geo, mat, mesh;
const app = new TARO.App({canvas: document.getElementById("c")});
TARO.registerComponent(
"cameraController",
class CameraController {
init() {
this.direction = new TARO.Vector3();
this.input = this.entity.scene.app.input;
this.entity.rotation.order = "YXZ";
this.ball = this.entity.scene.getEntityByName("ball");
window.addEventListener("pointerdown", () => {
this.entity.app.renderer.domElement.requestPointerLock();
});
this.ball.getComponent('rigidbody').ref.addEventListener("collide", (c) => {
console.log(c);
this.ball.getComponent('audio').ref.play();
});
}
update() {
const ball = this.ball;
if (this.input.getKeyDown("ArrowUp")) {
ball.getComponent("rigidbody").ref.applyForce(
new TARO.Vector3(0, 0, -200)
);
}
if (this.input.getKeyDown("ArrowDown")) {
ball.getComponent("rigidbody").ref.applyForce(
new TARO.Vector3(0, 0, 200)
);
}
if (this.input.getKeyDown("ArrowLeft")) {
ball.getComponent("rigidbody").ref.applyForce(
new TARO.Vector3(-200, 0, 0)
);
}
if (this.input.getKeyDown("ArrowRight")) {
ball.getComponent("rigidbody".........完整代码请登录后点击上方下载按钮下载查看
网友评论0