[prg] Re[5]: враги в bgt
> Строка
> while(time_step);
подразумевалась строка:
wait(time_step);
← Декабрь 2014 → | ||||||
1
|
2
|
3
|
4
|
5
|
6
|
7
|
---|---|---|---|---|---|---|
8
|
9
|
10
|
||||
15
|
17
|
18
|
19
|
20
|
21
|
|
22
|
23
|
24
|
||||
31
|
За последние 60 дней 12 выпусков (1-2 раза в неделю)
Сайт листа:
http://www.tiflocomp.ru/
Открыт:
19-10-2011
Пре-модерация: Нет
Адрес для писем в лист: industry.comp.tiflocomp.programming-list@subscribe.ru
> Строка
> while(time_step);
подразумевалась строка:
wait(time_step);
> я вас не совсем понимаю, мне нужен пример.
Такой пример будет представлять собой практически готовую игру и превысит по
размеру тот код, который представили вы.
Кроме того, из вашего кода видно, что вы крайне слабы в
объектно-ориентированном подходе.
> ну сделаю я класс, я понимаю что нужен speed и т.д только как это
> используется, я уже голову сломал.
Большинство игр строятся по принципу бесконечного цикла, который называется
"игровым циклом". В этом цикле обновляются состояния всех игровых объектов.
Игровые объекты описываются базовым классом, например, something от которого
наследуются все остальные классы игровых объектов (player, enemy и т.д.).
У базового класса something должен, как минимум, быть метод update(),
который вы и будете вызывать на каждой итерации игрового цикла.
У всех наследников этого класса вы можете переопределять метод update() так,
чтобы в нём реализовать соответствующее поведение. Например, enemy будет
менять свою позицию и атаковать игрока; player будет обрабатывать нажатия
клавиш и менять свою позицию или стрелять в зависимости от нажатой клавиши и
т.д.
Для игры с множеством игровых объектов они собираются в список или массив,
который нужно перебирать на каждой итерации игрового цикла и вызывать метод
update() для каждого объекта.
В обобщенном виде это выглядит так (это псевдо-код, а не рабочий вариант):
...
something@[] objects;
...
while(state!=GAME_OVER)
{
for (int i=0; i<objects.length();++i)
{
state = objects[i].update(time_step);
}
wait(time_step);
}
...
Строка
while(time_step);
позволяет вам регулировать продолжительность одной игровой итерации так,
чтобы события игры не происходили слишком быстро.
Более корректным будет расчёт времени задержки как разности между требуемой
продолжительностью одной итерации и времени, затраченного на обновление всех
объектов.
здравствуйте.
среди новичков тема выбора языка программирования распространена очень
сильно, и я не исключение.
помогите пожалуйста определиться, нужен язык для написания оконных
приложений, таких как браузеры, диктофоны, плееры и т.д.
знаком с основами c++, c#, pascal. также чтоб можно было писать игры для
незрячих.
если я уже писал, прошу простить, но выбор языка это самая большая беда
в моей жизни.
спасибо!