Ejemplo n.º 1
0
void Bullet::shutdown()
{
    // Delete any remaining joints
    while (!joints_.empty())
        deleteJoint(joints_[0]);

    // Delete all bodies
    while (!bodies_.empty())
        deleteBody(bodies_[0]);

    // Delete all body templates
    while (!bodyTemplates_.empty())
        deleteBodyTemplate(bodyTemplates_[0]);

    delete dynamicsWorld_;
    dynamicsWorld_ = nullptr;

    delete solver_;
    solver_ = nullptr;

    delete dispatcher_;
    dispatcher_ = nullptr;

    delete collisionConfiguration_;
    collisionConfiguration_ = nullptr;

    delete broadphase_;
    broadphase_ = nullptr;

    delete ghostPairCallback_;
    ghostPairCallback_ = nullptr;
}
Ejemplo n.º 2
0
void Troll::update(float dt)
{
	if (!dead)
	{
		ai->update(dt);
	}
	else
	{
		deathTimer += dt;
		
		if (!isFading)
		{
			if (deathAnim.curFrame != deathAnim.framesInAnimation-1)
			{
				rect = deathAnim.update(dt);
			}

			if (deathTimer >= timeToDie)
			{
				if (isGrounded())
				{
					deleteBody();

					isFading	= true;
					deathTimer	= 0.f;
					
					rect = deathAnim.frameIndex(deathAnim.framesInAnimation-1);
				}
			}
			else if (isGrounded())
			{
				deleteBody();
			}
		}
		else
		{
			if (deathTimer > fadeTime-1.f)
			{
				color.a = fadeTime - deathTimer;
				if (deathTimer >= fadeTime)
				{
					parent->removeChild(this, true);
				}
			}
		}
	}
}
Ejemplo n.º 3
0
void Physics::reset()
{
    size_t nbBodies = getBodyCount();
    //delete bodies from last to first, so their indices don't change
    for(size_t i(0); i <nbBodies;i++)
    {
        deleteBody(nbBodies-i-1);
    }
}
Ejemplo n.º 4
0
void QtButton::mousePressEvent(QMouseEvent *e)
{
	_QtEdit = QtEdit::getInstance();
	if (e->button() ==  Qt::RightButton && this_button_id <= _QtEdit->FPX)
	{
		//if (Is_AttFra || Is_InjFra || Is_ActFra || Is_BodyFra)
		if (_QtEdit->is_import)
		{
			_QtEdit->_DrawRectLayer->EndUpdate();
			if (_QtEdit->is_import)
			{
				//_QtEdit->_DrawRectLayer->unscheduleUpdate();
				_QtEdit->_DrawRectLayer->EndUpdate();
				_QtEdit->ui.PauseButton->setText("Start");
				_QtEdit->pu = -1;
				//_DrawRectLayer->drawPositionEdit(btn->Singl_ID);
			}
			_QtEdit->btn = this;
			_QtEdit->SlderAnimationAction();
			popMenu = new QMenu(this);
			if (Is_ActFra)
			{
				DeleteActAction = new QAction(this);
				DeleteActAction->setObjectName(QStringLiteral("mydeleteAction"));
				DeleteActAction->setText(QStringLiteral("ɾ³ý¶¯×÷¹Ø¼üÖ¡"));
				QObject::connect(DeleteActAction, SIGNAL(triggered()), this, SLOT(deleteAct()));
				popMenu->addAction(DeleteActAction);
				popMenu->addSeparator();
			}
			if (Is_AttFra)
			{
				DeleteAttAction = new QAction(this);
				DeleteAttAction->setObjectName(QStringLiteral("mydeleteAction"));
				DeleteAttAction->setText(QStringLiteral("ɾ³ý¹¥»÷¹Ø¼üÖ¡"));
				QObject::connect(DeleteAttAction, SIGNAL(triggered()), this, SLOT(deleteAtt()));
				popMenu->addAction(DeleteAttAction);
				ClearAttAction = new QAction(this);
				ClearAttAction->setObjectName(QStringLiteral("mydeleteAction"));
				ClearAttAction->setText(QStringLiteral("Çå¿Õ¹¥»÷¹Ø¼üÖ¡"));
				QObject::connect(ClearAttAction, SIGNAL(triggered()), this, SLOT(clearAtt()));
				popMenu->addAction(ClearAttAction);
				popMenu->addSeparator();
			}
			else
			{
				AddAttAction = new QAction(this);
				AddAttAction->setObjectName(QStringLiteral("mydeleteAction"));
				AddAttAction->setText(QStringLiteral("Ôö¼Ó¹¥»÷¹Ø¼üÖ¡"));
				QObject::connect(AddAttAction, SIGNAL(triggered()), this, SLOT(addAtt()));
				popMenu->addAction(AddAttAction);
				popMenu->addSeparator();
			}
			if (Is_InjFra)
			{
				DeleteInjAction = new QAction(this);
				DeleteInjAction->setObjectName(QStringLiteral("mydeleteAction"));
				DeleteInjAction->setText(QStringLiteral("ɾ³ýÊÜ»÷¹Ø¼üÖ¡"));
				QObject::connect(DeleteInjAction, SIGNAL(triggered()), this, SLOT(deleteInj()));
				popMenu->addAction(DeleteInjAction);
				ClearInjAction = new QAction(this);
				ClearInjAction->setObjectName(QStringLiteral("mydeleteAction"));
				ClearInjAction->setText(QStringLiteral("Çå¿ÕÊÜ»÷¹Ø¼üÖ¡"));
				QObject::connect(ClearInjAction, SIGNAL(triggered()), this, SLOT(clearInj()));
				popMenu->addAction(ClearInjAction);
				popMenu->addSeparator();
			}
			else
			{
				AddInjAction = new QAction(this);
				AddInjAction->setObjectName(QStringLiteral("mydeleteAction"));
				AddInjAction->setText(QStringLiteral("Ôö¼ÓÊÜ»÷¹Ø¼üÖ¡"));
				QObject::connect(AddInjAction, SIGNAL(triggered()), this, SLOT(addInj()));
				popMenu->addAction(AddInjAction);
				popMenu->addSeparator();
			}
			if (Is_BodyFra)
			{
				DeleteBodyAction = new QAction(this);
				DeleteBodyAction->setObjectName(QStringLiteral("mydeleteAction"));
				DeleteBodyAction->setText(QStringLiteral("ɾ³ýÅöײ¹Ø¼üÖ¡"));
				QObject::connect(DeleteBodyAction, SIGNAL(triggered()), this, SLOT(deleteBody()));
				popMenu->addAction(DeleteBodyAction);
				ClearBodyAction = new QAction(this);
				ClearBodyAction->setObjectName(QStringLiteral("mydeleteAction"));
				ClearBodyAction->setText(QStringLiteral("Çå¿ÕÅöײ¹Ø¼üÖ¡"));
				QObject::connect(ClearBodyAction, SIGNAL(triggered()), this, SLOT(clearBody()));
				popMenu->addAction(ClearBodyAction);
				popMenu->addSeparator();
			}
			else
			{
				AddBodyAction = new QAction(this);
				AddBodyAction->setObjectName(QStringLiteral("mydeleteAction"));
				AddBodyAction->setText(QStringLiteral("Ôö¼ÓÅöײ¹Ø¼üÖ¡"));
				QObject::connect(AddBodyAction, SIGNAL(triggered()), this, SLOT(addBody()));
				popMenu->addAction(AddBodyAction);
				popMenu->addSeparator();
			}
			if (Is_EffFra)
			{
				DeleteEffAction = new QAction(this);
				DeleteEffAction->setObjectName(QStringLiteral("mydeleteAction"));
				DeleteEffAction->setText(QStringLiteral("ɾ³ýÌØЧ¹Ø¼üÖ¡"));
				QObject::connect(DeleteEffAction, SIGNAL(triggered()), this, SLOT(deleteEff()));
				popMenu->addAction(DeleteEffAction);
				ClearEffAction = new QAction(this);
				ClearEffAction->setObjectName(QStringLiteral("mydeleteAction"));
				ClearEffAction->setText(QStringLiteral("Çå¿ÕÌØЧ¹Ø¼üÖ¡"));
				QObject::connect(ClearEffAction, SIGNAL(triggered()), this, SLOT(clearEff()));
				popMenu->addAction(ClearEffAction);
				popMenu->addSeparator();
			}
			else
			{
				AddEffAction = new QAction(this);
				AddEffAction->setObjectName(QStringLiteral("mydeleteAction"));
				AddEffAction->setText(QStringLiteral("Ôö¼ÓÌØЧ¹Ø¼üÖ¡"));
				QObject::connect(AddEffAction, SIGNAL(triggered()), this, SLOT(addEff()));
				popMenu->addAction(AddEffAction);
				popMenu->addSeparator();
			}
			if (Is_AttFra || Is_InjFra || Is_ActFra || Is_BodyFra || Is_EffFra)
			{
				DeleteAllAction = new QAction(this);
				DeleteAllAction->setObjectName(QStringLiteral("mydeleteAction"));
				DeleteAllAction->setText(QStringLiteral("ɾ³ýËùÓйؼüÖ¡"));
				QObject::connect(DeleteAllAction, SIGNAL(triggered()), this, SLOT(deleteFra()));
				popMenu->addAction(DeleteAllAction);
			}

			//else if (!(Is_AttFra && Is_InjFra && Is_ActFra && Is_BodyFra))
			//{
			//	AddAllAction = new QAction(this);
			//	AddAllAction->setObjectName(QStringLiteral("mydeleteAction"));
			//	AddAllAction->setText(QStringLiteral("Ôö¼ÓËùÓйؼüÖ¡"));
			//	QObject::connect(AddAllAction, SIGNAL(triggered()), this, SLOT(addFra()));
			//	popMenu->addAction(AddAllAction);
			//}
			popMenu->setStyleSheet("QMenu{background-color:rgb(255,255,255);color:rgb(0, 0, 0);font:10pt ""ËÎÌå"";}"
				"QMenu::item:selected{background-color:#CCDAE7;}");
			popMenu->exec(QCursor::pos());
		}

	}
	else
	{
		//ÆäËûµÄ·µ»Ø¸¸ÀàʹÓÃ
		__super::mousePressEvent(e);
	}
}