示例#1
0
void NewGame(Game *game)
{
  game->level = 0;
  game->score = 0;
  game->NumZombies = 0;
  game->NumGraves = 0;
  game->NumVillagers = 0;  
  ClearEntities();
  InitEntityList();
  ResetAllParticles();
}
示例#2
0
void Init_All()
{
  Init_Graphics();
  InitSpriteList();
  Init_Audio();
  InitSoundList();
  atexit(CleanUpAll);
  LoadFonts();
  InitMessages();
  LoadMouse(Cyan,Gold,DarkViolet);
  InitEntityList();
  ResetAllParticles();
  DrawSplashScreen();
  LoadContent();
  NewMap(32, 48,0,15);
  DrawMap();
}
示例#3
0
void NewLevel(Game *game, int graves,int villagers)  /*sets up a new level*/
{
  int i;
  int j;
  int width;
  int height;
  int sx,sy;
  if(BgMusic != NULL)
  {
    Mix_HaltMusic();
    Mix_FreeMusic(BgMusic);
  }
  BgMusic = Mix_LoadMUS("sounds/ambiant02.ogg");
  if(BgMusic == NULL)
  {
    fprintf(stderr, "Unable to Load Background Music: %s\n", SDL_GetError());
    exit(1);
  }
  Mix_VolumeMusic(MIX_MAX_VOLUME);
  Mix_PlayMusic(BgMusic,-1);/*play my background music infinitely*/
  game->level++;
  width = (int)sqrt(graves);
  if(width == 0)width = 1;
  height = graves / width;
  sx = 14 - (width/2);
  sy = 12 - (height/2);
  game->NumGraves =0;
  game->NumVillagers = villagers;  
  game->NumZombies = 0;
  ClearEntities();  /*lets get rid of what we ain't usin*/
  InitEntityList();
  ResetAllParticles();
  for(i = 0;i < 16;i++)
    SpawnTree((((rand()>>8) % 15)*2),(((rand()>>8) % 10)*2)+2, 200);
  for(j = 0;j < height;j++)
  {
    for(i = 0;i < width;i++)
    {
      SpawnCenter((i*2) + sx,(j*2)+ sy, 1,(rand()>>8)%2);
      game->NumGraves++;
    }
  }
  UpdateEntities();
}
示例#4
0
文件: game.c 项目: jam92/IT276-Aard
void InitAll()
{
	float bgcolor[] = {1,1,1,1};
	InitSpriteList();
	Init_Graphics("Aard:GTS",
    800,
    600,
    800,
    600,
    bgcolor);
	InitEntityList();
	InitKeyData();
	if(!Mix_Init(MIX_INIT_FLAC | MIX_INIT_MOD | MIX_INIT_MP3 | MIX_INIT_OGG))
	{
		printf("Failed to Mix_init");
		exit(1);
	}
	Mix_OpenAudio(22050,MIX_DEFAULT_FORMAT,2,1024 );


}
示例#5
0
void loadStage(char *filename)
{
  FILE* file;
  char  buf[200];
  int   numheight;
  int h,w;
  currentStage.ingame = 1;
  InitEntityList();
  numheight=0;
  file = fopen(filename, "r");
  if(!file)
  {
    fprintf(stderr, "failed to open scene file %s\n", filename);
    exit(1);
  }
  
  while(fscanf(file, "%s", buf) != EOF)
  {
    switch(buf[0]) 
    {
      case 's':
        fscanf(file, "%f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f", &currentStage.tilemap[numheight][0], &currentStage.tilemap[numheight][1], &currentStage.tilemap[numheight][2],&currentStage.tilemap[numheight][3],&currentStage.tilemap[numheight][4],&currentStage.tilemap[numheight][5],&currentStage.tilemap[numheight][6],&currentStage.tilemap[numheight][7],&currentStage.tilemap[numheight][8],&currentStage.tilemap[numheight][9],&currentStage.tilemap[numheight][10],&currentStage.tilemap[numheight][11],&currentStage.tilemap[numheight][12],&currentStage.tilemap[numheight][13],&currentStage.tilemap[numheight][14],&currentStage.tilemap[numheight][15],&currentStage.tilemap[numheight][16],&currentStage.tilemap[numheight][17],&currentStage.tilemap[numheight][18],&currentStage.tilemap[numheight][19]);
        if(numheight < SPACE_H)numheight++;
        break;
      default:
        fgets(buf, sizeof(buf), file);
        break;
    }
  }
  fclose(file);
  spawnPlayer(0,-20,0);
  for(h=0;h < SPACE_H;h++)
  {
    for(w=0;w < SPACE_W;w++)
    {	
      if(currentStage.tilemap[h][w] == 1)
      {	
        if(w > 10)
        {
          spawnEnemy1((w-10) * 4.5f,h* 14.5f, 0);
        }else spawnEnemy1((float)((w-10) * 4),h* 14.5f, 0);
      }
      if(currentStage.tilemap[h][w] == 2)
      {
        if(w > 10)
        {
          spawnEnemy2((w-10) * 4.5f,h* 14.5f, 0);
        }else spawnEnemy2((float)((w-10) * 4),h* 14.5f, 0);
      }
      if(currentStage.tilemap[h][w] == 3)
      {
        if(w > 10)
        {
          spawnEnemy3((w-10) * 4.5f,h* 14.5f, 0);
        }else spawnEnemy3((float)((w-10) * 4),h* 14.5f, 0);
      }
      if(currentStage.tilemap[h][w] == 4)
      {
        if(w > 10)
        {
          spawnBoss1((w-10) * 4.5f,h* 14.5f, 0);
        }else spawnBoss1((float)((w-10) * 4),h* 14.5f, 0);
      }
    }
  }
}