playcanvas是一款基于WebGL的游戏引擎,集UI、2D、3D、编辑器于一体。
一般来讲,游戏开发与web应用完全是两码事。但事实上游戏世界的很多工具都可以用在网站中增加华丽界面。PlayCanvas就是一个基于WebGL的游戏引擎,结合了物理、光影、音效等工具,用于创建一个复杂的界面。
图形 -基于WebGL1和2构建的高级2D+3D图形引擎。动画 -强大的基于状态的动画,用于角色和任意场景属性物理 -与3D刚体物理引擎ammo.js完全集成输入 -鼠标,键盘,触摸,游戏手柄和VR控制器API声音 -基于WebAudioAPI构建的3D位置声音资产 -基于glTF2.0,Draco和Basis压缩构建的异步流系统脚本 -使用Typescript或JavaScript编写游戏行为示例代码:
// Create a PlayCanvas applicationvar canvas = document.getElementById("application-canvas");var app = new pc.fw.Application(canvas, {});app.start();// Fill the available space at full resolutionapp.setCanvasFillMode(pc.fw.FillMode.FILL_WINDOW);app.setCanvasResolution(pc.fw.ResolutionMode.AUTO);// Create box entityvar cube = new pc.fw.Entity();app.context.systems.model.addComponent(cube, { type: "box"});// Create camera entityvar camera = new pc.fw.Entity();app.context.systems.camera.addComponent(camera, { clearColor: new pc.Color(0.1, 0.1, 0.1)});// Create directional light entityvar light = new pc.fw.Entity();app.context.systems.light.addComponent(light);// Add to hierarchyapp.context.root.addChild(cube);app.context.root.addChild(camera);app.context.root.addChild(light);// Set up initial positions and orientationscamera.setPosition(0, 0, 3);light.setEulerAngles(45, 0, 0);// Register an update eventapp.on("update", function (deltaTime) { cube.rotate(10 * deltaTime, 20 * deltaTime, 30 * deltaTime);});
评论