Какой XNA основывал 3D ландшафт, и библиотеки физики существуют? [закрытый]

Object.keys (obj): Array

извлекает все строкозначные ключи всех перечислимых собственных (не наследуемых) свойств.

blockquote>

So он дает тот же список ключей, что и вы, путем тестирования каждого ключа объекта с помощью hasOwnProperty. Вам не нужна эта дополнительная тестовая операция, чем и Object.keys( obj ).forEach(function( key ){}), как предполагается, быстрее. Докажем это:

var uniqid = function(){
			var text = "",
					i = 0,
					possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
			for( ; i < 32; i++ ) {
					text += possible.charAt( Math.floor( Math.random() * possible.length ) );
			}
			return text;
		}, 
		CYCLES = 100000,
		obj = {}, 
		p1,
		p2,
		p3,
		key;

// Populate object with random properties
Array.apply( null, Array( CYCLES ) ).forEach(function(){
	obj[ uniqid() ] = new Date()
});

// Approach #1
p1 = performance.now();
Object.keys( obj ).forEach(function( key ){
	var waste = obj[ key ];
});

p2 = performance.now();
console.log( "Object.keys approach took " + (p2 - p1) + " milliseconds.");

// Approach #2
for( key in obj ) {
	if ( obj.hasOwnProperty( key ) ) {
		var waste = obj[ key ];
	}
}

p3 = performance.now();
console.log( "for...in/hasOwnProperty approach took " + (p3 - p2) + " milliseconds.");

В моем Firefox у меня есть следующие результаты

  • Подход Object.keys 40.21101451665163 миллисекунд.
  • для подхода ... in / hasOwnProperty принято 98.26163508463651 миллисекунд.

PS. на Chrome разница еще больше http://codepen.io/dsheiko/pen/JdrqXa

PS2: В ES6 (EcmaScript 2015) вы можете повторить итерируемый объект более приятным:

let map = new Map().set('a', 1).set('b', 2);
for (let pair of map) {
    console.log(pair);
}

// OR 
let map = new Map([
    [false, 'no'],
    [true,  'yes'],
]);
map.forEach((value, key) => {
    console.log(key, value);
});
9
задан casperOne 29 April 2012 в 12:52
поделиться

4 ответа

При поиске большего количества учебного руководства, а не полноценного решения Вы проверили ряд коллизии на сайте создателей XNA?

А именно, Серия 5 Коллизии: Коллизия Heightmap с Normals походит точно, что Вы ищете.

1
ответ дан 4 December 2019 в 21:52
поделиться

Ознакомьтесь с Matali Physics Engine. Matali Physics - физический движок для XNA. home page

0
ответ дан 4 December 2019 в 21:52
поделиться

Игровая Динамика Ньютона выезда, существует порт их механизма физики для XNA. Единственный протест состоит в том, что это только работает в соответствии с Windows.

0
ответ дан 4 December 2019 в 21:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: