Главная страница
    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.009 c
14-38543
Ketmar
2003-01-27 17:10
2003.02.13
высокая поэзия


4-38626
SaperXL
2002-12-31 04:27
2003.02.13
рагистрация своих шрифтов


7-38613
_igor
2002-12-09 12:34
2003.02.13
Поиск файла по фрагменту имени


8-38402
Illusian Dolphin
2002-10-27 21:45
2003.02.13
Прозрачная форма


14-38457
pasha676
2003-01-30 13:37
2003.02.13
Два компа соединить по интернету





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