Exemple #1
0
void TGApp::riverOverlay()
{
	for_each(world->rivers.begin(), world->rivers.end(), [&] (pair<pair<int,int>, mRiver*> pr)
	{
		MapRegion* r1 = world->regions[pr.first.first];
		MapRegion* r2 = world->regions[pr.first.second];
		ScreenLine* s = new ScreenLine(r1->getLocation(), r2->getLocation());
		s->setLineWidth(3);
		s->setColor(.1,0.,1,1);
		rvOver.push_back(s);
		screen->addChild(s);
	});
}
HelloPolycodeApp::HelloPolycodeApp(PolycodeView *view) {

#ifdef __APPLE__
	core = new CocoaCore(view, 640,480,false,false,0,0,90);	  
#else
	core = new SDLCore(view, 640,480,false,false,0,0,90);	  
#endif

	PhysicsScreen *screen = new PhysicsScreen(10, 50);

	ScreenShape *ceiling = new ScreenShape(ScreenShape::SHAPE_RECT, 640, 20);
	ceiling->setColor(0.0, 0.0, 0.0, 1.0);
	ceiling->setPosition(640/2, 10);
	screen->addPhysicsChild(ceiling, PhysicsScreenEntity::ENTITY_RECT, true);
	
	// Revolute Joint	
	ScreenShape *shape = new ScreenShape(ScreenShape::SHAPE_RECT, 10, 30);
	shape->setPosition(150, 20+15);
	screen->addPhysicsChild(shape, PhysicsScreenEntity::ENTITY_RECT, false);
	screen->createRevoluteJoint(shape, ceiling, 0, -15);
	screen->applyImpulse(shape, 10, 0);
	
	// Distance Joint	
	shape = new ScreenShape(ScreenShape::SHAPE_RECT, 10, 30);
	shape->setPosition(250, 20+25);
	screen->addPhysicsChild(shape, PhysicsScreenEntity::ENTITY_RECT, false);
	screen->createDistanceJoint(shape, ceiling, false);
	screen->applyImpulse(shape, 200, 0);
	
	ScreenLine *line = new ScreenLine(shape, ceiling);
	line->setColor(1.0, 0.0, 0.0, 1.0);
	screen->addChild(line);

	// Prismatic Joint	
	shape = new ScreenShape(ScreenShape::SHAPE_RECT, 10, 30);
	shape->setPosition(450, 20+25);
	screen->addPhysicsChild(shape, PhysicsScreenEntity::ENTITY_RECT, false);
	screen->createPrismaticJoint(ceiling, shape, Vector2(0,1), 0,0, false, 100, 0, true);

	ScreenEntity *lineAnchor = new ScreenEntity();
	lineAnchor->setPosition(450,10);
	line = new ScreenLine(shape, lineAnchor);
	line->setColor(0.0, 1.0, 0.0, 1.0);
	screen->addChild(line);
}