Форум: "Игры";
Текущий архив: 2003.06.26;
Скачать: [xml.tar.bz2];
ВнизСцены Найти похожие ветки
← →
Vin (2003-01-12 15:04) [0]Как разбивать игру на сцены (при создании игры с использованием DelphiX)?
← →
Карлсон (2003-01-12 15:32) [1]заводите переменную типа integer.
в событии таймера пишем, что если эта переменная равна допустим 1, тогда отрисовываем такой-то набор спрайтов, если она равна 2, то другой и т.п.
← →
Vin (2003-01-13 17:54) [2]Можно поподробней, как именно нужно дать задачу отрисовывать опред. набор спрайтов в сцене?
← →
Карлсон (2003-01-13 18:27) [3]допустим вы объявляете класс:
TMonster = class(TImageSprite)
у класса есть конструктор
constructor Create(AParent: TSprite); override;
далее, когда описываете конструктор спрайта, просто проверяете:
constructor TMonster.Create(AParent: TSprite);
begin
if GameMod=12 then
begin
inherited Create(AParent);
end;
end;
вот и все.
также советую просто хоть немного думать...
← →
Vin (2003-01-13 18:49) [4]За совет конечно, спасибо, но вот глумиться над чьим-то незнанием - некрасиво. Потому-то и создан этот форум, чтоб передавался опыт от мастеров к начинающим. Я-то как раз к начинающим и отношусь.
← →
Карлсон (2003-01-13 18:56) [5]знаете, я тоже к начинающим отношусь, но вот не уметь логически мыслить и пытаться программировать.....
гм...
вообще по собственному опыту, сначала надо весь фак облазить и поисковики, а только потом задавать вопрос.
извиняюсь за флейм.
← →
Владимир Васильев (2003-01-14 10:27) [6]По этой теме есть отличная статья "Using States in Your Game" на http://www.alistairkeys.co.uk/states.shtml
Реализацию OOП подхода можно также посмотреть на примере UnTitledRTS : http://www.gamedev.narod.ru/FullPackUnRTS.zip
← →
cyborg (2003-01-14 12:10) [7]Каждая сцена - отдельная процедура.
Например сцена заставки, титры, рекорды, сама игра - получилось четыре сцены. Делаешь соответствующие процедуры, которые отрисовывают свою сцену и обрабатывают нажатия клавишь, анимацию и т.д. Заведи переменную текущей сцены, например CurrentScene. В самой программе структура примерно такая:
TYPES
...
CONST
...
VAR
...
Procedures & Functions
...
Procedure Title;
begin
end;
Procedure Records;
Begin
End;
...и прочие...
BEGIN
Инициализация видео, звука и загрузка первичных данных,
т.е. тех, которые используются во всей игре.
CurrentScene:=1;
Case CurrentScene of
1 : Title;
2 : Records;
...
End;
Освобождение всех ресурсов, данных
и прочие завершающие действия
END.
Вот примерный скелет.
Совет: активно используй IF CASE WHILE REPEAT FOR и прочие подобные операторы - это основа всех программ.
← →
Darthman (2003-01-14 12:49) [8]Ага, только помни: где можно обойтись без цикла, обойдись без цикла :) тем более вложенного.
Есть еще один вариант:
Создешь перечисляемый тип (так проще для восприятия, а скорость одинковая);
← →
Vin (2003-01-14 13:35) [9]Огромное спасибо всем.
← →
pasha676 (2003-01-15 11:02) [10]А я почему то думал, что сцена - это термин 3Д. То есть пространство в котором расположены 3Д объекты.
← →
cyborg (2003-01-16 00:22) [11]Забыл вставить цикл:
Quit:=False; //Выход из игры
Repeat
Case CurrentScene of
1 : Title;
2 : Records;
...
End;
Until Quit=True;
pasha676 Сцена бывает ещё и театральная :).
Страницы: 1 вся ветка
Форум: "Игры";
Текущий архив: 2003.06.26;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.029 c