| 831 | } |
| 832 | |
| 833 | void CameraCullingDemo::switchViewCallback(Object* sender) |
| 834 | { |
| 835 | auto s = Director::getInstance()->getWinSize(); |
| 836 | |
| 837 | if (_cameraFirst == nullptr) |
| 838 | { |
| 839 | _cameraFirst = Camera::createPerspective(30.0f, (float)s.width / s.height, 10.0f, 200.0f); |
| 840 | _cameraFirst->setCameraFlag(CameraFlag::USER8); |
| 841 | _cameraFirst->setPosition3D(Vec3(-100.0f, 0.0f, 0.0f)); |
| 842 | _cameraFirst->lookAt(Vec3(1000.0f, 0.0f, 0.0f)); |
| 843 | _moveAction = MoveTo::create(4.f, Vec2(-_cameraFirst->getPositionX(), 0.0f)); |
| 844 | _moveAction->retain(); |
| 845 | auto seq = Sequence::create( |
| 846 | _moveAction, CallFunc::create(AX_CALLBACK_0(CameraCullingDemo::reachEndCallBack, this)), nullptr); |
| 847 | seq->setTag(100); |
| 848 | _cameraFirst->runAction(seq); |
| 849 | addChild(_cameraFirst); |
| 850 | } |
| 851 | |
| 852 | if (_cameraThird == nullptr) |
| 853 | { |
| 854 | _cameraThird = Camera::createPerspective(60, (float)s.width / s.height, 1, 1000); |
| 855 | _cameraThird->setCameraFlag(CameraFlag::USER8); |
| 856 | _cameraThird->setPosition3D(Vec3(0.0f, 130.0f, 130.0f)); |
| 857 | _cameraThird->lookAt(Vec3(0, 0, 0)); |
| 858 | addChild(_cameraThird); |
| 859 | } |
| 860 | |
| 861 | if (_cameraType == CameraType::FirstPerson) |
| 862 | { |
| 863 | _cameraType = CameraType::ThirdPerson; |
| 864 | _cameraThird->setCameraFlag(CameraFlag::USER1); |
| 865 | _cameraFirst->setCameraFlag(CameraFlag::USER8); |
| 866 | } |
| 867 | else if (_cameraType == CameraType::ThirdPerson) |
| 868 | { |
| 869 | _cameraType = CameraType::FirstPerson; |
| 870 | _cameraFirst->setCameraFlag(CameraFlag::USER1); |
| 871 | _cameraThird->setCameraFlag(CameraFlag::USER8); |
| 872 | _drawFrustum->clear(); |
| 873 | } |
| 874 | } |
| 875 | |
| 876 | void CameraCullingDemo::addMeshCallback(Object* sender) |
| 877 | { |
nothing calls this directly
no test coverage detected