void NewNugget(int num = 1) { for (int i=0; i<num; ++i) { int gx = rand() % 500 + 100; int gy = rand() % 300 + 100; Sprite &gspr = sprite_list.GetSprite("gold"); Object * nug = new GoldObject(gx, gy, gspr); world.AddObject(nug); } }
void Client::Play() { OgreEasy::SimpleOgreInit lOgreInit; if(!lOgreInit.initOgre()) { std::cout<<"Could not init ogre"<<std::endl; return; } Ogre::Root* lRoot = lOgreInit.mRoot.get(); Ogre::RenderWindow* lWindow = lOgreInit.mWindow; World* w = new World(); w->SetDebugMode(false); GameObject camObject = w->AddObject("camera"); camObject.AddCameraComponent("camera"); camObject.SetPosition(Ogre::Vector3(0,0,0)); camObject.LookAt(Ogre::Vector3(0,0,0)); GameObject& light2 = w->AddObject("point_light"); light2.AddLightComponent(Ogre::Light::LT_DIRECTIONAL); light2.SetPosition(Ogre::Vector3(0,0,40)); light2.LookAt(Ogre::Vector3(0,100,0)); GameObject& c = w->AddPhysicsObject("esine", "cube/Cube.mesh"); c.SetPosition(Ogre::Vector3(0,0,0)); c.AddBoxCollider(1,1,1); PhysicsComponent phys = c.GetPhysicsComponent(); phys.SetMass(1.0); c.SetMaterial("tex"); GameObject& c2 = w->AddPhysicsObject("esine2", "cube/Cube.mesh"); c2.SetPosition(Ogre::Vector3(1,2,1)); c2.AddBoxCollider(1,1,1); PhysicsComponent phys2 = c2.GetPhysicsComponent(); phys2.SetMass(1.0); c2.SetMaterial("tex"); GameObject& taso = w->AddPhysicsObject("taso", "cube/other/Cube.mesh"); taso.SetPosition(Ogre::Vector3(0, -10, 0)); taso.AddBoxCollider(10,0.1,10); taso.SetMaterial("plane"); PhysicsComponent phys3 = taso.GetPhysicsComponent(); phys3.SetMass(0.0); GameObject& anim = w->AddObject("anim" , "second_anim/Cube.mesh"); anim.SetPosition(Ogre::Vector3(0, -5, 0)); anim.SetMaterial("tex"); lRoot->clearEventTimes(); float f=0.0; unsigned long t=0; double d; Ogre::Timer* a = new Ogre::Timer(); while(!lWindow->isClosed()) { t=a->getMicroseconds(); camObject.SetPosition(Ogre::Vector3(cos(f)*15.0, -5, sin(f)*15.0)); camObject.LookAt(Ogre::Vector3(-0,-10,-0), Ogre::Vector3::UNIT_Y); w->Update(d); f+=d*.5; d = (double)(a->getMicroseconds()-t)/1000000; } delete w; }