Вам нужно поместить вызов res()
внутри обратного вызова find
. Немедленное выполнение обещания undefined
не поможет.
Но вы действительно не должны проходить итеративный обратный вызов вообще. Вместо этого напишите
async function count() {
let nedb = …;
let count = 0;
const pkgs = await query(nedb, {});
pkgs.forEach(pkg => count++);
// or maybe better just:
const count = pkgs.length;
console.log(count);
}
function query(pkgs, query) {
return new Promise((resolve, reject)=> {
pkgs.find(query).exec((error, result)=>{
if (error !== null) reject(error);
else resolve(result);
});
});
}
Попробуйте Allegro. Это является свободным, межплатформенным и покрывает весь материал, необходимо программировать игры.
Людоедом является лучший Графический механизм, доступный бесплатно. Людоед не покрывает все поле, которое должен сделать игровой механизм. Людоед не обрабатывает физику, сети, AI, аудио...
, Если Вы хотите собрать хороший набор свободных библиотек, я предлагаю, чтобы Вы использовали
, Если Вам нужно что-то мощное (но дорогой), я предлагаю Вас Механизм C4 (350$) или Крутящий момент (150$).
SDL также довольно популярен и существует тонна из информации об этом плавающий вокруг сети, большого количества приспособленного конкретно к созданию игр. Это учебное руководство выглядит особенно хорошим.
Как ранее сказанный Ogre3d и Irrlicht, вероятно, Ваши наилучшие варианты в отношении "свободного". Если Вы также хотите "легкий узнать, что" это сводится к Irrlicht.
Очень чистые интерфейсные и большие учебные руководства.
Редактирование: На самом деле необходимо быть конкретными. Вы хотите 2-ю или 3-ю графику? Вы должны звучать, физика и все это или просто графика? Для каких платформ Вы хотите быть нацеленными?
кроме того, действительно ли Вы уверены, что это должен быть C++? В то время как C++ в значительной степени обязателен для профессиональных игровых механизмов для изучения целей, C# с XNA или некоторым языком сценариев является путем лучше.
Если бы Вы хотите C++ и то, что вы просто начинались, я пошел бы с Irrlicht (его свободное, и его код, хотя не сверкая быстро как Людоед, его очень хорошо структурированный и хороший пример того, на что C++ должен быть похожим). Но если бы Вы готовы к некоторому жесткому Людоеду работы, было бы лучше (хотя ее источник может быть намного более загадочным и трудным для нового посетителя).
Крутящий момент - это не свободно, но это - большое значение на уровне только 150$.
Ogre3D не является игровым механизмом. Некоторые ответы здесь подразумевают, что это - игровой механизм. Это - графический механизм.
важно понять это.
@OJ Irrlicht является полным игровым механизмом, он делает больше, чем рендеринг. Такой как звук, сеть, коллизия, анимация, и т.д.
Это даже имеет редактора для создания игровых областей.
Same source code compiles directly to:
-Desktop Windows (with or without hardware acceleration)
-Windows CE devices (HandheldPC, PocketPC, Smartphone)
-Symbian OS (virtually any device with Symbian OS version 6.0 or newer)
Посмотрите это у 2D Boy, создателя World of Goo: Структура быстрого прототипирования
Она предназначена только для прототипирования, но вы все равно можете извлечь из нее уроки.
SFML - отличная библиотека для создания игрового движка, если вы собираетесь работать в 2D. Явно лучшая альтернатива, чем SDL.
Ogre и другие библиотеки уже упоминались, но если вы собираетесь работать в 3D, это, безусловно, лучший бесплатный 3D-движок, поскольку он наиболее гибкий.
Мои любимые - Иррлихт и Огре. Оба они очень мощные, но (если вы знакомы с C ++) довольно легко начать работу благодаря документации и примерам. Вы можете найти пошаговое руководство, в котором показано, как начать работу с Irrlicht здесь , и с Ogre здесь .