Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Игры";
Текущий архив: 2003.02.13;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.008 c
1-38195
multik
2003-02-04 22:52
2003.02.13
Как в treeview узнать есть ли у него подузел


1-38318
ИгорьК
2003-01-31 11:29
2003.02.13
DHTML Edit Control for IE 5.0


8-38404
HardClubber
2002-10-19 07:46
2003.02.13
TPaintBox vs TBitmap


14-38481
Ketmar
2003-01-25 17:34
2003.02.13
клиент для чата мастаков, альфа версия.


14-38529
race1
2003-01-26 14:49
2003.02.13
com





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский