コード例 #1
0
ファイル: TurtleShell.cpp プロジェクト: philhey/scroller
static void
HandleCollision (Entity *ent, Entity *ent2, Vec3f norm)
{

	if (ent2 && fabs(norm.x) > .8)
	{
		ent->vel.x += ent2->vel.x;
	}
	if (norm.Dot (ent->vel) < 0) // moving torwards entity
	{
		// velocity
		if (fabs(norm.y) > 0.5) // slide along floors
			ent->vel -= norm.Project(ent->vel)*1.5;
		else // bounce off walls
			ent->vel -= norm.Project(ent->vel)*1.2;
		if (ent2 && (ent2->type & ET_PLAYER) && fabs(norm.x) > .8)
		{
			ent->vel.x += ent2->vel.x*1.2;
		}

		ent->vel.z = 0.;
	}

}