示例#1
0
Projectile AnchorLauncher::fireWeapon(PhysicsObject& origin)
{
	SphereCollisionObject projectilePhysics = SphereCollisionObject(75, 1, origin.position());
	projectilePhysics.velocity(origin.velocity() + origin.heading() * 4000);
	projectilePhysics.orientation(origin.orientation());

	resetShotCounter();
	return Projectile(projectilePhysics, ObjectType::ANCHOR_PROJECTILE, 0, 120, memoryManager());
}
示例#2
0
Projectile PlasmaCannon::fireWeapon(PhysicsObject& origin)
{
	SphereCollisionObject projectilePhysics = SphereCollisionObject(75, 1, origin.position());
	projectilePhysics.velocity(origin.velocity() + origin.heading() * 12000);
	// projectilePhysics.applyForce(origin.heading() * 4000);
	projectilePhysics.orientation(origin.orientation());

	if(m_shootLeft) {
		projectilePhysics.position(origin.position() + 
			(origin.orientation() * Vector3(40, -30, -30)));
	} else {
		projectilePhysics.position(origin.position() + 
			(origin.orientation() * Vector3(-40, -30, -30)));
	}

	m_shootLeft = !m_shootLeft;
	resetShotCounter();
	return Projectile(projectilePhysics, ObjectType::PROJECTILE, 35, 10, memoryManager());
}