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)); }
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"); }
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"); }
/*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); }
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); }
Goal::Goal(void) : GameObject() { setCollider(-25, -10, -25, 10, 25, 10, 25, -10); setOriginalPosition(-25, -10, -25, 10, 25, 10, 25, -10); }