2016-04-02 35 views
0

Blender'de yaptığım sahnemi Babylon'lara yükledim ve bazı ilginç efektler üretiyor. Temel olarak, yer çekimini ve sahneyi uygulamaya çalışıyorum, oyuncuyu uygun yere götürün ve tüm sahneyi aydınlatan ve görünür hale getirmeye çalışıyorum, fakat bunların hiçbiri işe yaramıyor. Bu script:Babylonjs'da garip bir sahne oluşturma

var BABYLON; 
var canvas = document.getElementById('gamecanvas'); 
var engine = new BABYLON.Engine(canvas, true); 
var player_height = 2; 
var player_speed = 1; 
var player_inertia = 0.9; 

function INIT_GAME(){ 
    BABYLON.SceneLoader.Load('Scenes/', 'zombie_map.babylon', engine, function(newScene){ 
     var scene = newScene; 
     var light = new BABYLON.PointLight('light', new BABYLON.Vector3(0,0,10), scene); 
     var player = new BABYLON.FreeCamera('player', new BABYLON.Vector3(1,1,1), scene); 
     scene.activeCamera = player; 
     scene.activeCamera.attachControl(canvas, true); 
     scene.enablePhysics(); 
     scene.setGravity(new BABYLON.Vector3(0, -10, 0)); 
     player.ellipsoid = new BABYLON.Vector3(1, player_height, 1); 
     player.checkCollisions = true; 
     player.applyGravity = true; 
     player.keysUp = [87]; 
     player.keysDown = [83]; 
     player.keysLeft = [65]; 
     player.keysRight = [68]; 
     player.inertia = player_inertia; 
     player.speed = player_speed; 
     newScene.executeWhenReady(function(){ 
      engine.runRenderLoop(function(){ 
       newScene.render(); 
      }); 
     }); 
    }); 

canvas.height = window.innerHeight; 
canvas.width = window.innerWidth; 
canvas.requestPointerLock = canvas.requestPointerLock || canvas.mozRequestPointerLock; 
canvas.requestPointerLock(); 

window.addEventListener('resize', function(){ 
    engine.resize(); 
}); 

}

Ben edilmektedir soruları:

  1. nasıl yapabilirim ben tüm sahneyi görebileceğiniz şekilde, mesafe daha yüksek hale?
  2. Neden sahne özelliklerinden hiçbiri çalışmıyor (yerçekimi, hareket vb.)? Sizin player kamera aktif kamera olarak ayarlanması gerekir
+0

, kameranın 'position' özelliğini değiştirebilir. – ConnorsFan

+0

Bunu denedim ve pozisyonu hiç değiştirmiyor, garipliğe ekleniyor –

+0

Sorunu Babil'in oyun alanında yeniden üretmeye çalışabilirsin (http://www.babylonjs-playground.com/). Testinizi kaydederseniz, diğer kişiler buna erişebilir ve hata ayıklayabilir. Ayrıca kendi forumlarına danışabilirsiniz (http://www.html5gamedevs.com/forum/16-babylonjs/). – ConnorsFan

cevap

0

: İlk soru için

var player = new BABYLON.FreeCamera('player', new BABYLON.Vector3(1,1,1), scene); 
scene.activeCamera = player; 
scene.activeCamera.attachControl(canvas, true); 
+0

Fotoğraf makinesi hareketi şimdi çalışıyor, ancak özelliklerin geri kalanı hala çalışmıyor. –

+0

Bu özellikleri test etmek benim için kolay değil (CheckCollisions, applyGravity, vs.). Kamera hareketi işe yarasın, anahtarlar çalışır mı? – ConnorsFan

+0

Evet, kamera hareketlidir, ancak bir hareket tuşuna bastığımda sadece aşağı doğru hareket eder. Sahnede hala yer çekimi veya çarpışma yok. –