2013-10-13 2 views
3

Here я вижу следующее:Тот же код для Cocos2Dx и Cocos2d-html5?

.... команда Cocos2d-х работают на то, что называется "Javascript для связывания Cocos2d". Это означает, что ваш самый код, запущенный на движке Cocos2d-html5, может работать безупречно на Cocos2d-X и Cocos2d-iPhone без каких-либо изменений. И все это переводится как «почти родной быстрый на мобильные телефоны».

Что я не могу понять, так это то, как код, написанный на одном языке, можно перевести на другой? Они означают, что есть инструмент, который получает как входной код JavaScript в игре Cocos2d-html5 и переводит его в код C++ Cocos2dx или назад?

EIDT: Могу ли я легко переносить игру C++, написанную с Cocos2Dx, в Cocos2D-html5? Что я должен сделать для этого?

ответ

3

Cocos2d-x и Cocos2d-html5 используют один и тот же Javascript API и написаны, чтобы дать разработчику преимущество написать свой код в Javascript, и он будет работать с обеими этими фреймворками.

Что касается второго вопроса, Cocos2d-html5 запускает Javascript изначально, тогда как Cocos2d-x использует SpiderMonkey (механизм Javascript, написанный на C/C++ by Brendan Eich) для запуска вашего Javascript-кода.

Хотя, есть одна важная вещь, которую следует учитывать. Разработка игр с использованием родного языка и API-интерфейсов занимает меньше времени, легко отлаживается и легко расширяется и поддерживается. Итак, на мой взгляд, нужно использовать cocos2d-iphone, если игра предназначена только для iOS, cocos2d-x, если игра находится на нескольких платформах и cocos2d-html5, только если основной целью игры является сеть.

+0

Итак, если я нацелен на Интернет, iOS и Android, то для меня лучший выбор будет писать игру в JS? – Narek

+0

Правильно. Большая часть вашего JS-кода будет работать для iOS и Android, но, как сказал Штеффен, вам все равно придется вносить коррективы в некоторые области и функциональные возможности. – nomann

3

Это означает, что оба cocos2d-x и cocos2d-html используют один и тот же Javascript API. Таким образом, при идеальных обстоятельствах один и тот же JS-код работает на html5 и в другое время с -x движком.

Однако все еще могут быть различия, поскольку за кулисами реализация может быть тонко (или не так тонко) различной для каждого движка. Также не все функции (например, сенсорный ввод, акселерометр, шейдеры) могут быть доступны на каждом двигателе. Отсюда формулировка «с небольшими изменениями».

Но если ваша главная цель не в сети, у вас мало смысла использовать JS API, потому что она добавляет дополнительный уровень, который затрудняет отладку ошибок кода, а общая производительность страдает по сравнению с написанием напрямую (на C++) для -x.

+0

Еще не понимаю. У меня есть JS-код с определениями переменных, как в JS должен быть (с 'var' ...). Что дальше? Я имею в виду, может ли ты дать небольшой пример потока? – Narek

+2

Могу ли я легко переносить игру C++, написанную с помощью Cocos2Dx, в Cocos2D-html5? Что я должен сделать для этого? – Narek

Смежные вопросы