You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
55 lines
1.5 KiB
55 lines
1.5 KiB
#include <world.h>
|
|
#include <getPos.h>
|
|
#include <collisionDetection.h>
|
|
#include <stdlib.h>
|
|
#include <getPos.h>
|
|
|
|
void addZombie(int y, int x){
|
|
if (y && x){
|
|
int i;
|
|
for(i=0;i<MAX_ENTITIES;i++){
|
|
if(!allEntities[i].isAlive){
|
|
struct Entity zombie;
|
|
zombie.curYpos=y;
|
|
zombie.curXpos=x;
|
|
zombie.prevYpos=y;
|
|
zombie.prevXpos=x;
|
|
zombie.type="zombie";
|
|
zombie.symbol='Z';
|
|
zombie.isAlive=1;
|
|
zombie.lastMoveClock = clock();
|
|
zombie.speed = (float)((rand()%10)+3)/10;
|
|
allEntities[i]=zombie;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
void moveZombies(){
|
|
int i;
|
|
for(i=1;i<MAX_ENTITIES;i++){
|
|
float maxZombieSpeed=.10;
|
|
allEntities[i].prevYpos = allEntities[i].curYpos;
|
|
allEntities[i].prevXpos = allEntities[i].curXpos;
|
|
if(allEntities[i].isAlive){
|
|
if(((float)(clock() - allEntities[i].lastMoveClock)/CLOCKS_PER_SEC) > allEntities[i].speed ){
|
|
getNextPos(allEntities[i].curYpos,allEntities[i].curXpos,allEntities[0].curYpos,allEntities[0].curXpos);
|
|
|
|
struct CollisionEvent collisionEvent = collisionDetect(nextPos.y,nextPos.x);
|
|
if(collisionEvent.collidedWithBoundary || collisionEvent.collidedWithUnPassableChar || collisionEvent.collidedWithItem || collisionEvent.collidedWithEntity){
|
|
if(collisionEvent.collidedWithEntity){
|
|
if(collisionEvent.collidedWithEntity->type,"zombie"){
|
|
}
|
|
}
|
|
}
|
|
else{
|
|
allEntities[i].curYpos = nextPos.y;
|
|
allEntities[i].curXpos = nextPos.x;
|
|
}
|
|
allEntities[i].lastMoveClock=clock();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|