reporting now collision normal and collision point when collisions occur

This commit is contained in:
2010-12-01 10:18:45 +01:00
parent 7711142e4b
commit 4c1e016fc2
11 changed files with 18 additions and 19 deletions
+1 -1
View File
@@ -11,7 +11,7 @@
namespace asteroids {
bool AsteroidEntity::CollisionEvent (Engine::EntityBase* entity_state) {
bool AsteroidEntity::CollisionEvent (Engine::EntityBase* entity_state, vector3d point, vector3d normal) {
GameEntityType other_type = (GameEntityType) entity_state->mType;
if (other_type == GameEntityTypeRocket) {
+1 -1
View File
@@ -23,7 +23,7 @@ struct AsteroidEntity: public Engine::EntityBase {
mSubAsteroidsCount = 4;
}
virtual bool CollisionEvent (Engine::EntityBase *entity);
virtual bool CollisionEvent (Engine::EntityBase *entity, vector3d point, vector3d normal);
int mSubAsteroidsCount;
};
+1 -1
View File
@@ -26,7 +26,7 @@ struct RocketEntity: public Engine::EntityBase {
virtual ~RocketEntity() {};
virtual void Update (float delta_sec);
virtual bool CollisionEvent (Engine::EntityBase *entity) {
virtual bool CollisionEvent (Engine::EntityBase *entity, vector3d point, vector3d normal) {
return false;
}
+3 -1
View File
@@ -56,7 +56,7 @@ void ShipEntity::Update (float delta_sec) {
mAttackTimer -= delta_sec;
}
bool ShipEntity::CollisionEvent (Engine::EntityBase* entity) {
bool ShipEntity::CollisionEvent (Engine::EntityBase* entity, vector3d point, vector3d normal) {
GameEntityType other_type = (GameEntityType) entity->mType;
if (other_type == GameEntityTypeAsteroid) {
@@ -68,6 +68,7 @@ bool ShipEntity::CollisionEvent (Engine::EntityBase* entity) {
Engine::EventBasePtr explode_event (new Engine::EventBase());
explode_event->mEventType = EventShipExplode;
explode_event->mEventUnsignedInt = mId;
explode_event->mVector3d = normal;
QueueEvent (explode_event);
return true;
@@ -80,6 +81,7 @@ bool ShipEntity::CollisionEvent (Engine::EntityBase* entity) {
Engine::EventBasePtr explode_event (new Engine::EventBase());
explode_event->mEventType = EventShipExplode;
explode_event->mEventUnsignedInt = mId;
explode_event->mVector3d = normal;
QueueEvent (explode_event);
return true;
+1 -1
View File
@@ -46,7 +46,7 @@ struct ShipEntity: public Engine::EntityBase {
virtual void Attack ();
virtual void Update (float delta_sec);
virtual bool CollisionEvent (Engine::EntityBase *entity);
virtual bool CollisionEvent (Engine::EntityBase *entity, vector3d point, vector3d normal);
bool mAlive;
float mFadeTimer;