在three.js中制作突破游戏 - 检测板的末端

马兹垫

我正在尝试通过制作游戏来学习 Three.js,遗憾的是我感兴趣的大多数资源都已过时,因为库似乎经常变化。

目前我可以用鼠标移动我的桨并通过鼠标点击发射球,但是我不知道如何停止桨越过板并使球从边缘反弹。

任何人都可以指出我正确的方向吗?这是我当前的代码:

var scene = new THREE.Scene();
var camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 10000);

//renderer
var renderer = new THREE.WebGLRenderer();
renderer.setSize(window.innerWidth, window.innerHeight);
document.body.appendChild(renderer.domElement);


//board
geometry = new THREE.BoxGeometry(10, 6, 0.00001)
material= new THREE.MeshBasicMaterial({color: "blue"});
var board = new THREE.Mesh(geometry,material);


scene.add(board);


//paddle
geometry = new THREE.BoxGeometry(1, 0.1, 0.2);
material = new THREE.MeshBasicMaterial({ color: "red" });
var paddle = new THREE.Mesh(geometry, material);

paddle.position.set(0, -2.5, 0);
scene.add(paddle);


camera.position.z = 5;

//ball
var geometry = new THREE.SphereGeometry(0.1, 32, 32);
var material = new THREE.MeshBasicMaterial({ color: 0xffff00 });
var ball = new THREE.Mesh(geometry, material);
ball.moving = false;
ball.position.set(0, -2.3, 0);

var velocityY = 0.05; //ball Y speed

scene.add(ball);


//mouse movements
var raycaster = new THREE.Raycaster();
var mouse = new THREE.Vector2();

function onMouseMove(e) {
    mouse.x = (e.clientX / window.innerWidth) * 2 - 1;
    mouse.y = - (e.clientY / window.innerHeight) * 2 + 1;

    paddle.position.x = mouse.x * 5.5;
}

function onMouseClick(e) {
    ball.moving = true;
}

window.addEventListener('mousemove', onMouseMove, false);
window.addEventListener('click', onMouseClick, false);

function animate() {
    requestAnimationFrame(animate);

    // ball.position.y += -0.01;

    if (ball.moving === false) {
        // console.log('jest false')
        ball.position.x = paddle.position.x;
    } else {
        ball.position.y += velocityY;
        ball.position.x += 0.01;
    }
    renderer.render(scene, camera);
}
animate();
炭疽病

去这里:https : //threejs.org/editor/

加载打砖块示例..

选择右侧列表中的场景对象...单击底部游戏逻辑脚本上的编辑...

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用three.js的FPS游戏中的碰撞检测

来自分类Dev

使用three.js的FPS游戏中的碰撞检测

来自分类Dev

冲突检测Three.js的问题

来自分类Dev

Three.js碰撞检测问题

来自分类Dev

Three.js-准确的射线投射以进行碰撞检测

来自分类Dev

Three.js Raycaster未检测到场景网格

来自分类Dev

Three.js碰撞检测与光线投射优化

来自分类Dev

Three.js检测对象何时被部分或完全遮挡

来自分类Dev

Three.js Raycaster未检测到场景网格

来自分类Dev

THREE.js静态场景,检测Webgl渲染何时完成

来自分类Dev

使用three.js进行碰撞检测

来自分类Dev

如何在three.js中制作加载屏幕?

来自分类Dev

如何在Three.js中制作多个对象?

来自分类Dev

在Three.js中制作BufferGeometry轮廓的最佳方法

来自分类Dev

如何使用Three.js检测JavaScript中两个对象之间的冲突?

来自分类Dev

在three.js中检测球体和三角形之间的碰撞

来自分类Dev

Three.js中的操纵杆,游戏手柄或3D鼠标支持

来自分类Dev

three.js中的网格

来自分类Dev

Three.js中的verticesNeedUpdate

来自分类Dev

THREE.js中的ParametricBufferGeometry

来自分类Dev

THREE.ObjectLoader的Three.js错误

来自分类Dev

Three.js-导入时可以检测到几何“岛”吗?

来自分类Dev

如何在three.js r68中制作矩形金字塔?

来自分类Dev

如何在Three.js中为网格图制作动画

来自分类Dev

如何在Three.js中为N面的振动制作动画

来自分类Dev

如何在three.js中制作交互式视频进度条?

来自分类Dev

如何在THREE.js中为具有图像纹理的对象制作透明孔?

来自分类Dev

three.js对象开始动画/游戏循环

来自分类Dev

Three.js:SVGRenderer?