|
Проекты на Blitz3D Обсуждение будущих проектов, демок, набор команды и т.п. |
12.09.2005, 22:25
|
#16
|
|
вот твоя ошибка : посмотри внимательно c 272 по 275 строку
я нашол ошибку за ~45 сек...
ps. если невидете такую примитивную ошибку то как вам писать большие игры ?
а еще говорят что у меня нету опыта
|
|
|
12.09.2005, 23:30
|
#17
|
Бывалый
Регистрация: 05.09.2005
Сообщений: 623
Написано 4 полезных сообщений (для 5 пользователей)
|
Совместно с jimon устранили баг с "взрывающимися" кубиками и осколками!
БАГ - очень сложно устранимый!
итак:
EntityType boom1\Obj,typeexp
EntityType boom2\Obj,typeexp
EntityType boom4\Obj,typeexp
EntityType boom4\Obj,typeexp
меняем НА
EntityType boom1\Obj,typeexp
EntityType boom2\Obj,typeexp
EntityType boom3\Obj,typeexp
EntityType boom4\Obj,typeexp
остается вопрос с AI
буду юзать!
но от помощи как всегда не откажусь!
|
(Offline)
|
|
13.09.2005, 05:08
|
#18
|
Дэвелопер
Регистрация: 04.09.2005
Адрес: Красноярск
Сообщений: 1,376
Написано 491 полезных сообщений (для 886 пользователей)
|
Вот! Причем опечатку найти даже сложнее, чем другую ошибку, хотя и не всегда.
Насчет убивания белых все ясно, просто надо закомментировать 3 строчки в функции fnUpdateBooms()
;copy_cube.cubes = Object.cubes (EntityName (ent4))
;FreeEntity ent4
;Delete copy_cube
|
(Offline)
|
|
15.09.2005, 19:26
|
#19
|
Бывалый
Регистрация: 05.09.2005
Сообщений: 623
Написано 4 полезных сообщений (для 5 пользователей)
|
Итак, уважаемые друзья
Смею вас заверить, что проект НЕ СДОХ, а успешно продолжает жить!
Просто сейчас из-за учебы у меня нет времени...
итак!
вот что сегодня как тяжкий груз висит:
1) AI. описание есть в диздоке
2) Сделать призы. (пока это 3Д кубики, которые изменяют параметры игрока( все в диздоке)
|
(Offline)
|
|
21.09.2005, 23:27
|
#20
|
Бывалый
Регистрация: 05.09.2005
Сообщений: 623
Написано 4 полезных сообщений (для 5 пользователей)
|
Ладно, уважаемые друзья-кодеры
давайте все по-порядку! и добьем НАШ (заметим не мой, а уже Жекин, ZubZero, impersonalis, jimona)
коль скоро у всех учеба...и нету времени, то я решил (как руководитель и "задумщик" проекта) делать так:
а) задавать конкретные вопросы, а не писать тупо:сделаем призы
потому что это выглядит как:сделаем игру.
б) спрашивать конкретные вопросы.
в) в конце концов если вопрос туп (все просто) то убидительно прошу не напоминать мне это, ибо я уже не задаю вопрос, а говорю на каком этапе игра. То есть либо я это первый сделаю, либо ктто-то.. Кто первый сделает - тот и выкладывает!
Итак:
1) AI
нужно сделать так, что бы "кубик" (уже есть в исходниках - клавишей 1 активируется) при столкновении поворачивался на 90. При этом(это легко я делал) встречается баг! Если "кубик" между 3 кубиками-но он крутится до бесконечности. Вообзе про AI тип 1 есть в диздоке
2) Нужно создать кубик-приз.
а) создать кубик
- он должен создаваться ТОЛЬКО внутри убиваемого кубика(это сложность)
б) убивается бомбой
в)изменяет параметр игрока. Если взят - жизнь игрока=жизнь +1 (естть в диздоке.
Для этого нужно ввести переменную жизни. (она есть...ее нужно апдейтНУТЬ)
Итак...
теперь я надеюсь, что кно-нибудь 1 пункт, но сделает! А то проект...замерзает((
|
(Offline)
|
|
22.09.2005, 11:03
|
#21
|
Дэвелопер
Регистрация: 04.09.2005
Адрес: Красноярск
Сообщений: 1,376
Написано 491 полезных сообщений (для 886 пользователей)
|
(я новый код не зырил)
1. Советую сделать двухмерный массив, такой же как в редакторе карт, и его использовать для проверки есть ли препятствие на пути или нет, но коллизии оставить!
Т.е. при столкновении противника со стенкой ты его поворачиваешь, но не сразу, а сначала проверяешь есть ли препятствие там, куда планируешь повернуть. Для определения наличия препятствия используешь "суперинформативний" массив.
Тут "сложность" только в том, чтобы определить, в каком секторе карты находится противник, чтобы перевести его координаты в индексы массива.
поле имеет размер 29х29, каждый кубик имеет размер 10х10х10
Получаем игровое поле 290х290
Допустим, противник врезался в стенку, имея координаты (надо только х и z) (127,y,200)
Надо получить из этого индексы для массива, так получаем их!
posX# = 127
posZ# = 200
koefX = posX# * 0.1 - "делим" координату Х на ширину кубика. Этим мы получили целое цисло кубиков, которые находятся слева от противника
koefX - целое число! = 12 в нашем случае
Надо что-то сделать с оставшейся 7-кой
addX = posX# - koefX * 10
if (addX-5>2.5) koefX = koefX + 1
На практике не должно получиться этого "округления", потому что размер противника соизмерим с размером кубиков...
так же для координаты z
потом проверяем значение массива
value = mapInfoMas(koefX,koefZ) - это для сектора, где противник в ДАННЫЙ момент - не интересно
mapInfoMas(koefX-1,koefZ) - что находится слева от противника?
mapInfoMas(koefX+1,koefZ) - что находится справа от противника?
mapInfoMas(koefX,koefZ+1) - что находится спереди от противника?
mapInfoMas(koefX,koefZ-1) - что находится позади противника?
имеется ввиду сдвиг на 1 кубик в каждую сторону
2. Смотря что нужно: если призы должны появляться всегда в разных кубиках, то из игры их расставлять, если в одном и том же, то проще/нагляднее расставить в редакторе карт...
ПС: чем отличаются пункты а) и б), которые самые верхние?
|
(Offline)
|
|
22.09.2005, 15:02
|
#22
|
Дэвелопер
Регистрация: 04.09.2005
Адрес: Красноярск
Сообщений: 1,376
Написано 491 полезных сообщений (для 886 пользователей)
|
Я немножко переделал функцию обработки ИИ, теперь противники бегают по полю и поворачиваются, если столкнулись с чем-то...
Но надо еще подправить кое-что: там, где я вписал проверку на коллизию противников с различными типами объектов, надо это писать не в один IF, а в несколько, т.к. бывает столкновение обновременно с игроком и стенкой и работает неправильно. Хотя может и не в том дело.
Я делал исправления в старой версии, какой не помню...
ПС: Изначально противник(и) нарезает креги в "замкнутом" пространстве, но стоит нам взорвать одно из препятствий, как...
ППС: это всем, кто просит помочь с кодом: те примеры, которые я пишу, НЕ ЯВЛЯЮТСЯ эталоном правильности или чего-то в этом роде, они позволяют врубиться что к чему (и то не всегда наверное), не больше.
Поэтому: нужно брать саму идею и делать по-своему как вам УДОБНЕЕ, и не переделывать свою прогу ПОД МОЙ код! (если хотите - делайте, я не против, просто сказал, как лучше будет).
Расширение файла надо ПЕРЕИМЕНОВАТЬ в RAR!
|
(Offline)
|
|
22.09.2005, 22:13
|
#23
|
Бывалый
Регистрация: 05.09.2005
Сообщений: 623
Написано 4 полезных сообщений (для 5 пользователей)
|
2Жека:
Я посмотрел твой код. То, что есть в ИИ сейчас это то, к чему я когда-либо уже приходил. И потому я не выложил такой результат, что когда ИИ враг типа1 при коллизии с кубиком - поворачивается - это + , но при повороте он так же...меняет свою позицию - "дергается". Что крайне нежелательно. Убрать "дерганье" можно при помощи команды rotateentity. Но я не справился со всем. Посему прошу тебя немого пересмотреть "движение" ИИ.
2All
1) Сделал приз. дает +1 к кол-ву бомб. Теперь игрок не может клавишей пробел ставить больше 1 бомбы( пока не взорвется первая. При получении приза (активируется клавишей f5 на цифровой клавиатуре) игрок ставит уже 2 бомбы. Повторное нажатие f5 ставит опять кубик-приз
2) Убрал лишний код...привел в порядок то, что есть. Теперь белый(непробиваемый) кубик не пробивается
3) БАГ !
ВНИМАНИЕ:
то, что нужно сделать:
1) f5
2) берем приз
3) ставим !!рядом!! 2 бомбы
4) взрыв в неположеном месте. Это грусно((
4) Нужно сделать так, что бы кубик-приз(тот, что есть уже(то есть мой)) появлялся в случайном месте внутри кубика. (разумеется пробиваемого)
5) Необходимо сделать ИИ 2 типа.
ОПИСАНИЕ:
2. Странник - этот тип имеет обыновение путешествовать по игровой локации, поворачивая в случайном направлении(на 90,180,270,360 грудусов) каждые N количество секунд. Если встречает препятствие(любое), поворачивает на 90 грудусов. Вырезка из ДизДока
Сложность: как сделать так, что когда ИИ2 поворачивается, то он не наталкивался бы на стены, а поворачивался в тот момент, когда можно пойти в "коридор". То есть он не должен поворачиваться на белые кубики.
*** Буду работать над кубиком-призом.
Последняя версия бомбера - прилагается!
|
(Offline)
|
|
22.09.2005, 22:47
|
#24
|
Бывалый
Регистрация: 05.09.2005
Сообщений: 623
Написано 4 полезных сообщений (для 5 пользователей)
|
И еще!
Дальнейшая разработка призов-трата времени! необходимо сперва сделать
4) Нужно сделать так, что бы кубик-приз(тот, что есть уже(то есть мой)) появлялся в случайном месте внутри кубика. (разумеется пробиваемого)
пока этоо не будет...не будет дальнейших призов...
думаем на этим...
|
(Offline)
|
|
23.09.2005, 17:12
|
#25
|
Бывалый
Регистрация: 05.09.2005
Сообщений: 623
Написано 4 полезных сообщений (для 5 пользователей)
|
Вложил текстуру приза.
Теперь все работает
|
(Offline)
|
|
23.09.2005, 18:36
|
#26
|
|
мои изменения :
переделал колозии - нах так много ?
переделал управление - было глючное стало нормальное и краткое
убрал лошивий глюк - было в колозиях притом там две колозии повторялись !
поставил ботам тип колозий игрока - потомучто ето тоже самое
зделал более-мение тупой ai ) правда фактор случайности там кривой )
замечание которые я сказал fant'у, говорю и здесь
первое - ненадо столько колозий , тормозит
второе - updateworld тоже некидай куда попало
третье - ты зделал неочень рациональное управление
четвертое - ненадо условие для if писать в скобках - можно но ненадо, если после if идет конструктция if ... end if то лутче напиши if aa=0 then... end if чем ети скобки
а так вроде все нормально
и главное - код не оптимизирован
вообщем дерзайте
мона повесить на етот код надпись : jimon modification
|
|
|
23.09.2005, 23:04
|
#27
|
Бывалый
Регистрация: 05.09.2005
Сообщений: 623
Написано 4 полезных сообщений (для 5 пользователей)
|
2jimon
1) Убрал баг
2) Положил начало ИИ (смешно звучит)
2ALL
1) Нужно сделать так, что бы кубик-приз появлялся внутри кубика(пробиваемого)
2) ИИ первого типа надо добить.
5) Необходимо сделать ИИ 2 типа.
ОПИСАНИЕ:
2. Странник - этот тип имеет обыновение путешествовать по игровой локации, поворачивая в случайном направлении(на 90,180,270,360 грудусов) каждые N количество секунд. Если встречает препятствие(любое), поворачивает на 90 грудусов. Вырезка из ДизДока
Сложность: как сделать так, что когда ИИ2 поворачивается, то он не наталкивался бы на стены, а поворачивался в тот момент, когда можно пойти в "коридор". То есть он не должен поворачиваться на белые кубики.
и объяснить мне, что значит "оптимизировать код"...и почему мой - не оптимизированый.
|
(Offline)
|
|
24.09.2005, 15:45
|
#29
|
Дэвелопер
Регистрация: 04.09.2005
Адрес: Красноярск
Сообщений: 1,376
Написано 491 полезных сообщений (для 886 пользователей)
|
Это так, но можно этот процесс ускорить!
Надо только раз показать что к чему, и все...
|
(Offline)
|
|
24.09.2005, 17:22
|
#30
|
|
еще один :o
вот пример оптимизиции в жизни
реактивный двигатель универсален
ракета для вылета в космос неуниверсальная и дорогая
оптимизированый вариант - самолет , универсален и дешов и способен летать в космос
а теперь представь ето в программировании...
|
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 11:12.
|