Главная страница
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.015 c
1-38234
Smithson
2003-02-05 12:19
2003.02.13
Динамический массив


14-38570
int64
2003-01-30 05:25
2003.02.13
О лицензионном Delphi


3-38094
denipod
2003-01-27 16:51
2003.02.13
Подключение к IB через прокси


1-38198
pum5a
2003-02-03 18:19
2003.02.13
Как вызвать процедуру наследника


1-38247
soware
2003-02-05 14:13
2003.02.13
Панель программ на