Показать сообщение отдельно
Старый 29.03.2009, 19:01   #11
Aceton
ПроЭктировщик
 
Аватар для Aceton
 
Регистрация: 22.03.2009
Сообщений: 140
Написано 15 полезных сообщений
(для 24 пользователей)
Ответ: Создание динамического массива объектов класса

сделал через map и указатели , вот пример загрузщика карты, правда недоделанный, но рабочий

читает из файла данные и рисует обьекты

#include "../lsd.h"
#include "../blitz3dsdk.h"
#include <fstream>
#include "../player.h"
#include "../terrain.h"
#include "../building.h"
#include <map>
using namespace std;

void CLSD::LoadMap(){
map<int,CBuilding*> buildings;
char buf[128];
char *param;
int i,j=1,p=10;
int item,type,x,y,z,X,Y,Z;

ifstream map;
map.open("D:\\map.map");
if(!map.good()){bbRuntimeError("Can't open map file!");}

while(map.getline(buf,sizeof(buf)))
{

param = strtok (buf," ");
i=0;
while (param!=NULL)
{
bbText(10,p,param);
p=p+10;

switch(i)
{
case 0:
item= atoi(param);
break;
case 1:
type= atoi(param);
break;
case 2:
x=atoi(param);
break;
case 3:
y=atoi(param);
break;
case 4:
z=atoi(param);
break;
case 5:
X=atoi(param);
break;
case 6:
Y=atoi(param);
break;
case 7:
Z=atoi(param);
break;
}
param = strtok (NULL," ");
i++;
}
//в зависимости от типа обьекта находим его описание
//и вызываем нужные классы и создаем обьект

switch(type)
{
case 2:
CBuilding *b = new CBuilding ;
b->CreateBuilding("objects/buildings/box/box.3ds",type,x,y,z,X,Y,Z);
buildings[j]=b;


break;
}
j++;
}



}
__________________
Все о создании и разработке игр и не только
(Offline)
 
Ответить с цитированием