Как сделать так, чтобы часть слоя исчезла, когда он перемещается в определенную часть экрана в cocos2d-x? - PullRequest
1 голос
/ 22 марта 2012

В настоящее время я использую CCScrollLayer в cocos2d-x для прокрутки своего списка элементов, но я хочу, чтобы часть списка исчезла до того, как он исчезнет с экрана.

Я пробовал прозрачныйслой с более высоким значением z, но это не сработало, поскольку слой был прозрачным, а список все еще отображается.Я предполагаю, что должен что-то сделать с setPosition(), но просто не могу понять ...

Любые советы будут оценены.

1 Ответ

1 голос
/ 03 мая 2012

Полагаю, вам нужен GL_SCISSOR_TEST.

Попробуйте переопределить функцию draw () или visit () слоя следующим кодом

    void YOU_CLASS::visit()
    {
        glEnable(GL_SCISSOR_TEST);
        glScissor(x, y, width, height);   
        YOUR_PARENT_CLASS::visit();
        glDisable(GL_SCISSOR_TEST);
    }

, а также добавьте строку -lGLESv1_CM \ in Android.mk в свою папку классов

это выглядит так:

     LOCAL_LDLIBS := -L$(call host-path, $(LOCAL_PATH)/../android/libs/$(TARGET_ARCH_ABI)) \
                     -lGLESv1_CM \
                     -lcocos2d -lcocosdenshion \
                     -L$(call host-path, $(LOCAL_PATH)/../../cocos2dx/platform/third_party/android/libraries/$(TARGET_ARCH_ABI)) -lcurl 
...