Move Bongo in polar coordinates. More...
#include <Controllers.h>
Public Member Functions | |
| BongoRealMover (Engine *parent, Bongo *pquad) | |
| bool | Init (XRes *resource, XCongo *xcongo) |
| Call to perform initalization based on resource. | |
| bool | ProcessKey (int key, Engine::KeyEvent type, int x, int y) |
| Process key event. | |
| BongoRealMover (Engine *parent, Bongo *pquad) | |
| bool | Init (XRes *resource, XCongo *xcongo) |
| Call to perform initalization based on resource. | |
| bool | ProcessKey (int key, Engine::KeyEvent type, int x, int y) |
| Process key event. | |
Private Attributes | |
| Engine * | mpParent |
| Bongo * | mpBongo |
| double | mPower |
| double | mDirection [3] |
| bool | mbMoving |
Move Bongo in polar coordinates.
TODO: This is not well supported yet. Use BongoOrthoMover for now.
Definition at line 176 of file Controllers.h.
| BongoRealMover::BongoRealMover | ( | Engine * | parent, |
| Bongo * | pquad | ||
| ) |
Definition at line 244 of file Controllers.cpp.
References Engine::GetViewer(), mDirection, mPower, mpParent, and vec_ofpow().
: mpParent(parent), mpBongo(pquad), mbMoving(false) { mpParent->GetViewer(mDirection, mDirection + 1, mDirection + 2); vec_ofpow(mDirection, -mPower); mDirection[1] = 0.0; }
| BongoRealMover::BongoRealMover | ( | Engine * | parent, |
| Bongo * | pquad | ||
| ) |
| bool BongoRealMover::Init | ( | XRes * | resource, |
| XCongo * | xcongo | ||
| ) | [virtual] |
Call to perform initalization based on resource.
Reimplemented from Controller.
Definition at line 254 of file Controllers.cpp.
References XRes::DoubleValue(), and mPower.
{
if (!resource->DoubleValue("mPower", &mPower) )
{
fprintf(stderr, "error: BongoRealMover power\n");
return false;
}
return true;
}
| bool BongoRealMover::Init | ( | XRes * | resource, |
| XCongo * | xcongo | ||
| ) | [virtual] |
Call to perform initalization based on resource.
Reimplemented from Controller.
| bool BongoRealMover::ProcessKey | ( | int | key, |
| Engine::KeyEvent | type, | ||
| int | x, | ||
| int | y | ||
| ) | [virtual] |
Process key event.
| key | Key which triggered action |
| type | KEY_UP or KEY_DOWN |
| x | cursor position |
| y | cursor position |
Implements Controller.
| bool BongoRealMover::ProcessKey | ( | int | key, |
| Engine::KeyEvent | type, | ||
| int | x, | ||
| int | y | ||
| ) | [virtual] |
Process key event.
| key | Key which triggered action |
| type | KEY_UP or KEY_DOWN |
| x | cursor position |
| y | cursor position |
Implements Controller.
Definition at line 266 of file Controllers.cpp.
References Bongo::Fire(), GLUT_SPEC_KEY_DOWN, GLUT_SPEC_KEY_LEFT, GLUT_SPEC_KEY_RIGHT, GLUT_SPEC_KEY_UP, Engine::KEY_UP_EX, mbMoving, mDirection, mpBongo, mPower, mpParent, Engine::mQuads, Quad_impl::SetDirection(), vec_mul(), and vec_rotateY().
{
double dir[3] = { 0.0, 0.0, 0.0 };
if (Engine::KEY_UP_EX == type)
{
if (GLUT_SPEC_KEY_UP == key || GLUT_SPEC_KEY_DOWN == key)
{
mbMoving = false;
mpBongo->SetDirection(dir);
}
return true;
}
switch (key)
{
case GLUT_SPEC_KEY_UP:
mpBongo->SetDirection(mDirection);
mbMoving = true;
break;
case GLUT_SPEC_KEY_DOWN:
{
memcpy(dir, mDirection, sizeof(dir) );
vec_mul(dir, -1.0);
mpBongo->SetDirection(dir);
mbMoving = true;
break;
}
case GLUT_SPEC_KEY_LEFT:
{
vec_rotateY(mDirection, M_PI * 5 *mPower /2);
if (mbMoving)
mpBongo->SetDirection(mDirection);
break;
}
case GLUT_SPEC_KEY_RIGHT:
{
vec_rotateY(mDirection, -M_PI * 5 *mPower /2);
if (mbMoving)
mpBongo->SetDirection(mDirection);
break;
}
case ' ':
{
Quad *q = mpBongo->Fire();
if (q)
mpParent->mQuads.push_back(q);
}
break;
}
return true;
}
bool BongoRealMover::mbMoving [private] |
Definition at line 189 of file Controllers.h.
Referenced by ProcessKey().
double BongoRealMover::mDirection [private] |
Definition at line 188 of file Controllers.h.
Referenced by BongoRealMover(), and ProcessKey().
Bongo * BongoRealMover::mpBongo [private] |
Definition at line 186 of file Controllers.h.
Referenced by ProcessKey().
double BongoRealMover::mPower [private] |
Definition at line 187 of file Controllers.h.
Referenced by BongoRealMover(), Init(), and ProcessKey().
Engine * BongoRealMover::mpParent [private] |
Definition at line 185 of file Controllers.h.
Referenced by BongoRealMover(), and ProcessKey().
1.8.0