Главная страница
    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.45 MB
Время: 0.01 c
14-38460
Dr.L.
2003-01-30 11:00
2003.02.13
Существует ли аналог Visual SourceSafe для Delphi ?


14-38542
Паша
2003-01-28 16:01
2003.02.13
Инициализация полей формы (D4, Win9x)


1-38368
Kaginava
2003-02-03 08:20
2003.02.13
QTINTF.dll


1-38334
Armageddon
2003-02-02 19:48
2003.02.13
Как можно сделать так, чтобы RichEdit не реагировал на нажатие кл


14-38482
Zhenka
2003-01-27 15:31
2003.02.13
Help по RxLib 2/75





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский