예제 #1
0
void Player::Start()
{
	IsTrigger(true);
	SetGravity(0.0f);
	SetVelocity(0.0f,0.0f);
	SetFriction(0.1f);
	SetDamping(1.0f);
	SetAngularDamping(1.5f);
	lives = 3;
	SetState(NormalState);
	lookAtPoint = Vector2(2.0f, 2.0f);
	speed = 7.0f;
	firstFire = true;
}
예제 #2
0
void CsShipObject::Spawn() {
	assert(mNode);
	//if(!mRightWing->getParentSceneNode()) mNode->addChild(mRightWing);
	//if(!mLeftWing->getParentSceneNode()) mNode->addChild(mLeftWing);

	//if(!mNode->getParent()) CsGame::GetSingletonPtr()->GetSceneMgr()->getRootSceneNode()->addChild(mNode);
	CsRenderMessage msg;
	msg.type = CsRenderMessage::ATTACH_NODE;
	msg.info.nodeInfo.parent = CsGame::GetSingletonPtr()->GetSceneMgr()->getRootSceneNode();
	msg.info.nodeInfo.child = mNode;
	CsGame::GetSingletonPtr()->GetRenderTempQueue()->push(msg);

	msg.info.nodeInfo.parent = mNode;
	msg.info.nodeInfo.child = mPerfectModel;
	CsGame::GetSingletonPtr()->GetRenderTempQueue()->push(msg);

	msg.info.nodeInfo.child = mRightWing;
	CsGame::GetSingletonPtr()->GetRenderTempQueue()->push(msg);

	msg.info.nodeInfo.child = mLeftWing;
	CsGame::GetSingletonPtr()->GetRenderTempQueue()->push(msg);

	// stimalsena: re-enabled
	//msg.type = CsRenderMessage::SHOW_DOT;
	//msg.info.dot = mDot;
	//CsGame::GetSingletonPtr()->GetRenderTempQueue()->push(msg);
	//--------------------
	// now start the physics part
	
	if (!mRigidBody->isInWorld()) CsGame::GetSingletonPtr()->GetBulletManager()->GetDynamicsWorld()->addRigidBody(mRigidBody, Chaos::SHIP_OBJECT, Chaos::SHIP_MASK);
	//mRigidBody->setActivationState(ACTIVE_TAG);

	mShipStatus = ACTIVE;
	mHP = Chaos::PERFECT;
	mPrevHealth = mCurrentHealth = Chaos::PERFECT;

	if (mAIShip) {
		mFSM->SetCurrentState(CsIdle::Instance());
		//mFSM->ChangeState(CsChase::Instance());
	}

	SetDamping();
	ResetDamping();
	ResetThrottle();
	mActive = true;
	
	// sounds
	mJetSound.Loop(true);
	mJetSound.Play();
}
예제 #3
0
void PhysicsWorld::SetDamping(float damping)
{
	SetDamping(damping, damping);
}