forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Проекты на Blitz3D (http://forum.boolean.name/forumdisplay.php?f=14)
-   -   Bomberman_Standard_Edition (http://forum.boolean.name/showthread.php?t=79)

Fant 10.09.2005 17:19

Вложений: 1
В этом посте буду размещены исходники бомбермена. Будут в основном мною(так как я новичек(продвинутый новичек) ) задаваться вопросы по проекту. Каждый(кто хочет) сможет мне помогать! И конечно же (так как я "глупый" в программировании, но упертенький(в плане работы) проект я + любой, кто откликнется на помощь доведу(доведем!) до конца! Так как я не буржуй, да и не продовать буду, то исходник(последняя версия) всегда будет на сайте! Так что это будет "форумный проект" !!!

Уже сейчас мне помогают(или помогали дельным советом!)

Жека!!!
SubZer0!!!
impersonalis!!!

Так что...вот так;)

Последнее что есть есть в исходнике!

Баги: " при разрыве" бомбы (бомба ставиться "пробелом", управление - 8,4,6 - доп. клава), осколок, который летит вправо не удаляет кубики, которые можно "взорвать. Разумееется не "взрывает" игрока. НУЖНА ПОМОЩЬ!!!!!!!!!

Делаю: остановился на AI. вот...любая помощь приветсвуется!

Нужно сделать ... AI.

7 файлов в исходниках+1 папка maps

1. Исходник бомбера (bomber.bb) - всемирными усилиями
2. Редактор карт бомбера (mapeditor.bb) - сделал Жека!!! Респетк!!!
3. и 4. и 5. - текстуры (cube1.bmp и cube2.bmp и tAI1.bmp)
6. и 7. - диздоки

Общий размер - 370 кб. В архиве - 17 кб.
Не стесняемся и качаем!!! И разумеется, что бы проект не СДОХ, то НУЖНА помощь по перечисленным вопросам!!!
особенно по пункту "баги"

jimon 10.09.2005 17:39

вообщем для 1 дневной работы сойдет
код более мение нормальный
как для продвинутого новичка :))


а вообще ... управление ацтой и графа нулевая
делать в 2d и на bmax надо было... красивее былоб ;)

impersonalis 10.09.2005 18:08

Управление надо переназначить (надали влево - объект разворачивается и идёт влево, а не только поворачивается и ждёт нажатия "вперёд").
2jimon: старайся аргуметировать и разворачивать свои рецензии ( знаю, иногда это очень тяжело)

Fant 10.09.2005 20:31

2 jimon
Это не однодневная работа!!! не шути так)))))
Код делал не только я) посмотри в "благодарностях" имеено эти люди приложили свои руки к коду.

2impersonalis
Это же даже не демка! Но поправки будут внесены!!!

Остается:

баг коллизий (с "несуществующим" осколком")
AI

продолжение следует...

Fant 11.09.2005 15:03

Вложений: 1
Я исправил управление.

Возник вопрос!
1. Не знаю как оптимизировать код. Типа через case пытался - фиг что вышло!
2. Если нажать и удерживать вправо и вверх(вместе) то игрок будет идти вверх. Но стрелка будет указывать вправо
3. Актуален вопрос по поводу:
Баги: " при разрыве" бомбы (бомба ставиться "пробелом", управление - 8,4,6 - доп. клава), осколок, который летит вправо не удаляет кубики, которые можно "взорвать. Разумееется не "взрывает" игрока. НУЖНА ПОМОЩЬ
4. Все-еще парюсь с AI

impersonalis 11.09.2005 15:32

Выложи плз, не только исходник, но и ресурсы

Fant 11.09.2005 15:39

Вложений: 1
2impersonalis
Я все ресурсы в 1ом моем тексте
Выкладываю опять ВСЕ что есть!

2ALL
Так! У меня вопрос!!! Мне всегда выкладывать ВСЕ ресурсы???
или только по мере "улучшения и дополнения". Я считаю что стоит только "дополнять"!

Выклабываю все, что есть!!!

2impersonalis
Надеюсь, что вы(ты) мне поможете(поможешь)

32 кб - максимальным сжатием RAR

Жека 12.09.2005 08:05

Цитата:

Originally posted by impersonalis@Sep 10 2005, 09:08 PM
2jimon: старайся аргуметировать и разворачивать свои рецензии
Очень ДЕЛЬНЫЙ совет!

А то просто наезд какой-то получается :blink:

Советы пиши, раз ты все знаешь. А если не интересно, можно вообще не лезть в эту тему...

Fant 12.09.2005 10:24

Код:
Код:

If KeyDown(72)=1 And KeyDown(75)=0 And KeyDown(77)=0 And KeyDown(80)=0
        MoveEntity player\obj,0,0,spd#
        RotateEntity player\obj,0,0,0
End If

If KeyDown(75)=1 And KeyDown(72)=0 And KeyDown(80)=0 And KeyDown(77)=0
        MoveEntity player\obj,0,0,spd#
        RotateEntity player\obj,0,90,0       
End If

If KeyDown(77)=1 And KeyDown(72)=0 And KeyDown(80)=0 And KeyDown(75)=0
        MoveEntity player\obj,0,0,spd#
        RotateEntity player\obj,0,-90,0
End If

If KeyDown(80)=1 And KeyDown(75)=0 And KeyDown(77)=0 And KeyDown(72)=0
        MoveEntity player\obj,0,0,spd#
        RotateEntity player\obj,0,180,0
End If

Вот кусок кода. теперь игрок поворачивается в ту сторону, куда он ходит. Но есть ли вариан его(код) сделать получше?(красивее, а то...жесткий он)

Смысле не "улучшеный"

или так и оставить можно???

если есть варианты получше, я обязательно переделаю этот кусочек

impersonalis 12.09.2005 16:50

Да- проглядел я, что ресурсы уже были. Выкладывай только обновления/дополнения.

jimon 12.09.2005 18:43

Код:

If KeyDown(72)=1 And KeyDown(75)=0 And KeyDown(77)=0 And ...
ета конструкция зачем ?
пиши просто
Код:

if keydown(72)=1 then ... end if

а вот ето :
Код:

MoveEntity player\obj,0,0,spd#
RotateEntity player\obj,0,0,0

зачем ?

пиши moveentity player\obj,spd#,0,0 moveentity player\obj,-spd#,0,0 и тд

в итоге прийдеш к чемуто типа
Код:

if keydown(xxx) moveentity p,s#,0,0
if keydown(xxy) moveentity p,-s#,0,0
if keydown(yxy) moveentity p,0,0,s#
if keydown(yxy) moveentity p,0,0,-s#

вот так :))

Жека 12.09.2005 18:59

Могу посоветовать вот так сделать:

Код:

KEY_MOVE_LEFT = KeyDown(75)
KEY_MOVE_UP = KeyDown(72)
KEY_MOVE_RIGHT = KeyDown(77)
KEY_MOVE_DOWN = KeyDown(80)

If (KEY_MOVE_LEFT=0 And KEY_MOVE_UP=1 And KEY_MOVE_RIGHT=0 And KEY_MOVE_DOWN=0)
        MoveEntity player\obj,0,0,spd#
        RotateEntity player\obj,0,0,0
End If

If (KEY_MOVE_LEFT=1 And KEY_MOVE_UP=0 And KEY_MOVE_RIGHT=0 And KEY_MOVE_DOWN=0)
        MoveEntity player\obj,0,0,spd#
        RotateEntity player\obj,0,90,0
End If

If (KEY_MOVE_LEFT=0 And KEY_MOVE_UP=0 And KEY_MOVE_RIGHT=1 And KEY_MOVE_DOWN=0)
        MoveEntity player\obj,0,0,spd#
        RotateEntity player\obj,0,-90,0
End If

If (KEY_MOVE_LEFT=0 And KEY_MOVE_UP=0 And KEY_MOVE_RIGHT=0 And KEY_MOVE_DOWN=1)
        MoveEntity player\obj,0,0,spd#
        RotateEntity player\obj,0,180,0
End If


Почему-то взрываются БЕЛЫЕ кубики, НО это зависит от стороны, с которой осколок прилетел. Так же и с синими :dontknow:

Fant 12.09.2005 20:45

Вложений: 1
2Jimon
Спасибо за совет!
я же не туплю, что все расписываю! Без этого будет баг с управлением и поворотом.

2impersonalisъ
Вот выкладываю...но буду очень признателен, если вы мне с AI поможете!

2Жека
обновил по твоей схеме управление!!! Спасибо!
баг я уже описывал( я знаю, что правый осколок ничего не делает)...пока народ молчит

2ALL
1)Баги: " при разрыве" бомбы (бомба ставиться "пробелом", управление - 8,4,6 - доп. клава), осколок, который летит вправо не удаляет кубики, которые можно "взорвать. Разумееется не "взрывает" игрока. НУЖНА ПОМОЩЬ
2) AI. то, что нужно есть в диздоке! Я над этим думаю, но так как знаний мало, то все идет ооочень медленно.


выложил исходник с "обновленным" управление. В управлении багов теперь нет.

ОСТАЕТСЯ:
БАГ со взрывом
AI

На этом пока все!

Жека 12.09.2005 21:43

для ИИ:
ИМО, для начала надо ограничить игрока и противников в движениях, а именно: чтобы они могли передвигаться только по середине прохода-лабиринта, чтобы не болтались от стенки к стенке. Сейчас это уже не так заметно, но "люфт" все же есть.
Например, при продвижении в смежный коридор (после поворота на 90град) наблюдается "въезд" игрока в этот коридор из-за колизии сфера-полигоны.

Также надо задавать "опорные точки" для противников, в которых они могут повернуться на +(-)90 град, в остальных только 180 град (это может и не обязательно).

Надо разрешить текущие проблемы, то есть "неправильные" колизии осколков и кубиков: если осколок ударяется в убиваемый кубик справа, то соударения как такового не происходит; аналогичные действия, но слева - происходит соударение, как оно и должно быть.

ПС: у меня нет времени прогу делать (ни эту, ни другие), поэтому "даю" только теорию, я еще не сказал, что это правильно, просто предлагаю то, что может понадобиться...

Нужен доброволец, который бы уделил своего времени и более или менее основательно пересмотрел код. Истина ведь где-то рядом...

impersonalis 12.09.2005 21:58

К сожалению, не знаю когда разгебу с делами - но на выхах - точняк

jimon 12.09.2005 22:25

вот твоя ошибка : посмотри внимательно c 272 по 275 строку
я нашол ошибку за ~45 сек...

ps. если невидете такую примитивную ошибку то как вам писать большие игры ?
а еще говорят что у меня нету опыта :bad:

Fant 12.09.2005 23:30

Совместно с 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

буду юзать!
но от помощи как всегда не откажусь!

Жека 13.09.2005 05:08

Вот! Причем опечатку найти даже сложнее, чем другую ошибку, хотя и не всегда.

Насчет убивания белых все ясно, просто надо закомментировать 3 строчки в функции fnUpdateBooms()
Код:

;copy_cube.cubes = Object.cubes (EntityName (ent4))
;FreeEntity ent4
;Delete copy_cube


Fant 15.09.2005 19:26

Итак, уважаемые друзья!!!
Смею вас заверить, что проект НЕ СДОХ, а успешно продолжает жить!
Просто сейчас из-за учебы у меня нет времени...

итак!
вот что сегодня как тяжкий груз висит:

1) AI. описание есть в диздоке

2) Сделать призы. (пока это 3Д кубики, которые изменяют параметры игрока( все в диздоке)

Fant 21.09.2005 23:27

Ладно, уважаемые друзья-кодеры!!!

давайте все по-порядку! и добьем НАШ (заметим не мой, а уже Жекин, ZubZero, impersonalis, jimona)

коль скоро у всех учеба...и нету времени, то я решил (как руководитель и "задумщик" проекта) делать так:
а) задавать конкретные вопросы, а не писать тупо:сделаем призы :@
потому что это выглядит как:сделаем игру.
б) спрашивать конкретные вопросы.
в) в конце концов если вопрос туп (все просто) то убидительно прошу не напоминать мне это, ибо я уже не задаю вопрос, а говорю на каком этапе игра. То есть либо я это первый сделаю, либо ктто-то.. Кто первый сделает - тот и выкладывает!

Итак:
1) AI
нужно сделать так, что бы "кубик" (уже есть в исходниках - клавишей 1 активируется) при столкновении поворачивался на 90. При этом(это легко я делал) встречается баг! Если "кубик" между 3 кубиками-но он крутится до бесконечности. Вообзе про AI тип 1 есть в диздоке

2) Нужно создать кубик-приз.
а) создать кубик
- он должен создаваться ТОЛЬКО внутри убиваемого кубика(это сложность)
б) убивается бомбой
в)изменяет параметр игрока. Если взят - жизнь игрока=жизнь +1 (естть в диздоке.

Для этого нужно ввести переменную жизни. (она есть...ее нужно апдейтНУТЬ)

Итак...
теперь я надеюсь, что кно-нибудь 1 пункт, но сделает! А то проект...замерзает((

Жека 22.09.2005 11:03

(я новый код не зырил)

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. Смотря что нужно: если призы должны появляться всегда в разных кубиках, то из игры их расставлять, если в одном и том же, то проще/нагляднее расставить в редакторе карт...


ПС: чем отличаются пункты а) и б), которые самые верхние?

Жека 22.09.2005 15:02

Вложений: 1
Я немножко переделал функцию обработки ИИ, теперь противники бегают по полю и поворачиваются, если столкнулись с чем-то...

Но надо еще подправить кое-что: там, где я вписал проверку на коллизию противников с различными типами объектов, надо это писать не в один IF, а в несколько, т.к. бывает столкновение обновременно с игроком и стенкой и работает неправильно. Хотя может и не в том дело.

!!! Я делал исправления в старой версии, какой не помню...

ПС: Изначально противник(и) нарезает креги в "замкнутом" пространстве, но стоит нам взорвать одно из препятствий, как...

ППС: это всем, кто просит помочь с кодом: те примеры, которые я пишу, НЕ ЯВЛЯЮТСЯ эталоном правильности или чего-то в этом роде, они позволяют врубиться что к чему (и то не всегда наверное), не больше.
Поэтому: нужно брать саму идею и делать по-своему как вам УДОБНЕЕ, и не переделывать свою прогу ПОД МОЙ код! (если хотите - делайте, я не против, просто сказал, как лучше будет).

Расширение файла надо ПЕРЕИМЕНОВАТЬ в RAR!

Fant 22.09.2005 22:13

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 поворачивается, то он не наталкивался бы на стены, а поворачивался в тот момент, когда можно пойти в "коридор". То есть он не должен поворачиваться на белые кубики.

*** Буду работать над кубиком-призом.

Последняя версия бомбера - прилагается!

Fant 22.09.2005 22:47

И еще!

Дальнейшая разработка призов-трата времени! необходимо сперва сделать

4) Нужно сделать так, что бы кубик-приз(тот, что есть уже(то есть мой)) появлялся в случайном месте внутри кубика. (разумеется пробиваемого)


пока этоо не будет...не будет дальнейших призов...

:bad: думаем на этим...

Fant 23.09.2005 17:12

Вложил текстуру приза.

Теперь все работает

jimon 23.09.2005 18:36

мои изменения :
переделал колозии - нах так много ?
переделал управление - было глючное стало нормальное и краткое
убрал лошивий глюк - было в колозиях притом там две колозии повторялись !
поставил ботам тип колозий игрока - потомучто ето тоже самое
зделал более-мение тупой ai :)) правда фактор случайности там кривой :))

замечание которые я сказал fant'у, говорю и здесь

первое - ненадо столько колозий , тормозит
второе - updateworld тоже некидай куда попало
третье - ты зделал неочень рациональное управление
четвертое - ненадо условие для if писать в скобках - можно но ненадо, если после if идет конструктция if ... end if то лутче напиши if aa=0 then... end if чем ети скобки
а так вроде все нормально

и главное - код не оптимизирован

вообщем дерзайте
мона повесить на етот код надпись : jimon modification ;)

Fant 23.09.2005 23:04

2jimon

1) Убрал баг
2) Положил начало ИИ (смешно звучит)

2ALL

1) Нужно сделать так, что бы кубик-приз появлялся внутри кубика(пробиваемого)

2) ИИ первого типа надо добить.

5) Необходимо сделать ИИ 2 типа.
ОПИСАНИЕ:
2. Странник - этот тип имеет обыновение путешествовать по игровой локации, поворачивая в случайном направлении(на 90,180,270,360 грудусов) каждые N количество секунд. Если встречает препятствие(любое), поворачивает на 90 грудусов. Вырезка из ДизДока
Сложность: как сделать так, что когда ИИ2 поворачивается, то он не наталкивался бы на стены, а поворачивался в тот момент, когда можно пойти в "коридор". То есть он не должен поворачиваться на белые кубики.

и объяснить мне, что значит "оптимизировать код"...и почему мой - не оптимизированый.

jimon 24.09.2005 13:17

говорюже - с опытом прийдет к тебе понятие оптимизация :rolleyes:

Жека 24.09.2005 15:45

Это так, но можно этот процесс ускорить!
Надо только раз показать что к чему, и все...

jimon 24.09.2005 17:22

еще один :o

вот пример оптимизиции в жизни

реактивный двигатель универсален
ракета для вылета в космос неуниверсальная и дорогая
оптимизированый вариант - самолет , универсален и дешов и способен летать в космос

а теперь представь ето в программировании...

Fant 24.09.2005 19:13

Все ваши ответы клевые и захватывающие :o

!

но есть дела:

1) Нужно сделать так, что бы кубик-приз появлялся внутри кубика(пробиваемого)

2) ИИ первого типа надо добить.

5) Необходимо сделать ИИ 2 типа.
ОПИСАНИЕ:
2. Странник - этот тип имеет обыновение путешествовать по игровой локации, поворачивая в случайном направлении(на 90,180,270,360 грудусов) каждые N количество секунд. Если встречает препятствие(любое), поворачивает на 90 грудусов. Вырезка из ДизДока
Сложность: как сделать так, что когда ИИ2 поворачивается, то он не наталкивался бы на стены, а поворачивался в тот момент, когда можно пойти в "коридор". То есть он не должен поворачиваться на белые кубики.

impersonalis 24.09.2005 22:21

Нужно в момент поворота (сразу после столкновения) поворачивать на 90 до тех пор, пока не будет пика на вектор 0,0,z

Жека 26.09.2005 07:06

Ага, нормально вполне, и проще всего...
Время найду - сделаю, если кто не опередит ;)

Fant 26.09.2005 15:11

:wallbash:

обнаружен баг.
Жека обнаружил:

Крайний верхний левый (белый кубик) - можно пройти сквозь него.
В том же районе такой же синий :unsure:

Нужна помощь по "разбору" бага...+

1) Нужно сделать так, что бы кубик-приз появлялся внутри кубика(пробиваемого)

2) ИИ первого типа надо добить.

5) Необходимо сделать ИИ 2 типа.
ОПИСАНИЕ:
2. Странник - этот тип имеет обыновение путешествовать по игровой локации, поворачивая в случайном направлении(на 90,180,270,360 грудусов) каждые N количество секунд. Если встречает препятствие(любое), поворачивает на 90 грудусов. Вырезка из ДизДока
Сложность: как сделать так, что когда ИИ2 поворачивается, то он не наталкивался бы на стены, а поворачивался в тот момент, когда можно пойти в "коридор". То есть он не должен поворачиваться на белые кубики.


пока так.

Jet 26.09.2005 16:08

Извините, что влезаю не в своё дело, но не могу не поинтересоваться:
Fant, когда ты САМ начнешь писать игру? По постам складывается такое впечатление, что ты только координатор :unsure:

Fant 26.09.2005 16:24

2Jet
Я начал писать эту игру. Я совсем мало знаю блиц и начал писать на форуме блицКоммюнити. Надо мной там посмеялись (хотя и помогали тоже) и я решил плавно перейти на этот замечательный форум. Ко мне присоединился Жека и мы вместе продолжили проект. Но из-за низкого опыта, да и не мое это (я не математик...и далек от информатики...о программирование даже не говорю) призвание кодить..но мне это нравится! Я активно стараюсь учавствовать на форуме(что знаю то и пишу)...а сейчас я очень редко(нету времени и опыта)(если для меня что-то сделать - очень долго и трудно, но я стараюсь, конечно! Ведь что-то и я делаю! Этого НИКТО отрицать не может) занимаюсь игрой. Но все-же мой пост живет!
1) Начинал я сам.
У тебя правильное впечатление. Присоединяйся! На сегодняшний момент елси от меня никто здесь не отвернется, но я УВЕРЕН, что с моими координациями МЫ на 100% закончим игру! и пусть это будет ФОРУМНЫЙ проект!!!!!!!!!

Respect

Жека
Impersonalis
jimon
SubZer0, который к сожалению давно не писал в посте...хотя активно помогал мне ранее.

Если у кого-нибудь есть опыт в программировани, я не откажусь от помощи! Тогда мы быстрее сделаем игру.

2Jet:
Я считаю, что уместнее ЭТО было бы спрашивать в "болтовне". Не продолжай здесь этот разговор пожалуйста!

Жека 26.09.2005 16:48

Все верно Jet говорит.
Это ОЧЕНЬ важный вопрос.

Если ты знаешь мало, и твоих знаний явно не достаточно, чтобы сделать игру, то может сначала надо набраться этих знаний? А потом смело в бой!

Координатор тоже никогда не лишний ;)

Жека 26.09.2005 16:56

1) Нужно сделать так, что бы кубик-приз появлялся внутри кубика(пробиваемого)

Я уже писал про массив, аналогичный тому, что в редакторе карт...
Заполняешь его значениями в функции загрузки карты, а потом при необходимости используешь.

impersonalis 26.09.2005 17:10

Всем кто так или иначе причастен к коду: комментируйте свои добавления, потому как разбираться в чужом коде хоть и полезно, но не самое приятное ;)

SubZer0 26.09.2005 18:29

Цитата:

Originally posted by Fant@Sep 26 2005, 02:24 PM
SubZer0, который к сожалению давно не писал в посте...хотя активно помогал мне ранее.
приношу свои извинения, я сайт "рожал", некогда было маленько... :@ :@

Fant 26.09.2005 23:28

Итак, коль скоро я тут он-лайн, то не могу не осветить вопросы! Ибо без них...все будет плохо:

1) Крайний верхний левый (белый кубик) - можно пройти сквозь него.
В том же районе такой же синий. Нельзя убить бомбой синий кубик - БАГ

2) Нужно сделать так, что бы кубик-приз появлялся внутри кубика(пробиваемого) Приз должен появлятся в "случайном" кубике.

3) ИИ типа 1 и ИИ типа 2.
Все по ИИ есть в диздоке+ на форуме много раз писал. Повторяться в посте не буду.

4) Сделать приз, который при взятии (как тот, который увиличивает кол-во бомб) увеличивает скорость игрока.

5) Сделать приз, который при взятии (как тот, который увиличивает кол-во бомб) увеличивает радиус взрыва бомбы на +25 единиц(на 2 кубика).

6 ) по умолчанию радиус взрыва - 2 кубика. Это 35 блиц. единиц.(я мерил игроком. переставил его в другую координату...вообщем расчет точный(более или менее).

Под радиусом взрыва я разумею расстояние, которое пролетает осколок, после взрыва бомбы. Его нужно уменьшить.

Жека 27.09.2005 18:30

Вложений: 1
Вот что сделал:

1. Кубики расставлялись криво, стенки стояли криво. В итоге казалось, что все нормально.
Надо сдвигать все кубики на (-5) по оси Z, а они сдвигались на (+5). Стенки не помню как были, но тоже подровнял как надо. (Это в функции fnLoadLevel())

2. Функция обработки взятия бонуса работала неправильно: там была проверка коллизии игрока с бонусами, а надо бонуса с игроком, поэтому при взятии ОДНОГО бонуса удалялись ВСЕ. Переделал ее, но не менял коллизии, так как пришлось бы делать полный перебор всех бонусов, чтобы узнать, какой же взял игрок.

3. Сделал создание бонусов внутри пробиваемых кубиков.
F5 - увеличение количества бомб (зеленый)
F6 - увеличение радиуса разлета осколков (красный)
F7 - увеличение скорости движения игрока (синий)

4. Функция fnDestroyField() удаляла только кубики. Добавил в нее удаление Бомб, Осколков, Противников 1го типа (других-то нема пока) и Бонусов.

5. Добавил новое поле в тип "Кибики" и тип "Бонус1" - Field nomerX, nomerZ. Это позиция кубика, но не на поле, а в массиве что ли.
Еще в другие типы добавил поля, по коду должно быть понятно все...

6. Скорость полета осколков сделал независимой от количества ФПС.
Также и для игрока, и для противников.

7. Радиус разлета осколков задается числом и не зависит от того, сколько времени прошло с момента взрыва бомбы.
Размер кубиков 10х10х10, если нам надо сделать радиус разлета в 2 кубика, то задаем его |рад = 20| и все.

8. Сделал поворот противника в сторону свободного прохода без дерганья. Но с противниками есть косяки - они на половину влазят в стены.
И в кубики после колизии со стеной...
Тип колизии у противников сделал BOX.
Какая-то глючная колизия стала с Box'ом, а если радиус, то в узкие щели пытаются лезть, и круги наворачивают, если пролезут (когда игрок рядом с кубиком, и противник в него врезается...)

9. Сделал создание противников в случайном свободном месте.

10. Написал комментарии в местах, которые могут вызвать затруднения при чтении кода (все, что новое добавил, с комментариями, старое - местами только добавил).

Fant 01.10.2005 12:01

У меня сейчас к сожалению катастрофически нехватает времени, поэтому я немного "торможу" с проетком.

Сейчас могу сказать только одно

БОГОПРОТИВНЫЙ БАГ, который уже просто ДОСТАЛ!

Крайний верхний левый (белый кубик) - можно пройти сквозь него.
В том же районе такой же синий. Нельзя убить бомбой синий кубик

+ можно сделать 4 режима камеры:
1) как в FPS (какера как бы в "кубике"
2) Следящая камера сверху
3) следящая под углом камера (как в любом РПГ)
4) Игрок сам фиксирует камеру (через кнопки на доп. клаве) и камера следит в заданом положении игроком.

Призы я пока не прошу рассматривать. По Жекиному примеру сам их постараюсь добить.

Необходимо сделать ИИ типа2.

Жека 02.10.2005 15:05

Цитата:

БОГОПРОТИВНЫЙ БАГ, который уже просто ДОСТАЛ!
Не нужно громких слов, я его исправил ;)
Причина бага: Ctrl+C - Ctrl+V.

ПС: хотел сделать эффект "размытия при движении", но так и не врубился пока, как перевести 3д координаты в 2д. А просто копировать чужой код не хочется...

Fant 02.10.2005 16:43

Причина бага: Ctrl+C - Ctrl+V.
:wallbash:
не понял...

и почему был этот баг?

Жека 03.10.2005 19:57

Вложений: 1
Код взят из ф-ии fnLoadLevel()

Раньше было так:

Код:

...............................
cube.cubes = New cubes
cube\obj = CopyEntity(scub)
EntityAlpha cube\obj,0.5
;ставим куда надо
PositionEntity cube\obj,x*width1+5,5,-z*depth1-5
EntityType scub,typecube
...............................
cube.cubes = New cubes
cube\obj = CopyEntity(scub2)
;ставим куда надо
PositionEntity cube\obj,x*width2+5,5,-z*depth2-5
EntityType scub2,typecube2
...............................

А должно быть так:

Код:

...............................
cube.cubes = New cubes
cube\obj = CopyEntity(scub)
EntityAlpha cube\obj,0.5
;ставим куда надо
PositionEntity cube\obj,x*width1+5,5,-z*depth1-5
EntityType cube\obj,typecube
...............................
cube.cubes = New cubes
cube\obj = CopyEntity(scub2)
;ставим куда надо
PositionEntity cube\obj,x*width2+5,5,-z*depth2-5
EntityType cube\obj,typecube2
...............................

Обратите внимание (сравните) на строчки, начинающиеся с EntityType в старом коде и в новом...


Сделал противников 2го типа, но они дерганые какие-то получились. :(

Устранить дерганье можно так: сделать два "пикера" - это два пивота, которые располижить соотв. у правого и левого краёв объекта-противника в качестве его детей, и делать EntityPick не для самого объекта, а для этих пикеров. Если противник "захотел" повернуться в сторону, то поворачивать его только в том случае, когда оба пикера вернули НОЛЬ.

Я пробовал сделать одного пикера - не получил того, что хотел (надеюсь что потому, что делал неправильно). Поэтому выкладываю код с дерганными "чертями".

ПС:
1 - сделать противника 1го типа
2 - сделать противника 2го типа

Выкладываю ВСЕ ресурсы игры.

ППС: делаю исходник ЕЩЕ и в формате *.txt, потому что в редакторе кода он в непонятной кодировке (Юникод может?), и русские буквы у вас могут стать корявками (при копировании сюда, в форум, так и происходит).

pax 04.10.2005 00:07

FPS меня не радует в двух отношениях:
1. Чатота изменения FPS (очень быстро дергается)
Предлогаю заменить на следующее:
Код:

* * *;FPS CHECK;
 *MS#=MilliSecs()
 *If (MS-MSL)>=500 Then
 *        FPS=FPS_Count*2
 *        FPS_Count=0
 *        MSL=MS
 *Else
 *        FPS_Count=FPS_Count+1
 *EndIf
 * * *;FPS CHECK;

изменяться будет раз в пол секунды
2. Сам FPS маловат (у меня CeleronD 2400 а FPS всего примерно 138 кадров/с)
Предлагаю уменьшить кол-во объектов на карте путем загрузки всех неразрушаемых объектов как один (создавать повертексно в одном и том же меше(mesh), а точнее в его поверхности (surfse)), далее изменить к нему метод столкновения на ellipsoid-to-polygon.
Это повысит FPS
Вот к примеру функции из моей игры(http://pax-games.narod.ru/downloads/bombers3d.exe):
Код:

Const BoxUpperSide%=0 *
Const BoxFrontSide%=1
Const BoxBackSide%=2
Const BoxLeftSide%=3
Const BoxRighrtSide%=4

;C-размер куба, Surf%-поверхность к которой добавляется Куб
;X#,Y#,Z# - координаты центра куба
Function AddBoxToSurface(Surf%,BoxSide%,X#,Y#,Z#,C#=1)
        AddBoxSideToSurface(Surf%,BoxUpperSide%,X#,Y#,Z#,C#)
        AddBoxSideToSurface(Surf%,BoxFrontSide%,X#,Y#,Z#,C#)
        AddBoxSideToSurface(Surf%,BoxBackSide%,X#,Y#,Z#,C#)
        AddBoxSideToSurface(Surf%,BoxLeftSide%,X#,Y#,Z#,C#)
        AddBoxSideToSurface(Surf%,BoxRighrtSide%,X#,Y#,Z#,C#)
; Нижнюю сторону куба я не добавлял :)
End Function

;Можно добавить только сторону
Function AddBoxSideToSurface(Surf%,BoxSide%,X#,Y#,Z#,C#)
Local X1#, Y1#, Z1#, X2#, Y2#, Z2#, X3#, Y3#, Z3#, X4#, Y4#, Z4#
Local V1%, V2%, V3%, V4%
Local T1%, T2%
        C#=C#/2
        Select BoxSide%
 *Case BoxUpperSide%
 *        X1#=X#-C: X2#=X#+C: X3#=X#+C: X4#=X#-C
 *        Y1#=Y#+C: Y2#=Y#+C: Y3#=Y#+C: Y4#=Y#+C
 *        Z1#=Z#-C: Z2#=Z#-C: Z3#=Z#+C: Z4#=Z#+C
 *Case BoxFrontSide%
 *        X1#=X#-C: X2#=X#+C: X3#=X#+C: X4#=X#-C
 *        Y1#=Y#-C: Y2#=Y#-C: Y3#=Y#+C: Y4#=Y#+C
 *        Z1#=Z#-C: Z2#=Z#-C: Z3#=Z#-C: Z4#=Z#-C
 *Case BoxBackSide%
 *        X1#=X#-C: X2#=X#+C: X3#=X#+C: X4#=X#-C
 *        Y1#=Y#+C: Y2#=Y#+C: Y3#=Y#-C: Y4#=Y#-C
 *        Z1#=Z#+C: Z2#=Z#+C: Z3#=Z#+C: Z4#=Z#+C
 *Case BoxLeftSide%
 *        X1#=X#-C: X2#=X#-C: X3#=X#-C: X4#=X#-C
 *        Y1#=Y#-C: Y2#=Y#+C: Y3#=Y#+C: Y4#=Y#-C
 *        Z1#=Z#-C: Z2#=Z#-C: Z3#=Z#+C: Z4#=Z#+C
 *Case BoxRighrtSide%
 *        X1#=X#+C: X2#=X#+C: X3#=X#+C: X4#=X#+C
 *        Y1#=Y#+C: Y2#=Y#-C: Y3#=Y#-C: Y4#=Y#+C
 *        Z1#=Z#-C: Z2#=Z#-C: Z3#=Z#+C: Z4#=Z#+C
        End Select
        V1%=AddVertex(Surf%, X1#, Y1#, Z1#, 0, 0)
        V2%=AddVertex(Surf%, X2#, Y2#, Z2#, 1, 0)
        V3%=AddVertex(Surf%, X3#, Y3#, Z3#, 1, 1)
        V4%=AddVertex(Surf%, X4#, Y4#, Z4#, 0, 1)
        T1%=AddTriangle(Surf%, V1%,V3%,V2%)
        T2%=AddTriangle(Surf%, V1%,V4%,V3%)
End Function


pax 04.10.2005 01:04

Извиняюсь за ошибку
Код:

C#=C#/2
написано русскими буквами


alc'o'SHoLiK: исправил.

pax 04.10.2005 09:20

Наверное я погорячился с методом ellipsoid-to-polygon.
Лучше вместо этого создать точку привязки и поставить ее на мето куба:
Код:

Type GeomPivot
        field Pivot%
End Type

GPiv.GeomPivot=new GeomPivot
GPiv\Pivot=createpivot()
EntityRadius(GPiv\Pivot,5)
PositionEntity GPiv\Pivot,x*width2+5,5,-z*depth2-5
EntityType cube\obj,typecube2

А в процедуре fnDestroyField() использовать следующую функцию

Код:

Function FNDestroyPivots()
        For GPiv.GeomPivot=each GeomPivot
 Freeentity(GPiv\Pivot)
 delete GPiv
        Next
End Function


alcosholik 04.10.2005 22:20

Насчет ФПС.
http://community.boolean.name/index.php?ac...=8&st=0#entry71

Обновляется раз в секунду.

Fant 04.10.2005 23:07

2PAX

Спасибо, конечно, за примеры, но лично для меня (проектировщик и "наставитель" проекта) ои показались сложными...
Я уверен, что кодеры, которые учавствуют в проекте по достоинству оценят ваш код!

Заменил FPS проверку. Ваш вариант удобнее.

Присоединяйся к нашему проекту! Я уверен, что с большей командой мы сделаем быстрее и лучше проект!!!

2Жека

Дааа))
нашел 10 отличий в коде!!! Теперь с "кубиками" покончено.

2All

Остается:

1) Домучить противника 2го типа
2) Сделать противника 3его типа

а я, найдя время доведу-таки призы до ума!

pax 05.10.2005 23:49

Да все не так уж и сложно:

В этом блоке определяются координаты вертексов(вершин) сторон куба(кроме нижней стороны)
Код:

Select BoxSide%
 Case BoxUpperSide%
 X1#=X#-C: X2#=X#+C: X3#=X#+C: X4#=X#-C
 Y1#=Y#+C: Y2#=Y#+C: Y3#=Y#+C: Y4#=Y#+C
 Z1#=Z#-C: Z2#=Z#-C: Z3#=Z#+C: Z4#=Z#+C
 Case BoxFrontSide%
 X1#=X#-C: X2#=X#+C: X3#=X#+C: X4#=X#-C
 Y1#=Y#-C: Y2#=Y#-C: Y3#=Y#+C: Y4#=Y#+C
 Z1#=Z#-C: Z2#=Z#-C: Z3#=Z#-C: Z4#=Z#-C
 Case BoxBackSide%
 X1#=X#-C: X2#=X#+C: X3#=X#+C: X4#=X#-C
 Y1#=Y#+C: Y2#=Y#+C: Y3#=Y#-C: Y4#=Y#-C
 Z1#=Z#+C: Z2#=Z#+C: Z3#=Z#+C: Z4#=Z#+C
 Case BoxLeftSide%
 X1#=X#-C: X2#=X#-C: X3#=X#-C: X4#=X#-C
 Y1#=Y#-C: Y2#=Y#+C: Y3#=Y#+C: Y4#=Y#-C
 Z1#=Z#-C: Z2#=Z#-C: Z3#=Z#+C: Z4#=Z#+C
 Case BoxRighrtSide%
 X1#=X#+C: X2#=X#+C: X3#=X#+C: X4#=X#+C
 Y1#=Y#+C: Y2#=Y#-C: Y3#=Y#-C: Y4#=Y#+C
 Z1#=Z#-C: Z2#=Z#-C: Z3#=Z#+C: Z4#=Z#+C
End Select

Далее создание 4-х вершин и двух полигонов по ним, используя координаты рассчитанные выше. Последние два параметра в функции AddVertex означают UV координаты текстуры.
Код:

V1%=AddVertex(Surf%, X1#, Y1#, Z1#, 0, 0)
V2%=AddVertex(Surf%, X2#, Y2#, Z2#, 1, 0)
V3%=AddVertex(Surf%, X3#, Y3#, Z3#, 1, 1)
V4%=AddVertex(Surf%, X4#, Y4#, Z4#, 0, 1)
T1%=AddTriangle(Surf%, V1%,V3%,V2%)
T2%=AddTriangle(Surf%, V1%,V4%,V3%)


pax 05.10.2005 23:58

Для использования этих функций нужно создать мустую модель и поверхность в ней жля добавления геометрии, вот пример:

Код:

global Mesh%=createmesh()
Global Surface%=Createsurface(Mesh)

;Добавление одного куба с координатами x,y,z с размером С
AddBoxToSurface(Surface%,X,Y,Z,C)

Кстати я ошибся в указании параметров функции (один лишний):

Код:

Function AddBoxToSurface(Surf%,X#,Y#,Z#,C#=1)
  AddBoxSideToSurface(Surf%,BoxUpperSide%,X#,Y#,Z#,C#)
  AddBoxSideToSurface(Surf%,BoxFrontSide%,X#,Y#,Z#,C#)
  AddBoxSideToSurface(Surf%,BoxBackSide%,X#,Y#,Z#,C#)
  AddBoxSideToSurface(Surf%,BoxLeftSide%,X#,Y#,Z#,C#)
  AddBoxSideToSurface(Surf%,BoxRighrtSide%,X#,Y#,Z#,C#)
; Нижнюю сторону куба я не добавлял :)
End Function

А точки привязк необходимо добавлять для обработки столкновений. Вот и все :)

alcosholik 14.10.2005 20:37

Куда делся Fant? Проект же в самом разгаре разработки был.

Fant 14.10.2005 22:27

У Fant'а очень много всякой х... ((

и он очень хочет продолжить проект, но я боюсь, что ВРЕМЕННО он не сможет ничего ДЕЛАТЬ.

Список вопросов:
ИИ типа 2,3,4,5

Доделать призы, основываясь на диздоке

А еще я ВОЗМОЖНО найду художницу (она знает фотошоп ) это хоршая новость. Плохая - у меня много учебы

Проект не умер...

Просто сейчас проекту как никогда нужен чел. у которого есть время и ОПЫТ осветить данные вопросы!!!

Fant 22.10.2005 10:56

Люди!
почему вы молчити!Или совсем про бомбера забыли! Ведь проетк готов почти на 45%!

Без ВАШЕЙ помощи мне ИИ никогда не одолеть!

Призы я почти сделал! скоро выложу (просто у меня мкоро д/р и в универе грузят! Но жизни для игрока я УЖЕ сделал. Осталось только приз-детонатор сделать.

А как помощь мне необходимы:
ИИ 2 типа доделать

Странник - этот тип имеет обыновение путешествовать по игровой локации, поворачивая в случайном направлении(на 90,180,270,360 грудусов) каждые N количество секунд. Если встречает препятствие(любое), поворачивает на 90 грудусов


Сделать:
1) ИИ 3 типа
Ловец - не путешествует по локации(стоит на месте). Если есть возможность видеть игрока, следует за ним( Астар(Astar) поиск пути возможный вариант)

2) ИИ 4 типа
Убийца - путешествует по локации(не стоит на месте). Если есть возможность видеть игрока, следует за ним( Астар(Astar) поиск пути).

3) ИИ 5 типа
Активный - путешествует по карте. Избегает игрока. Создает юнитов с ИИ типа "Пассивный"

Fant 22.10.2005 18:50

Доделал призы.

Теперь:

F3 - детонатор. Бомбы взрываются после нажатия клавиши enter
F4 - увеличение жизни игрока
F5 - увеличение количества бомб (зеленый)
F6 - увеличение радиуса разлета осколков (красный)
F7 - увеличение скорости движения игрока (синий)

Это радует. Фактически система призов сделана. Необходимо доделать ИИ

Нужно:

1) ИИ 3 типа
Ловец - не путешествует по локации(стоит на месте). Если есть возможность видеть игрока, следует за ним( Астар(Astar) поиск пути возможный вариант)

2) ИИ 4 типа
Убийца - путешествует по локации(не стоит на месте). Если есть возможность видеть игрока, следует за ним( Астар(Astar) поиск пути).

3) ИИ 5 типа
Активный - путешествует по карте. Избегает игрока. Создает юнитов с ИИ типа "Пассивный"

Это по ИИ пока все.

Поработать над камерой

Камера:

1. Вид "из глаз"(как в экшн).

2. Следящая сверху справа(или слева).камера следит за игроком(как в РПГ).

3. Вид "вертикально сверху. При приближении камера следит за игроком.

4. Вид, установленный пользователем. камера следит за игроком(любой вариант, настроенный игроком).

----------------------------
Люди! Почему все молчим?
Я ведь без вашей помощи не сделаю полностью качественный проект!
Пожалуйста, помогите мне с вопросами камеры, и,конечно, самое главное с ИИ.
Я понимаю, что дать совет проще, но я отлично понимаю, что никому не хочется копаться в коде, но проект ведь "форумный", а к сожалению кроме меня и жеки никто в нем не учавствует! Вот так прикол!
Я бы очень хотел, что бы еще хоть кто-нибудь присоединился к нашей команде, и помог нам!
-------------------------

Присоединяю ВЕСЬ пакет бомбера!
ВНИМАНИЕ: весит 17КБ

Fant 22.10.2005 23:12

Очень постыдно выпускаю другой файл .bb

Я перепутал тогда файлы и отправил старый !!!

Просто замените старый файл на этот

ЕСЛИ ЗАМЕЧЕНЫ БАГИ, просьба их исправить (по возможности)
либо просто предоставить список токовых!

Жека 24.10.2005 12:23

1. По-моему, Астар - это слишком, тут проще можно сделать, в теории. На практике попробую, тогда точно скажу потянет или нет тот метод...
2. С камерой ты перегнул. Столько видов ни к чему, хотя в плане разнообразия это плюс. Если делать камеру от первой морды, то надо радар делать, чтобы видеть бомбы и игроков - это не проблема, проблема в том, что так неудобно играть будет (хотя кому как).
Еще: если дать возможность камере НИЗКО опускаться, то модели объектов должны выглядеть лучше в разы...

А молчим потому, что у большинства учеба и свои проекты не терпят отлагательства.
Если конкретное что-то спрашивать, то совет всегда дадут, а так сложновато...
Кстати, стиль прогерства у всех свой, поэтому после изменения кода разбираться сложнее...

ПС: скоро мозги подделаю противникам (и самих недостающих типов противников), так что вряд ли кто-то останется в живых после встречи с ними ;)

Fant 24.10.2005 17:28

2Жека
1. По-моему тоже слишком, но просто это единственный пример, который пришел мне в голову. Пробуй свой метод. Я надеюсь, что все получится!

2. Конечно в плане разнообразия! Камера - с ней всегда можно побаловаться, а пользователь сам придумает, как уму лучше.

3. Я не уверен в "нужности" радара. Его ненадо делать, ведь если пользователь захочет, он сделает "вид сверху". Предложение про радар отменяется еще и по другой причине. Я ставил 15 врагов и очень расстроился количеством ФПС:
1). В самом начале 130-150.
2). 45 врагов - 40 фпс. не стабильно. глючт. это нормально? или "проблема в быстродействие?

4.Сколько "без тормозов" максимум можно кидать "врагов" на уровень?

5.Конечно модели должны быть отличными, ибо это простая аркадка и поэтому кроме как геймплеем и графикой, увы, ничем больше "славиться" не может.

6.А кроме меня, и тебя, Жека, сюда уже дааавно никто не "вносил поправки" в код. Поэтому все в коде, что я выложил сделано (то, что новое появилось) мною.

7.Спасибо, что "мозги" врагов делаешь!

2All:


Камера:

1. Вид "из глаз"(как в экшн).

2. Следящая сверху справа(или слева).камера следит за игроком(как в РПГ).

3. Вид "вертикально сверху. При приближении камера следит за игроком.

4. Вид, установленный пользователем. камера следит за игроком(любой вариант, настроенный игроком).

Протестить ФПС:

НЕ мало ли ФПС? Если кто-то считает, что производительность не очень, я с удовольствием приму поправки в код.

Сделать функцию, расставляющую "пробиваемые" кубики на поле. То есть как "случайная расстановка" (для мультиплеера)

------------------------------------------------------------------------------------------------

Жека 24.10.2005 17:45

Насчет фпс:
1. Надо сделать как PAX советовал, все в 1 меш засунуть
2. Учти, что противники - это кубики, когда модельки будут, будет еще тормознее работать
3. 45 врагов не понадобится за раз рисовать, максимум 10-15 (если только на сложном уровне).

Насчет поправок в коде: это нормально, я постараюсь в ближайшее время продвинуть ход разработки.

С камерой думаю надо подождать.
Расстановка пробиваемых кубиков аналогична расстановке бонусов.

Fant 29.10.2005 17:56

Официально заявляю!

ВСЕ ПРИЗЫ ДЛЯ одного игрока СДЕЛАНЫ и РАБОТАЮ


НУЖНО СДЕЛАТЬ:

1) ИИ2, ИИ3, ИИ4, ИИ5 - Жека над этим работает

2) Камера:

1. Вид "из глаз"(как в экшн).

2. Следящая сверху справа(или слева).камера следит за игроком(как в РПГ).

3. Вид "вертикально сверху. При приближении камера следит за игроком.

4. Вид, установленный пользователем. камера следит за игроком(любой вариант, настроенный игроком).

3) Возможность СОХРАНЕНИЯ и ЗАГРУЗКИ
Людей над работой корпит очень мало! Жека и Я поэтому прошу присоединиться кто МОЖЕТ и ХОЧЕТ учавствовать в проекте!

БАГ - если игрок стоит на бомбе и происходит взрыв, то не отнимаются жизни у игрока. - нужно работать над этим!

Я не могу сказать, что проект "вянет", но лишние силы не помогут!

ПРОШУ ПРОТЕСТИТЬ!!!
1) Если ли еще баги?
2) не мало ли ФПС при добавлении ИИ или большого количества взрывов?
3) Если есть что-то еще - пишите!

Есть просьба:

не пишите плз. сообщения типа "все клево" ... пишите в томи случае, если баги или проблемы(в частности с ФПС) обнаружены!

С уважением, Санек (Александр, он же Fant)!

выкладываю только код. все ресурсы я выкладывал ранее.

Код весит 6 кб!

Жека 01.11.2005 14:09

Цитата:

если игрок стоит на бомбе и происходит взрыв, то не отнимаются жизни у игрока. - нужно работать над этим!

я ждал, когда же ты наконец скажешь об этом ;)
Решение: надо перед самым взрывом бомбы проверять расстояние от нее до игрока, и если оно меньше, скажем, размера бомбы, то влип он, этот игрок.

ОффТ:
Цитата:

Я не могу сказать, что проект "вянет", но лишние силы не помогут!
прочитай-ка внимательно концовочку ;)

Fant 01.11.2005 19:34

:?? :?? :?? :?? :?? :?? :?? :?? :)) :)) :)) :)) :))
вот я... :bad: :bad:

совсем из ума выжил!!!

Я имел ввиду НЕ помешают!!!!!!!!!!!!!!!!!!!!!!!!!!!!

ТО есть наоборот! Хочу что бы люди присоединялись!!!
А то всего 3 скачивания (((
да и никто сюда давно не писал!

С бомбой Я лично разберусь, ! Это просто!!! Возможно поняту камеру

А вот с остальными вопросами это уже сложнее :( :(

и!!!! ЛЮДИ

вы меня не правильно поняли!!! Вернее это я неправильно написал!!! Ни не помогут,а НЕ ПОМЕШАЮТ!!! ТО есть наоборот хочу, что бы народ присоединялся! И писал мнение об игре! Для этого я создам в болтавне специальный раздел!!! Так можно писать все, что угодно!!!


Часовой пояс GMT +4, время: 12:33.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot