adapted for cocos2d-x 3.0