FAQ:
cocos2d для iPhoneИщите мой cocos2d часто задаваемые вопросы iPhone & Обучающие программы
Пожалуйста, отметьте, что поиск блога в правом верхнем углу не ищет мои часто задаваемые вопросы и Обучающие программы.- Отметьте: пожалуйста, не разделяйте прямые ссылки для скачивания к файлам PDF, ссылки для скачивания истекают после пары минут!
cocos2d Общие Вопросы
- Как установить "Основной SDK Недостающая" Ошибка
- Как установить "Ожидаемый тип" Ошибка
- Как установить cocos2d Xcode Проектные Шаблоны
- Сколько памяти (RAM) доступно на iPhone/iPod/iPad?
- Как я узнаю, какую cocos2d версию я использую?
- Как обновить кодекс cocos2d-iphone в проекте, созданном с Шаблоном Проекта cocos2d?
Узел cocos2d, Сцена & Вопросы о Слое
Вопросы о Геймплее cocos2d
- Как определить расстояние между двумя CCNodes?
- Как получить Ограничивающий прямоугольник Эльфа / Ограничивающий прямоугольник? (с Кодексом)
- Как проверить пересечение вращаемых прямоугольников?
- Как вращать эльфа в круговом движении
Вопросы о Действиях cocos2d
- Как я узнаю, закончилось ли Действие/остановилось?
- Почему мой CCSequence терпит крах с EXC_BAD_ACCESS?
Физика cocos2d (Box2d & Бурундук) Вопросы
- Box2D: соберите ошибки после добавления #import "box2d.h"
- Бурундук: соберите ошибки после добавления #import "chipmunk.h"
cocos2d Graphics & OpenGL Questions
- Как потянуть бесконечно повторяющийся Фон Параллакса?
- Что делает SpriteSheets быстрее чем регулярные Эльфы?
- Какие шрифты iPhone поддерживает и каковы их имена?
- Как я могу потянуть простой Пункт, Линию или Круг?
Вопросы о Работе cocos2d
- Как быстро cocos2d (по сравнению с другими двигателями игры)?
- Стандартные процедуры прежде, чем сообщить об исполнительных проблемах
- Исполнительные Подсказки всевидящего Интерэктива для cocos2d-iphone









Просвещение почты. Спасибо!
И, конечно, у меня есть некоторые вопрос
- все относительно, но для общего кодекса лучше, чтобы использовать NSString, NSArray (и заплатить стоимость создания новых объектов) или изменчивые? Который может быть параметрами, чтобы выбрать между каждым?
- Я задаюсь вопросом, будет ли новый iPhone 4.0′s большая работа проблемой. Игры, которые управляют гладко в iPhone 1-ыми и 2-ыми устройствами поколения, будут, вероятно, бежать слишком быстро?
Привет Макс,
я сомневаюсь, что наборы данных NSMutable* - исполнительные убийцы. Я не сделал тестов, но я вполне уверен, что, если Вы не изменяете их вообще, они, вероятно, выступят столь же хороший как неизменчивые. Теперь, однажды Вы *do* должен изменить множества или последовательности, хорошо иметь их изменчивый так, чтобы материал заботился для Вас негласно. С другой стороны, если Вы знаете, что будете только создавать пункты однажды, но никогда переупорядочивать, удалять или добавлять, что другие тогда используют неизменчивые. Для меня это - вопрос случая использования, а не работы. Now, once you *do* need to change the arrays or strings it’s good to have them mutable so that stuff is taken care for you behind the scenes. On the other hand, if you know that you’ll only be creating the items once but never re-order, remove or add others then use the non-mutable ones. For me it’s a matter of use case rather than performance.
Игры не будут бежать быстрее на более новых устройствах. cocos2d’s CCDirector удостоверяется этого. Вы поправляетесь framerates, конечно, но не более быстрый геймплей. Это сохраняется для всех современных двигателей игры. You do get better framerates of course but not faster gameplay. That holds true for all modern game engines.
Привет gaminghorror. Спасибо за всю большую информацию о Вашем блоге
, Действительно находящем это полезный.
Я хотел спросить о Вашем кодексе фона параллакса выше – я использую это в испытательном проекте, но, может казаться, не заставляю черепицу соответствовать отлично рядом с eachother. Другими словами мой эльф, которого я крою черепицей (который является 480, 320 в размере) кроет черепицей, но когда новый эльф начинается, есть черный промежуток приблизительно 25 пикселов, широких между новым и старым. Там какой-либо путь - к elliminate этот промежуток? Я попытался искать cocos2d форумы и т.д., и нашел информацию о 2-ом проектировании, выключающем и т.д. …, но ничего подобного до сих пор не помогал мне … попытаться иллюстрировать то, что я получаю, это - то, что я становлюсь завивающимся через экран устройства (x’s эльф, белое пространство - черный промежуток, который я получаю): Is there any way to elliminate this gap? I have tried searching the cocos2d forums etc, and found info on 2D projection turning off etc… but none of that has helped me so far… To try and illustrate what I am getting, this is what I get scrolling across the device screen (x’s are the sprite white space is the black gap I get):
xxxxxxxxxxxxxxx | |xxxxxxxxxxxxxxxx | |xxxxxxxxxxxxxxxxxx | |xxxxxxx
Это, кажется, погашение размещения, действительно ли Вы уверены, что эльфы - точно 480 пикселов обособленно каждый? У обоих также должен быть тот же самый anchorPoint. И если Вы изменяете масштаб эльфов, погашение также должно быть приспособлено соответственно. And if you change the scale of the sprites, the offset also needs to be adjusted appropriately.
Вы могли бы хотеть проверить размещение с меньшими эльфами так, чтобы по крайней мере два из них соответствовали полностью на экране.
Привет GamingHorror, большое спасибо за ответ
Так этим утром я просыпался и имел ясный ум – думал об этом некоторое время, Мой эльф для фона точно 480×320 – то есть screensize. Промежуток, который я видел отчасти, осматривал 20-30 пикселов между каждым повторным эльфом. Таким образом, я думал, эй, в 480, мне только дают структуру, которая является 512 в праве размера? Так возможно его выполнение полного 512pixel структура. Таким образом, я вернулся к фотошопу, и увеличил свою ширину эльфа до 512 (как я, wouldnt теряют любую работу так или иначе), и дал этому попытку, используя Ваш кодекс: So I thought, hey, at 480, I am just being given a texture that is 512 in size right? So maybe its doing a full 512pixel texture. So I went back to photoshop, and increased my sprite width to 512 (as I wouldnt lose any performance anyway) and gave this a try, using your code:
CCSprite *background = [CCSprite spriteWithFile:@ "tile1.png"
rect:CGRectMake (0,0, 480*50, 320)];
[сам addChild:background];
[фон setPosition:ccp (winSize.width/2, winSize.height/2)];
ccTexParams params = {GL_LINEAR, GL_LINEAR, GL_REPEAT, GL_REPEAT};
[background.texture setTexParameters: ¶ms];
и это улаживало это! Больше промежутков. Большое спасибо за указатели также – я не думал о anchorPoints! Еще раз спасибо за большой блог. Я подписан! Thanks so much for the pointers too – I hadn’t thought about anchorPoints! Thanks again for the great blog. I am subscribed!
Ах да, если Вы используете GL_REPEAT тогда, размер изображения должен быть властью два. Eg 64×64 или 512×128
Удивительный – который убирает вещи для меня и имеет прекрасный смысл теперь. Спасибо за подтверждение. Мой слоистый завивающийся параллакс выглядит сладким теперь! My layered parallax scrolling is looking sweet now!
Так другой быстрый вопрос … я предполагаю, что не будет возможно использовать spritesheet с GL_REPEAT? Особенно путь Вы должны создать CGRect …
В настоящее время я делаю другую графику от spritesheets как это:
CCSprite *projectile = [CCSprite spriteWithSpriteFrameName:@ "missile.png"];
Которые загружены от моего.plist / spritesheet. Не возможный назначить фон GL_REPEAT как это?
Так как GL_REPEAT - параметр структуры, он относится к целой структуре, таким образом, Вы должны будете использовать единственную структуру изображения, и размер должен быть властью 2, eg 128×16 или 256×256.
Это также исключает использование spritesheet.
Используя эту технику это работает хорошо в тренажере, но на устройстве структура является суперглыбовой и pixellated. Я управляю этим тестом на cocos2d 0.99.5.
Ив попробовал и 256×256 и 512×512 структуры, и результат - то же самое. Тренажер повторяется отлично, отрезки устройства и pixellates структура ужасно.
У Вас есть какая-либо идея, почему это происходит?
Hmmm, не действительно. Я предполагаю, что это могло бы быть связано с показом Сетчатки, Вы проверяете на устройстве сетчатки?
Yikes, я получаю обе ошибки, черную полосу и pixelation высшего качества. Глыбовость увеличивает большее ценность, ширина умножена, eg 50 в этой линии
_hills = [CCSprite spriteWithFile:@ "Hills.png" rect:CGRectMake (0,0,240*50, 320)];
50 взглядов хорошо, 1000 чрезвычайно distorted/pixelated. Я проверяю на устройстве несетчатки, и прикосновение iPod и iPad. Тестирование также сделанный тренажер использования с теми же самыми результатами. Testing also done using simulator with same results.
Попробованный и за 480 широкого содержания на 512 широких изображениях и за 512 широкого содержания на 512 широких изображениях.
Фрагмент кода;
_sky = [CCSprite spriteWithFile:@ "Clouds.png" rect:CGRectMake (0,0,512*100, 320)];
[сам addChild: _ небо z:-3];
_sky.position = ccp (0, size.height/2);
ccTexParams params = {GL_LINEAR, GL_LINEAR, GL_REPEAT, GL_REPEAT};
[_sky.texture setTexParameters: ¶ms];
То же самое соглашение для того, чтобы добавить в других фонах.
Я привык к процедурному программированию в OOC, какой метод Вы рекомендовали бы для завивания, а не отзыва графика каждому 0.05s (60 освежительных напитков / второй), который увеличивает положения BG различными горами?
Заранее спасибо, большая информация здесь!
Решенный промежуток! Это происходило из-за моего эльфа, не обновляемого в xcode после изменения, чтобы выполнить 512 размеров структуры. Чистое строит решенный это. Красиво удовлетворяя, чтобы видеть это управление! A clean build solved that. Beautifully satisfying to see this running!
Здравствуйте.
У меня есть та же самая проблема искажения пикселов на эльфе.
создаст проблемы показать, как Вы решили это!?!?!
спасибо
Я испытываю некоторые затруднения из-за обеспеченного кодекса. Я плохо знаком с Cocos2D и когда я копирую и приклеил Ваш кодекс в проект и изменил файл на имя файла картины, что я использую это, дал мне ошибку, которая сказала, что фон не был объявлен. и затем я изменил это так, чтобы фон был изменен на CCSprite *background, и затем в конце я должен был поместить [сам addChild: фон]; чтобы заставить это обнаруживаться, но это не завивается. Какие-либо идеи? and then i changed it so that background was changed to CCSprite *background and then at the end I had to place [self addChild: background]; to get it to show up but it doesn’t scroll. Any ideas?