Improvements to bowling ball : shoot forward by default
git-svn-id: svn+ssh://svn.code.sf.net/p/supertuxkart/code/trunk/supertuxkart@2180 178a84e3-b1eb-0310-8ba1-8eac791a3b58
This commit is contained in:
parent
ba022c82cb
commit
3f59d84955
@ -112,6 +112,10 @@ void Camera::setMode(Mode mode)
|
|||||||
else
|
else
|
||||||
m_distance = m_kart->getKartProperties()->getCameraDistance();
|
m_distance = m_kart->getKartProperties()->getCameraDistance();
|
||||||
} // setMode
|
} // setMode
|
||||||
|
Camera::Mode Camera::getMode()
|
||||||
|
{
|
||||||
|
return m_mode;
|
||||||
|
}
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
/** Reset is called when a new race starts. Make sure that the camera
|
/** Reset is called when a new race starts. Make sure that the camera
|
||||||
|
@ -59,6 +59,7 @@ private:
|
|||||||
public:
|
public:
|
||||||
Camera (int camera_index, const Kart* kart);
|
Camera (int camera_index, const Kart* kart);
|
||||||
void setMode (Mode mode_); /** Set the camera to the given mode */
|
void setMode (Mode mode_); /** Set the camera to the given mode */
|
||||||
|
Mode getMode();
|
||||||
void setScreenPosition(int pos);
|
void setScreenPosition(int pos);
|
||||||
void reset ();
|
void reset ();
|
||||||
void update (float dt);
|
void update (float dt);
|
||||||
|
@ -18,22 +18,34 @@
|
|||||||
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
|
|
||||||
#include "spark.hpp"
|
#include "spark.hpp"
|
||||||
|
#include "player_kart.hpp"
|
||||||
|
#include "camera.hpp"
|
||||||
|
|
||||||
float Spark::m_st_max_distance; // maximum distance for a spark to be attracted
|
float Spark::m_st_max_distance; // maximum distance for a spark to be attracted
|
||||||
float Spark::m_st_force_to_target;
|
float Spark::m_st_force_to_target;
|
||||||
|
|
||||||
// -----------------------------------------------------------------------------
|
// -----------------------------------------------------------------------------
|
||||||
Spark::Spark(Kart *kart) : Flyable(kart, COLLECT_BOWLING)
|
Spark::Spark(Kart *kart) : Flyable(kart, COLLECT_BOWLING)
|
||||||
{
|
{
|
||||||
float y_offset = -0.5f*kart->getKartLength()-2.0f*m_extend.getY();
|
float y_offset = 0.5f*kart->getKartLength()+2.0f*m_extend.getY();
|
||||||
float speed = -m_speed;
|
|
||||||
// if the kart is driving backwards, release from the front
|
// if the kart is looking backwards, release from the back
|
||||||
if(m_owner->getSpeed()<0)
|
PlayerKart* pk = dynamic_cast<PlayerKart*>(kart);
|
||||||
|
const bool reverse_mode = (pk != NULL && pk->getCamera()->getMode() == Camera::CM_REVERSE);
|
||||||
|
if( reverse_mode )
|
||||||
{
|
{
|
||||||
y_offset = -y_offset;
|
y_offset = -y_offset;
|
||||||
speed = -speed;
|
m_speed = -m_speed*2;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
/* make it go faster when throwing forward
|
||||||
|
so the player doesn't catch up with the ball
|
||||||
|
and explode by touching it */
|
||||||
|
m_speed *= 3;
|
||||||
}
|
}
|
||||||
|
|
||||||
createPhysics(y_offset, btVector3(0.0f, speed, 0.0f),
|
createPhysics(y_offset, btVector3(0.0f, m_speed*2, 0.0f),
|
||||||
new btSphereShape(0.5f*m_extend.getY()), true /*gravity*/, true /*rotates*/);
|
new btSphereShape(0.5f*m_extend.getY()), true /*gravity*/, true /*rotates*/);
|
||||||
|
|
||||||
// unset no_contact_response flags, so that the spark
|
// unset no_contact_response flags, so that the spark
|
||||||
|
Loading…
Reference in New Issue
Block a user