По скриншотам графика симпатичная. Дома буду, оценю, что это за чудо получается :)
Кого я вижу. Гриша!
Oni
Ну кто ж так программирует, ёшкин картошкин:
if random(5)=3 then Foward_Go else if random( 5)=2 then Right_roll else if random( 5)=1 then Left_roll; ... dist:=999999999;
Хотя бы так:
case random(15) of 0: Forward_Go; 1: Right_roll; 2: Left_roll; end; ... dist := 1e10;
камера не должна быть прикручена к самолетику, в зависимости от скорости она должна смещаться по направлению вектора,
так разогнавшись игрок будет иметь больше времени остановиться или свернуть.
Задумка хорошая. Напомнила MyHem (кажется так) на QBasic. Не имею представления, как сделать полностью разрушаемый мир, кроме как загнать его (каждую точку) в память. Но никакой памяти на это не хватит. В чём тут секрет?
Чувствуется грамотный подход. Желаю успеха в развитии :)
update: Хотя... если взять 1 байт на точку, да карту, скажем 32768x8192, получится 256 Мб памяти -- не так уж и много...)
Программисты вы талантливые, желаю развиваться вам в нужном направлении.
Voltt
на счет кода не хочу, тебя розачерововать, но разница и поведения ИИ бота изменится ;), да и не внимательно ты написал рандом аж 15?! А в целом ты тут тоже правильно говоришь, можно было бы и по проще написать...
А на счет выделенной памяти, не обязательно столько памяти выделять на такие разрушения. Даже той самой октри оптимизацией или просто по клеткам, можно догружаться и выгружаться участки(даже в темповский файл). Мне тоже интересно, как оптимизировано?
Oni
Вот как раз число 15 в random() стоит правильно ;) и код идентичен чуть менее, чем полностью, будучи оптимальнее. Ты прав, будет поведение другое. Но функция random() - недешёвая и лишний раз её не стоит вызывать. Я бы написал так:
n := Random(100); if n < {число1} then ... else if n < {число2} then ... else ...
число1 < число2 < ...
В требованиях недаром красуется 400 Мб ОЗУ ;-)
Тема в архиве.