在微信小程序中使用Three.js的尝试

 

在indienova上看到大佬发了这样的文章,于是学着也用了一下,结论是可以的。

因为懒,所以在WebGL中文网拷了一份代码下来。(这个网站学three.js还真的是挺好的,有条件的朋友可以过去买几节课,支持一下。)

 

好了,我们现在来开始:

1.首先你要注册,并创建一个小程序,要注意,类型要是游戏类型的,因为只有这个类型才有暴露出来的canvas

2.打开刚刚下的微信开发者工具,进入小游戏的开发,创建一个模板,简单的就行,不用那个云游戏的(或许可以,没有试过)。

3.删减掉其他部分,只剩下这样的。

在微信小程序中使用Three.js的尝试_第1张图片

    three.js是自己加上去的,你可以从github上面下一份。

 

4.我们大部分的代码都会在main.js里面写。

5    这句就是使用了微信的canvas。

let ctx = canvas.getContext('webgl')  
import * as THREE from 'three.js'

let ctx = canvas.getContext('webgl')  

let scene
let renderer
let camera

let scaledWidth
let scaledHeight

let cube

export default class Main {
  constructor() {
    this.threeStart()
  }

  threeStart() {
    var scene = new THREE.Scene();

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

    var renderer = new THREE.WebGLRenderer({ context: ctx });

    renderer.setSize(window.innerWidth, window.innerHeight);

    document.body.appendChild(renderer.domElement);
    var geometry = new THREE.CubeGeometry(1, 1, 1);
    var material = new THREE.MeshBasicMaterial({ color: 0x00ff00 });
    var cube = new THREE.Mesh(geometry, material); scene.add(cube);
    camera.position.z = 5;
    function render() {
      requestAnimationFrame(render);
      cube.rotation.x += 0.1;
      cube.rotation.y += 0.1;
      renderer.render(scene, camera);
    }
    render();
  }
  
}

 

6.我在这里编译的时候出错了,于是按照indienova的文章所写,改写了weapp-adapter.js

    在document 的定义中添加 createElementNS

在微信小程序中使用Three.js的尝试_第2张图片

createElementNS: function createElementNS(nameSpace, tagName) {
  return this.createElement(tagName)
}

7.到这里应该就可以了

在微信小程序中使用Three.js的尝试_第3张图片

你可能感兴趣的:(面向搜索引擎编程)