Goo Engine - Hello World - Finished
by dirkk0
HTML
<script src="https://bitbucket.org/gootech/tutorials/downloads/require.js"></script>
CSS
canvas {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
JavaScript
require({
// configure our AMD loader
// baseUrl: './lib',
paths: {
// package mappings
goo: 'https://bitbucket.org/gootech/tutorials/downloads/goo'
}
}, ['goo'], function () {
require([
'goo/entities/GooRunner',
'goo/entities/EntityUtils',
'goo/renderer/Material',
'goo/renderer/Camera',
'goo/entities/components/CameraComponent',
'goo/shapes/ShapeCreator',
'goo/entities/components/ScriptComponent',
'goo/renderer/shaders/ShaderLib',
'goo/entities/World'], function (
GooRunner,
EntityUtils,
Material,
Camera,
CameraComponent,
ShapeCreator,
ScriptComponent,
ShaderLib,
World) {
// "use strict"; Helps you make fewer errors by detecting more things that could lead to breakages.
"use strict";
// Initialize
var goo = new GooRunner();
document.body.appendChild(goo.renderer.domElement);
// Create box
var meshData = ShapeCreator.createBox(1, 1, 1);
var boxEntity = EntityUtils.createTypicalEntity(goo.world, meshData);
var material = Material.createMaterial(ShaderLib.texturedLit, 'BoxMaterial');
boxEntity.meshRendererComponent.materials.push(material);
// Spin the box
boxEntity.setComponent(new ScriptComponent({
run: function (entity) {
entity.transformComponent.transform.setRotationXYZ(
World.time * 1.2,
World.time * 2.0,
0);
entity.transformComponent.setUpdated();
}
}));
// Make box visible
boxEntity.addToWorld();
// Add camera
var camera = new Camera(35, 1, 0.1, 1000);
var cameraEntity = goo.world.createEntity('Camera');
cameraEntity.setComponent(new CameraComponent(camera));
...