本文整理汇总了C++中Physics::addBehaviour方法的典型用法代码示例。如果您正苦于以下问题:C++ Physics::addBehaviour方法的具体用法?C++ Physics::addBehaviour怎么用?C++ Physics::addBehaviour使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Physics
的用法示例。
在下文中一共展示了Physics::addBehaviour方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: setup
void HelloParticlesApp::setup() {
timer = new Timer();
// init physics
Space* space = new Space(getWindowWidth(), getWindowHeight(), 0);
printf("init space %f %f %f\n", space->getWidth(), space->getHeight(), space->getDepth());
physics = new Physics(space);
Emitter* emitter = new Emitter(physics);
physics->emitter = emitter;
emitter->setPosition(space->getCenter());
emitter->setInterval(0.01);
emitter->setRate(1000);
emitter->setMax(5000);
emitter->addBehaviour(new RandomEmitter(space));
physics->addBehaviour(new Gravity());
// wrap
BoxWrap* wrap = new BoxWrap(*space);
wrap->preserveMomentum = false;
physics->addBehaviour(wrap);
// attractor
attractor = new AttractorPoint(space);
attractor->setRange(0.25);
attractor->setWeight(0);
physics->addBehaviour(attractor);
// init graphics
gl::VboMesh::Layout layout;
layout.setStaticIndices();
layout.setDynamicPositions();
layout.setStaticTexCoords2d();
vboParticles = gl::VboMesh(emitter->getMax(), 0, layout, GL_POINTS);
}
示例2: setup
// -- Init ---------------------------------------------------------------------
void FlockingParticlesApp::setup() {
timer = new Timer();
// init physics
BasicSpace* space = new BasicSpace(Vec3f::zero(), Vec3f(getWindowWidth(), getWindowHeight(), 0));
printf("init space %f %f %f\n", space->getWidth(), space->getHeight(), space->getDepth());
physics = new Physics(space);
Emitter* emitter = new Emitter(physics);
physics->emitter = emitter;
emitter->setPosition(space->getCenter());
emitter->setInterval(0.01);
emitter->setRate(1000);
emitter->setMax(1 * 1000);
emitter->addBehaviour(new BoxRandom(*space));
physics->addBehaviour(new Gravity(true));
// wrap
BoxWrap* wrap = new BoxWrap(*space);
wrap->preserveMomentum = false;
physics->addBehaviour(wrap);
// attractor
attractor = new AttractorPoint(space);
attractor->setRange(0.25);
attractor->setWeight(0);
physics->addBehaviour(attractor);
// flocking
FlockAlign* align = new FlockAlign(space);
align->setRange(0.25);
physics->addBehaviour(align);
FlockAttract* attract = new FlockAttract(space);
attract->setRange(0.25);
physics->addBehaviour(attract);
FlockRepel* repel = new FlockRepel(space);
repel->setRange(0.25);
physics->addBehaviour(repel);
// init graphics
gl::VboMesh::Layout layout;
layout.setStaticIndices();
layout.setDynamicPositions();
layout.setStaticTexCoords2d();
vboParticles = gl::VboMesh(emitter->getMax(), 0, layout, GL_POINTS);
//testParticleCreation();
}