Пример #1
0
Tee::Tee(int id, Vector3f pos)
: pos(pos)
, tileID(id)
{
	setType(Tee_t);
	color = { 0.0, 1.0, 1.0, 1.0 };
	dimensions.height = .05f;
	dimensions.slices = 7;
	dimensions.radius = .02f;
	dimensions.stacks = 3;

	setCollider(new CircleCollider(pos, dimensions.radius));
}
Пример #2
0
VillagerC::VillagerC()
{
	Texture* tex = textureLoader::getTexture("friendly_npcs");
	AnimatedSprite sprite = AnimatedSprite(&tex->texture, 0, 0, tex->cellWidth, tex->cellHeight, 0 * tex->uSize, 5 * tex->vSize, 1 * tex->uSize, 1 * tex->vSize);
	*this = VillagerC((VillagerC&)sprite);
	type = 1;
	name = "villagerC";
	isAnimated = false;

	//Setup Collider
	int xOffset = 18;
	int yOffset = 15;
	int width = 28;
	int height = 45;
	float uSize = 1;
	float vSize = 1;
	colliderXOffset = xOffset;
	colliderYOffset = yOffset;
	setCollider(&AABB(x + xOffset, y + yOffset, width, height));
	maxSpeed = 50;
	isColliderDrawn = false;
	
	// Walking Animation
	int numFrames = 1;
	int timeToNextFrame = 300;
	std::vector<AnimationFrame> frames;
	frames.assign(numFrames, AnimationFrame());

	frames[0] = AnimationFrame(0, 5, uSize, vSize);
	//frames[1] = AnimationFrame(1, 0, uSize, vSize);
	Animation animation_walking = Animation("Walking", frames, numFrames);
	animations[animation_walking.name] = AnimationData(animation_walking, timeToNextFrame, true);

	// Idle Animation
	numFrames = 1;
	frames.clear();
	frames.assign(numFrames, AnimationFrame());

	frames[0] = AnimationFrame(0, 5, uSize, vSize);
	Animation animation_idle = Animation("Idle", frames, numFrames);
	animations[animation_idle.name] = AnimationData(animation_idle, timeToNextFrame, true);

	//setAnimation("Walking");
}
Пример #3
0
Chicken::Chicken()
{
   Texture* tex = textureLoader::getTexture("cucco");
   AnimatedSprite sprite = AnimatedSprite(&tex->texture, 0, 0, tex->width, tex->height, 0, 0, 0.5, 1);
   *this = Chicken((Chicken&)sprite);
   type = 1;
   name = "cucco";

   //Setup Collider
   int xOffset = 20;
   int yOffset = 25;
   int width = 20;
   int height = 20;
   float uSize = 0.5;
   float vSize = 1;
   colliderXOffset = xOffset;
   colliderYOffset = yOffset;
   setCollider(&AABB(x + xOffset, y + yOffset, width, height));
   maxSpeed = 50;

   // Walking Animation
   int numFrames = 2;
   int timeToNextFrame = 300;
   std::vector<AnimationFrame> frames;
   frames.assign(numFrames, AnimationFrame());

   frames[0] = AnimationFrame(0, 0, uSize, vSize);
   frames[1] = AnimationFrame(0.5, 0, uSize, vSize);
   Animation animation_walking = Animation("Walking", frames, numFrames);
   animations[animation_walking.name] = AnimationData(animation_walking, timeToNextFrame, true);

   // Idle Animation
   numFrames = 1;
   frames.clear();
   frames.assign(numFrames, AnimationFrame());
   
   frames[0] = AnimationFrame(0, 0, uSize, vSize);
   Animation animation_idle = Animation("Idle", frames, numFrames);
   animations[animation_idle.name] = AnimationData(animation_idle, timeToNextFrame, true);
   
   setAnimation("Walking");
}
Пример #4
0
/*extern */void dInitColliders()
{
    dIASSERT(!colliders_initialized);
    colliders_initialized = 1;

    memset (colliders,0,sizeof(colliders));

    int i,j;

    // setup space colliders
    for (i=dFirstSpaceClass; i <= dLastSpaceClass; i++) {
        for (j=0; j < dGeomNumClasses; j++) {
            setCollider (i,j,&dCollideSpaceGeom);
        }
    }

    setCollider (dSphereClass,dSphereClass,&dCollideSphereSphere);
    setCollider (dSphereClass,dBoxClass,&dCollideSphereBox);
    setCollider (dSphereClass,dPlaneClass,&dCollideSpherePlane);
    setCollider (dBoxClass,dBoxClass,&dCollideBoxBox);
    setCollider (dBoxClass,dPlaneClass,&dCollideBoxPlane);
    setCollider (dCapsuleClass,dSphereClass,&dCollideCapsuleSphere);
    setCollider (dCapsuleClass,dBoxClass,&dCollideCapsuleBox);
    setCollider (dCapsuleClass,dCapsuleClass,&dCollideCapsuleCapsule);
    setCollider (dCapsuleClass,dPlaneClass,&dCollideCapsulePlane);
    setCollider (dRayClass,dSphereClass,&dCollideRaySphere);
    setCollider (dRayClass,dBoxClass,&dCollideRayBox);
    setCollider (dRayClass,dCapsuleClass,&dCollideRayCapsule);
    setCollider (dRayClass,dPlaneClass,&dCollideRayPlane);
    setCollider (dRayClass,dCylinderClass,&dCollideRayCylinder);
#if dTRIMESH_ENABLED
    setCollider (dTriMeshClass,dSphereClass,&dCollideSTL);
    setCollider (dTriMeshClass,dBoxClass,&dCollideBTL);
    setCollider (dTriMeshClass,dRayClass,&dCollideRTL);
    setCollider (dTriMeshClass,dTriMeshClass,&dCollideTTL);
    setCollider (dTriMeshClass,dCapsuleClass,&dCollideCCTL);
    setCollider (dTriMeshClass,dPlaneClass,&dCollideTrimeshPlane);
    setCollider (dCylinderClass,dTriMeshClass,&dCollideCylinderTrimesh);
#endif

#ifdef dLIBCCD_BOX_CYL
    setCollider (dBoxClass,dCylinderClass,&dCollideBoxCylinderCCD);
#else
    setCollider (dCylinderClass,dBoxClass,&dCollideCylinderBox);
#endif
    setCollider (dCylinderClass,dSphereClass,&dCollideCylinderSphere);
    setCollider (dCylinderClass,dPlaneClass,&dCollideCylinderPlane);

#ifdef dLIBCCD_CYL_CYL
    setCollider (dCylinderClass, dCylinderClass, &dCollideCylinderCylinder);
#endif
#ifdef dLIBCCD_CAP_CYL
    setCollider (dCapsuleClass, dCylinderClass, &dCollideCapsuleCylinder);
#endif

    //--> Convex Collision
#ifdef dLIBCCD_CONVEX_BOX
    setCollider (dConvexClass, dBoxClass, &dCollideConvexBoxCCD);
#else
    setCollider (dConvexClass,dBoxClass,&dCollideConvexBox);
#endif

#ifdef dLIBCCD_CONVEX_CAP
    setCollider (dConvexClass,dCapsuleClass,&dCollideConvexCapsuleCCD);
#else
    setCollider (dConvexClass,dCapsuleClass,&dCollideConvexCapsule);
#endif

#ifdef dLIBCCD_CONVEX_CYL
    setCollider (dConvexClass,dCylinderClass,&dCollideConvexCylinderCCD);
#endif

#ifdef dLIBCCD_CONVEX_SPHERE
    setCollider (dConvexClass,dSphereClass,&dCollideConvexSphereCCD);
#else
    setCollider (dSphereClass,dConvexClass,&dCollideSphereConvex);
#endif

#ifdef dLIBCCD_CONVEX_CONVEX
    setCollider (dConvexClass,dConvexClass,&dCollideConvexConvexCCD);
#else
    setCollider (dConvexClass,dConvexClass,&dCollideConvexConvex);
#endif

    setCollider (dConvexClass,dPlaneClass,&dCollideConvexPlane);
    setCollider (dRayClass,dConvexClass,&dCollideRayConvex);
    //<-- Convex Collision

    //--> dHeightfield Collision
    setCollider (dHeightfieldClass,dRayClass,&dCollideHeightfield);
    setCollider (dHeightfieldClass,dSphereClass,&dCollideHeightfield);
    setCollider (dHeightfieldClass,dBoxClass,&dCollideHeightfield);
    setCollider (dHeightfieldClass,dCapsuleClass,&dCollideHeightfield);
    setCollider (dHeightfieldClass,dCylinderClass,&dCollideHeightfield);
    setCollider (dHeightfieldClass,dConvexClass,&dCollideHeightfield);
#if dTRIMESH_ENABLED
    setCollider (dHeightfieldClass,dTriMeshClass,&dCollideHeightfield);
#endif
    //<-- dHeightfield Collision

    setAllColliders (dGeomTransformClass,&dCollideTransform);
}
Пример #5
0
static void setAllColliders (int i, dColliderFn *fn)
{
    for (int j=0; j<dGeomNumClasses; j++) setCollider (i,j,fn);
}
static void initColliders()
{
  int i,j;

  if (colliders_initialized) return;
  colliders_initialized = 1;

  memset (colliders,0,sizeof(colliders));

  // setup space colliders
  for (i=dFirstSpaceClass; i <= dLastSpaceClass; i++) {
    for (j=0; j < dGeomNumClasses; j++) {
      setCollider (i,j,&dCollideSpaceGeom);
    }
  }

  setCollider (dSphereClass,dSphereClass,&dCollideSphereSphere);
  setCollider (dSphereClass,dBoxClass,&dCollideSphereBox);
  setCollider (dSphereClass,dPlaneClass,&dCollideSpherePlane);
  setCollider (dBoxClass,dBoxClass,&dCollideBoxBox);
  setCollider (dBoxClass,dPlaneClass,&dCollideBoxPlane);
  setCollider (dCCylinderClass,dSphereClass,&dCollideCCylinderSphere);
  setCollider (dCCylinderClass,dBoxClass,&dCollideCCylinderBox);
  setCollider (dCCylinderClass,dCCylinderClass,&dCollideCCylinderCCylinder);
  setCollider (dCCylinderClass,dPlaneClass,&dCollideCCylinderPlane);
  setCollider (dRayClass,dSphereClass,&dCollideRaySphere);
  setCollider (dRayClass,dBoxClass,&dCollideRayBox);
  setCollider (dRayClass,dCCylinderClass,&dCollideRayCCylinder);
  setCollider (dRayClass,dPlaneClass,&dCollideRayPlane);
#ifdef dTRIMESH_ENABLED
  setCollider (dTriMeshClass,dSphereClass,&dCollideSTL);
  setCollider (dTriMeshClass,dBoxClass,&dCollideBTL);
  setCollider (dTriMeshClass,dRayClass,&dCollideRTL);
  setCollider (dTriMeshClass,dTriMeshClass,&dCollideTTL);
  setCollider (dTriMeshClass,dCCylinderClass,&dCollideCCTL);
#endif
  setAllColliders (dGeomTransformClass,&dCollideTransform);
}
Пример #7
0
Goal::Goal(void) : GameObject()
{
	setCollider(-25, -10, -25, 10, 25, 10, 25, -10);
	setOriginalPosition(-25, -10, -25, 10, 25, 10, 25, -10);
}