CameraRef Camera::create(const EdsCameraRef& camera) {
     return CameraRef(new Camera(camera))->shared_from_this();
 }
Beispiel #2
0
CameraRef Camera::create()
{
    return CameraRef(new Camera());
}
Beispiel #3
0
	Scene::Scene(Vect2 avatarPosition) : GameObject() , m_acceptInput(true), m_outOfBoundsTimer(0),
	m_infoButtonTimer(0)
	{
		m_timeStep = 1.0f/60.0f;
		m_velIterations = 10;
		m_posIterations = 10;

		// setup initial world attributes
		b2Vec2 gravity;
		gravity.Set(0.0f, 10.0f);
		bool doSleep = true;
		mp_physicsWorld = new b2World(gravity, doSleep);
		mp_physicsWorld->SetAutoClearForces(false);
		
		m_blueprintIsActive = false;
		m_touchedDown = false;
		
		mp_contactListener = new Deadbeef::ContactListener();
		mp_physicsWorld->SetContactListener(mp_contactListener);
		
	#ifdef DEBUG
		mp_debugDraw = new b2DebugDrawer_OGL_ES();
		mp_debugDraw->SetFlags(b2DebugDraw::e_shapeBit | b2DebugDraw::e_jointBit | b2DebugDraw::e_aabbBit);// | b2DebugDraw::e_pairBit | b2DebugDraw::e_centerOfMassBit);
		mp_physicsWorld->SetDebugDraw(mp_debugDraw);
	#endif
		//setup Avatar
		m_Avatar = new Avatar(*mp_physicsWorld, avatarPosition); 

		// make ground body
		b2BodyDef groundBodyDef;
		groundBodyDef.position.Set(0.0f, 24.0f);
		mp_groundBody = mp_physicsWorld->CreateBody(&groundBodyDef);
		
		// attach ground fixture
		b2PolygonShape groundShape;
		groundShape.SetAsBox(128.0f, 1.0f);
		mp_groundBody->CreateFixture(&groundShape, 0.0f);
		
        // make ceiling body
		b2BodyDef skyBodyDef;
		skyBodyDef.position.Set(0.0f, -20.0f);
		mp_skyBody = mp_physicsWorld->CreateBody(&skyBodyDef);
		
		// attach ground fixture
        b2PolygonShape skyShape;
		skyShape.SetAsBox(128.0f, 1.0f);

		mp_skyBody->CreateFixture(&skyShape, 0.0f);
		
		
		Camera* newCamera = new Camera(*m_Avatar);
		mr_camera = CameraRef(newCamera);
		
		mp_cloudEmitter = new ParticleEmitter(Vect2(0, 0), 100, SpawnDefinitionRef(new CloudParticles(mr_camera)));
        
		mr_missionBrief = PopUpSpriteRef(new PopUpSprite("MissionBrief:MissionBrief", Vect2(16, 12), 1.0));
		
		// setup blueprint button
		mp_bluePrintButton = new Sprite("menu:InfoButton");
		mp_bluePrintButton->position.x = mr_camera->GetPosition().x + 32 - mp_bluePrintButton->size.x *.75;
		mp_bluePrintButton->position.y = mr_camera->GetPosition().y + 0 + mp_bluePrintButton->size.x *.75;
		//printf("%f, %f\n", mp_bluePrintButton->position.x, mp_bluePrintButton->position.y);
		
		
		mr_camera->AddChild(*m_Avatar);
		mr_camera->AddChild(*m_Avatar->GetMagnet());
		mr_camera->AddChild(*mp_cloudEmitter);
		mr_camera->AddChild(*mp_bluePrintButton);
	}