0

我正在尝试使用 physijs 和 node.js 制作一个简单的网络在线游戏

我从这里找到了一个相关的来源(https://github.com/jjoe64/nodejs-physijs

以下是我要使用的基本服务器端代码。

'use strict';

var THREE = require('./libs/three.js');
var Ammo = require('./libs/ammo.js');
var Physijs = require('./libs/physi.js')(THREE, Ammo);



/////////////////
// game

var initScene, render, renderer, scene, camera, box_falling;

initScene = function() {

    scene = new Physijs.Scene;

    // Box
    box_falling = new Physijs.BoxMesh(
        new THREE.CubeGeometry( 5, 5, 5 ),
        new THREE.MeshBasicMaterial({ color: 0x888888 })
    );
    scene.add( box_falling );

    // Box
    var box = new Physijs.BoxMesh(
        new THREE.CubeGeometry( 5, 5, 5 ),
        new THREE.MeshBasicMaterial({ color: 0x880088 }),
        0
    );
    box.position.y = -20;
    scene.add( box );

    setTimeout( render, 200 );
};

render = function() {
    scene.simulate(); // run physics
    setTimeout( render, 200 );
};


//////////////////
// web socket

var io = require('socket.io').listen(8088);

(function() {
    io.sockets.on('connection', function (socket) {
        console.log('client conneted');
    });

    // start physijs scene
    initScene();
})();

问题是,我是 node.js 和 socket.io 的初学者,所以我不知道如何将场景从这个服务器端代码导入到客户端的视口。是否有任何客户端示例代码?或者如何使用套接字将场景信息从服务器发送到客户端?我怎样才能显示它们?

4

1 回答 1

0

您应该在服务器端和客户端以同步的方式计算物理,并且只在客户端渲染场景日期。查看 Ironbane 的来源。

于 2015-04-28T04:11:30.537 回答