2014-12-05 1 views
3

Я новичок в Babylonjs, и я хочу отображать/показывать изображение с помощью BabylonJs, а также я хочу переместить изображение с помощью клавиатуры (например, клавиши со стрелкой влево, клавиши со стрелкой вправо, клавиши со стрелкой вверх и клавиши со стрелкой вниз) с обнаружением конфликтов, и я также хочу отключить все события мыши.Показать изображение с помощью babylonjs

я написал ниже код для показа изображения, но я думаю, что это не правильный путь ..

var playerMaterial = new BABYLON.StandardMaterial("ground", scene); 
    playerMaterial.diffuseTexture = new BABYLON.Texture("/images/mail.png", scene); 
    playerMaterial.specularColor = new BABYLON.Color3(0, 0, 0); 
    player.material = playerMaterial; 
    player.position.y = 1; 
    player.position.x = -84; 
    player.size = 20; 

Может кто-то помочь мне, как это сделать (если вы можете поделиться исходный код, который может помочь даже лучше) ?

Благодаря
Raviranjan

ответ

2

Ваш код выглядит в основном правильно, если вы также есть камера и источник света. Вот a playground entry.

И для потомков, вот этот код:

var scene = new BABYLON.Scene(engine); 

//Create a light 
var light = new BABYLON.PointLight("Omni", new BABYLON.Vector3(-60, 60, 80), scene); 

//Create an Arc Rotate Camera - aimed negative z this time 
var camera = new BABYLON.ArcRotateCamera("Camera", Math.PI/2, 1.0, 210, BABYLON.Vector3.Zero(), scene); 
camera.attachControl(canvas, true); 

//Creation of a repeated textured material 
var materialPlane = new BABYLON.StandardMaterial("texturePlane", scene); 
materialPlane.diffuseTexture = new BABYLON.Texture("textures/grass.jpg", scene); 
materialPlane.specularColor = new BABYLON.Color3(0, 0, 0); 
materialPlane.backFaceCulling = false;//Allways show the front and the back of an element 

//Creation of a plane 
var plane = BABYLON.Mesh.CreatePlane("plane", 120, scene); 
plane.rotation.x = Math.PI/2; 
plane.material = materialPlane; 

Я начал с одной из своих демонстраций, затем взломан прочь большую часть материала, чтобы получить минимальный пример. Я оставил в backFaceCulling = false (так как иначе изображение видно только с одного направления) и добавлено в настройке specularColor.

Альтернативный подход заключается в замене diffuseTexture с emissiveTexture:

materialPlane.emissiveTexture = new BABYLON.Texture("textures/grass.jpg", scene); 

Тогда вы можете прокомментировать свет, и она все равно будет видно. (Фактически, если вы оставите свет, указывающий на него, он будет переэкспонирован.)

(Я бы порекомендовал начать новый вопрос по вопросам управления клавиатурой и обнаружения конфликтов. Или работать с образцами Babylon и учебными видеороликами.)