#iphone #objective-c #cocos2d-iphone
#iPhone #objective-c #cocos2d-iphone
Вопрос:
В какой-то документации cocos2d-iphone мне сказали поместить это
// IMPORTANT: Call this function at the very beginning, before running your 1st scene
// Create a depth buffer of 24 bits
// These means that openGL z-order will be taken into account
[[CCDirector sharedDirector] setDepthBufferFormat:kDepthBuffer16];
Чтобы разрешить некоторые 3D-эффекты в моей игре с действиями. Однако по какой setDepthBufferFormat
-то причине ни kDepthBuffer16
один из них не распознается XCode. Есть идеи?
Ответ №1:
К сожалению, документация cocos2d частично устарела. Метод, о котором вы упомянули, больше не существует. Вместо этого вам нужно будет изменить строку в методе делегирования приложения applicationDidFinishLaunching, который инициализирует EAGLView. Существует вариант «viewWithFrame», который принимает дополнительные параметры depthFormat:
// Create an EAGLView with a RGB8 color buffer, and a depth buffer of 24-bits
EAGLView* glView = [EAGLView viewWithFrame:[window bounds]
pixelFormat:kCCTexture2DPixelFormat_RGBA8888
depthFormat:GL_DEPTH_COMPONENT16_OES
preserveBackbuffer:NO
sharegroup:nil
multiSampling:NO
numberOfSamples:0];
Комментарии:
1. Ах. Спасибо. Кстати, вы знаете, почему, когда я запускаю 3D-действие, фон становится черным?
2. Может быть из-за отсутствия буфера глубины. Возможно, вам также придется включить тестирование глубины: [[CCDirector sharedDirector] setDepthTest: ДА];