本文整理汇总了C++中WorldObject::setVelocity方法的典型用法代码示例。如果您正苦于以下问题:C++ WorldObject::setVelocity方法的具体用法?C++ WorldObject::setVelocity怎么用?C++ WorldObject::setVelocity使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类WorldObject
的用法示例。
在下文中一共展示了WorldObject::setVelocity方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: explode
void ClusterBomb::explode()
{
#ifdef DEBUG
// printf("ClusterBomb just exploded!\n");
#endif
WorldObject * wo;
float angle = 6.28318 / BOMB_PIECES;
Vector a = Vector(1, 0, 0);
Vector b = Vector(0, 0, 1);
Vector c = Vector(0, .1, 0);
float mag = global::factory->getBlueprint(type).getSize().mag() / 4;
Vector off;
for (int i = 0; i < BOMB_PIECES; i++)
{
wo = new WorldObject(0, 0, DUMMY_SPHERE);
off = a * mag * sin(i * angle) + b * mag * cos(i * angle) + c;
wo->setPosition(position + off);
wo->setVelocity(velocity + off);
networkManager->network->getPhysicsPtr()->insertWorldObject(wo);
wo = new WorldObject(0, 0, DUMMY_SPHERE);
off = a * mag * cos(i * angle) + b * mag * sin(i * angle) - c;
wo->setPosition(position + off);
wo->setVelocity(velocity + off);
networkManager->network->getPhysicsPtr()->insertWorldObject(wo);
}
}
示例2: updateInput
//.........这里部分代码省略.........
io::keys['0'] = false;
networkManager->network->loadLevel("resources/bigplus.lvl");
}
if(io::keys['-']) {
io::keys['-'] = false;
networkManager->network->loadLevel("resources/ibigplus.lvl");
}
if(io::keys['c']) {
io::keys['c'] = false;
networkManager->network->serverConnect("127.0.0.1", 5060);
}
//stop music
if(io::keys['['])
{
global::soundManager->stopPlayingMusic();
}
//play music for carnage state
if(io::keys[']'] && music_delay <= 0)
{
if(stateType() == RESULTS_STATE)
{
global::soundManager->playResultWinSong();
}
else
{
global::soundManager->playCarnageSong();
}
music_delay = MUSIC_DELAY;
}
if(io::keys['n'] && music_delay <= 0)
{
if(stateType() == RESULTS_STATE)
{
global::soundManager->playNextResultSong();
}
else
{
global::soundManager->playNextCarnageSong();
}
music_delay = MUSIC_DELAY;
}
// TODO END DEMO CODE
// General Keyboard Layout
if(io::keys[27]) {
networkManager->network->serverDisconnect();
exit(0);
}
// FIRE CONTROLS
if (stateType() == CARNAGE_STATE) // only fire in the real carnage state
{
if((io::keys[' '] || io::mouse_buttons[MOUSE_LEFT] == GLUT_DOWN) &&
ammoTimers[ammoIndex] <= 0 &&
(ammoCounts[ammoIndex] > 0 || ammoCounts[ammoIndex] == -1))
{
switch(ammoIndex)
{
case 0:
global::soundManager->playCarnageSfx(0);
break;
case 1:
global::soundManager->playCarnageSfx(4);
break;
case 2:
global::soundManager->playCarnageSfx(3);
break;
case 3:
global::soundManager->playCarnageSfx(1);
break;
case 4:
global::soundManager->playCarnageSfx(2);
break;
case 5:
global::soundManager->playCarnageSfx(4);
break;
default:
break;
}
WorldObject *newObjPtr = global::factory->makeObject(ammoTypes[ammoIndex]);
newObjPtr->setPosition(camera->position() - Vector( 0.0f, 1.0f, 0.0f));
newObjPtr->setVelocity((camera->viewVec() + Vector(0.0f, 0.15f, 0.0f)) * 50); // offset the view vector a bit to more closely match the targeting reticle
networkManager->network->addObject(newObjPtr);
ammoTimers[ammoIndex] = ammoDelayTimers[ammoIndex];
if(ammoCounts[ammoIndex] != -1)
--ammoCounts[ammoIndex];
}
}
#endif
}