Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.02.13;
Скачать: CL | DM;

Вниз

Гэйм Энджин   Найти похожие ветки 

 
Some0ne. ©   (2002-09-09 01:09) [0]

Пишу свою игрушку, и столкнулся с такой проблемой:
я использую классы и обьекты. Есть 2 класса

TTank = class // танк
x,y,z:real;
Constructor Create(x,y);
........
end;

Tsurface = class // поверхность земли
function GetZ(x,y:real):real; // возвращает значение высоты в точке (х,у)
.......
End;

Из них создаются обьекты:

Ground := Tsurface.create;
player1 := TTank.create(x1,y1);
Player2 := TTank.create(x2,y2);
...............

Так вот, необходимо чтобы при создании объекта класса ТТанк (например player1), вызывалась функция объекта Ground.GetZ

Как мне КРАСИВО сделать подобное взаимодействие обьектов? А то мне каждый раз приходится писать:
player1.z := ground.GetZ(player1.x, player1.y);
player2.z := ground.GetZ(player2.x, player2.y);
..............................................


Вроде надо использовать иерархию, наследование и тд классов?

Помогите, плз, а то очень надо. Хороший проект простаивает. =(
Ну или дайте ссылку на то, как вообще на Дельфи писать свой игровой движок.....


 
irenfd ©   (2002-09-09 02:56) [1]

Я мыслю так: Если танк все равно стоит на земле (не может же он летать :-)) то сделай его наследником TSurface или что-то в этом роде, ведь рано или поздно будешь выяснять координату танка на земле - а это свойство танка, наследованное от TSurface и т д.


 
Artemiy   (2002-09-09 14:31) [2]

Some0ne.

попробуй так...

Tsurface = class // поверхность земли
function GetZ(x,y:real):real; // возвращает значение высоты в точке (х,у)
.......
End;

TTank = class(Tsurface) // танк
x,y,z:real;
Constructor Create(x,y);
........
end;

player1 := TTank.create(x1,y1);
Player2 := TTank.create(x2,y2);
...............
а в конструкторе TTank.Create
пишеш
x:=x;
y:=y;
z:=GetZ(x,y);



 
Some0ne ©   (2002-09-10 00:02) [3]

Спасибо всем. Попробую так сделать. А может ктонть знает где можно почитать про основные принципы написания Гэйм Энджина? А то самому изобретать велосипед не хочется.......


 
Artemiy   (2002-09-10 01:05) [4]

Some0ne
иди на www.gamedev.ru, там в есть ссылки на хорошие статьи!



Страницы: 1 вся ветка

Текущий архив: 2003.02.13;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.012 c
14-38450
Ihtiandr
2003-01-30 14:56
2003.02.13
TimaStamp


1-38260
MT
2003-02-03 09:06
2003.02.13
Как поместить картинку в таблицу или список?


14-38434
Stager
2003-01-25 00:46
2003.02.13
Нужны злые люди. Для критики.


1-38185
lipskiy
2003-02-02 20:22
2003.02.13
Как запустить программу в свернутом в трей виде (невидимо)?


1-38366
Leo_pr
2003-02-04 10:20
2003.02.13
Диалог !!!