forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Blitz3D (http://forum.boolean.name/forumdisplay.php?f=45)
-   -   Вопрос-Ответ (для новичков) (http://forum.boolean.name/showthread.php?t=7886)

H@NON 12.02.2010 19:31

Ответ: Вопрос-Ответ (для новичков)
 
Цитата:

Сообщение от shyrikkk (Сообщение 137043)
я же нормально спросил !!! темболее ты зачем на форуме про теракты пишешь ? я наверное про blitz 3d спрашиваю .

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

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

Nex 18.02.2010 14:07

Ответ: Вопрос-Ответ (для новичков)
 
А как содержимое банка записать в файл?

BlackOut 18.02.2010 14:36

Ответ: Вопрос-Ответ (для новичков)
 
Цитата:

А как содержимое банка записать в файл?
Почитай вот эту полезную статейку:
http://blitzetc.blitzmax.ru/index.ph...online-updater

Там будет упоминание о банках и запись их в поток\файл

is.SarCasm 18.02.2010 14:59

Ответ: Вопрос-Ответ (для новичков)
 
подскажите ссылку на булке. Помню была тема где чел соеденял 3д объекты лайнами.

Nex 19.02.2010 08:18

Ответ: Вопрос-Ответ (для новичков)
 
Цитата:

Сообщение от BlackOut (Сообщение 138059)
Почитай вот эту полезную статейку:
http://blitzetc.blitzmax.ru/index.ph...online-updater

Там будет упоминание о банках и запись их в поток\файл

Ну прочитал и все про что я там понял про банки я в хелпе видел...
У меня почему при попытке скинуть банк в файл вылазит ошибка, что банк не найден. Банк я создавал в функции и добавил его в глобал, но все равно не находит. :(

Жека 19.02.2010 09:28

Ответ: Вопрос-Ответ (для новичков)
 
Nex, посмотри пример ниже, может в нём то, что тебе надо.

Код:

Local size = 20
Local bank = CreateBank (size) ;создаём банк
Local offset = 0

;записываем данные в банк
For k=1 To size/2
        PokeShort (bank, offset, Rand (0,30000))
        offset = offset + 2
Next

;открываем файл для записи данных
Local file = WriteFile ("data.txt")

WriteLine (file, "bank data")
WriteBytes (bank, file, 0, size) ;записываем из банка в файл

;закрываем файл
CloseFile (file)

End


Nex 19.02.2010 10:05

Ответ: Вопрос-Ответ (для новичков)
 
Сори, все разобрался. В одной строчке не много напутал. :)

Reks888 20.02.2010 17:32

Ответ: Вопрос-Ответ (для новичков)
 
Считываю из файла TotalEdges и TotalVertex, и задаю по этим величинам массивы в типе. Тут компилятор заявляет мне "blitz array sizes must be a constant". Ну я понял намек, поменял на прочтение из файла Const TotalEdges и Const TotalVertex. Опа, опять: Expression must be a constant. Хотелось бы узнать что делать с константами которые не хотят принимать значение переменных, либо как задать размер массива в типе переменной. При брутальном варианте а-ля "Тупо задать размер массива" все работает, но мне нужен именно размер взятый из файла.

Nafi 20.02.2010 18:07

Re: Вопрос-Ответ (для новичков)
 
В блице нет массивов переменной длинны. Размер массива задается при компиляции и не может быть изменен во время выполнения программы.
Можешь задать с запасом, если есть лишняя память. Или использовать типы.

impersonalis 20.02.2010 18:26

Ответ: Вопрос-Ответ (для новичков)
 
dim !

Reks888 20.02.2010 19:05

Ответ: Вопрос-Ответ (для новичков)
 
Спасибо за совершенно бесполезные ответы :-D
Мне нужно чтобы для уровня был массив длины x. Массив этот задан в типе, и поэтому идея вставить тип в тип - незачет. Вот таким куском кода я инициализирую этот массив
mapfile=ReadFile("mapfile.wp")
TotalVertex=Int(Readln(mapfile))

Type EnemyTank
Field адын
Field два
....
Field n
Field MASSIVKOTORIINERABOTAET![TotalVertex]
End Type
Тут компилятор заявляет мне "blitz array sizes must be a constant". Тогда я перед TotalVertex=Int(Readln(mapfile)) вставляю Const и получаю ошибку Expression must be a constant.
Мне совершенно не подходит dim, поскольку мне нужен ОТДЕЛЬНЫЙ МАССИВ под каждый элемент типа. Прошу мне помочь найти возможность создать массив длины x, в типе.

H@NON 20.02.2010 19:33

Ответ: Вопрос-Ответ (для новичков)
 
локальный массив должен быть четко задан в начале программы числом, иначе юзай глобальный массив dim.

Reks888 20.02.2010 20:00

Ответ: Вопрос-Ответ (для новичков)
 
Чтото я никак не пойму, мне что так делать:
Readline(mapfile,TotalVertex)
Select TotalVertex
Case 1
Const konstant=1
Case 2
Const konstant=2

Должен же быть какой-то выход, врятли блиц делали через жопу(правда начинаю в этому сомневатся)

H@NON 20.02.2010 20:16

Ответ: Вопрос-Ответ (для новичков)
 
А так сделать не судьба?
Код:

Type EnemyTank
Field адын
Field два
....
Field n
Field MASSIVKOTORIINERABOTAET![2147483647], TotalVertex
End Type


Reks888 20.02.2010 20:50

Ответ: Вопрос-Ответ (для новичков)
 
Эт ты жирно. Ну так и быть, зарезервирую лишних слотов сколько положено, но вопрос все ещё открыт

firstvirus 20.02.2010 22:54

Ответ: Вопрос-Ответ (для новичков)
 
Хм, у меня в одном коде считывалась переменная StCount% а потом после считывания из файла Dim TStrings(StCount), ну а потом забивал массив строками. Даже сейчас пашет без проблем :) версия блица 1.103. Попробуй!
пример моего кода
Код:

;чтение файла конфига в массив
flin=ReadFile("config.cfg")
StCount%=ReadInt(flin)
Dim TStrings(StCount%-1)
For i=0 To StCount%-1
TStrings(i)=ReadString(flin)
Next


Reks888 21.02.2010 00:05

Ответ: Вопрос-Ответ (для новичков)
 
[Сарказм]Спасибо, Кэп! А я прям и не знал как из файла считать нужное мне кол-во строк[/Сарказм]
В следующий раз вникни в вопрос перед тем как что-то писать, ок?

ABTOMAT 21.02.2010 00:51

Ответ: Вопрос-Ответ (для новичков)
 
Цитата:

Сообщение от Reks888 (Сообщение 138417)
Чтото я никак не пойму, мне что так делать:
Readline(mapfile,TotalVertex)
Select TotalVertex
Case 1
Const konstant=1
Case 2
Const konstant=2

Должен же быть какой-то выход, врятли блиц делали через жопу(правда начинаю в этому сомневатся)

Константы менять нельзя. Нигде. Никак. Ну, то есть, вообще нигде, вообще никак.

KingMaks 21.02.2010 01:38

Ответ: Вопрос-Ответ (для новичков)
 
На то они и константы (неизменимые)

Nex 21.02.2010 09:31

Ответ: Вопрос-Ответ (для новичков)
 
Вложений: 1
А как сделать раскраску зданий/юнитов в зависимости от цвета игрока?

IGR 21.02.2010 10:50

Ответ: Вопрос-Ответ (для новичков)
 
проверить переменную где хронится цвет игрока, загрузить соотв. Теекстуру, наложить ее на модельку и незабыть маску ??
Но тут проблема с расчетом текстурных координат, т.е. Куда именно налаживать !!
Второй вариант... В максе зделать невидимы квады там где будут знаки игрока !! При расскраске... Находить чайлды, шоуЕнтити, ентитиТекстуре !!

Reks888 21.02.2010 11:42

Ответ: Вопрос-Ответ (для новичков)
 
есть ещё вариант на местах где будет цвет игрока лежит маска. Когда игрок создает здание, то это здание красится в цвет игрока с помощью EntityColor. Затем сверху ложится текстура, а сквозь маску будет виден цвет игрока

Nafi 21.02.2010 12:06

Re: Вопрос-Ответ (для новичков)
 
В хомворлде, когда модельку выковырнешь, текстура в оттенках серого. А в настройках игры можно было для своей команды выбрать два цвета. Фоновый и которым линии рисовались.
В CnC Generals, есть специальная текстурка housecolor.dds опять-же в оттенках серого. Использовалась практически в каждой модели. Серую текстурку просто покрасить и фактура сохранится.
И еще там отдельные детали модельки выделялись в отдельный меш и красились в цвет игрока.

firstvirus 21.02.2010 18:40

Ответ: Вопрос-Ответ (для новичков)
 
Цитата:

Сообщение от Reks888 (Сообщение 138469)
[Сарказм]Спасибо, Кэп! А я прям и не знал как из файла считать нужное мне кол-во строк[/Сарказм]
В следующий раз вникни в вопрос перед тем как что-то писать, ок?

В вопрос вникнул. Понял что тебе нужен массив в типе и примерно понял для чего тебе это. Я тебе предложил альтернативный вариант решения. Есть еще вариант с двумерным массивом, но тогда придется находить максимальное количество вершин и треугольников и по этим значениям делать ограничение массива. Ну а считать я думаю догадаешься как будет правильней не считав нули и не получив mav. В принципе если ты работал с базами данных, то задачка будет легкая :)

Reks888 21.02.2010 18:49

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

Лit}{Ъ 21.02.2010 19:35

Ответ: Вопрос-Ответ (для новичков)
 
Reks888
А что если описать Dimом сторониий, двумерный массив, а в типе прописать линку? Чтото типо(зарание сори за код я вообще на басике но надеюсь меня поймут)

Type ХЗ
Link Как целое
End type
Dim ХЗ(100) as ХЗ
Ридим из файла B
Dim Dat(A , B )как что нибудь
и потом обращаемся как Dat(ХЗ(j).link,I)

Тоесть мы как бы какбы создаем стооннюю базу данных в которой у каждого элемента ХЗ есть ячейка памяти которой он распоряжается.

H@NON 21.02.2010 20:10

Ответ: Вопрос-Ответ (для новичков)
 
возвращаемся к банкам, если очень требуется хранить изменяемое количество информации в типе. Остальное будет черезжопинг

Reks888 21.02.2010 20:12

Ответ: Вопрос-Ответ (для новичков)
 
В любом случае я уже просто зарезервировал ячеек раз в стопицот больше чем нужно, и забыл про эту проблему. Всем спасибо за помощь, вопрос закрыт

Лit}{Ъ 21.02.2010 20:43

Ответ: Вопрос-Ответ (для новичков)
 
Цитата:

Сообщение от H@NON (Сообщение 138604)
возвращаемся к банкам, если очень требуется хранить изменяемое количество информации в типе. Остальное будет черезжопинг

Маленький вопрос(так для интересу) - Это вообще реально? blitz array sizes must be a constant - теоретически обмануть не возможно...

Taugeshtu 21.02.2010 22:44

Ответ: Вопрос-Ответ (для новичков)
 
Маленький ответ: банк != array. Неспеша покуриваем-с справочку-с по 2д командам b3d... Там всё очень хорошо и подробно написано, и даже с примерами для большинства команд.

ABTOMAT 21.02.2010 22:56

Ответ: Вопрос-Ответ (для новичков)
 
Банку размер менять можно.
Читай справку.
Довольно трудно будет сразу въехать, что это такое.
По сути это просто область в памяти, в которой все данные свалены в одну кучу.
Ещё геморройней будет придумать, как туда записывать/считывать данные так, чтобы они читались верно. Но в данной ситуации это единственный выход.

Randomize 22.02.2010 01:28

Ответ: Вопрос-Ответ (для новичков)
 
a=100500
Dim Arr(a)
a=200500
Dim Arr(a)

Изменяемый массив.

ABTOMAT 22.02.2010 01:36

Ответ: Вопрос-Ответ (для новичков)
 
Тут про массивы в типе говорят.

Randomize 22.02.2010 01:52

Ответ: Вопрос-Ответ (для новичков)
 
Ой. Протупил.
Тогда через типы или банк.

is.SarCasm 22.02.2010 09:49

Ответ: Вопрос-Ответ (для новичков)
 
Подскажите плиз. Если у меня команда PointEntity расписана как:
RotateEntity p\entity,0,(-ATan2(EntityX(player)-EntityX(p\entity),EntityZ(player)-EntityZ(p\entity))),0

То как мне из этого получить плавный поворот?

Sapik 24.02.2010 03:58

Ответ: Вопрос-Ответ (для новичков)
 
Вложений: 1
Люди подскажите пожайлуста!! Я в 3Dmax7 делаю LightingMap, с помощю Unwrap UVW-при этом ставлю Map Channel2-запикаю текстуру (jpg),но при наложении текстуры на объект почемуто просматриваются ребра границ (Display Seams)ченым-серым цветом.Подскажите может я делаю чето не так или может надо чето включить чтоб такого не было.Надеюсь понятно написал.

ABTOMAT 24.02.2010 04:59

Ответ: Вопрос-Ответ (для новичков)
 
Могу только предположить, что авторазвернулось плохо, и на стыках артефакты.
В Максе выдели свою сцену и назначь модификатор Unwrap UVW (естественно уже после того как модель авторазвернулась для экспорта лайтмапы) и посмотри где стыки.

Nex 24.02.2010 10:41

Ответ: Вопрос-Ответ (для новичков)
 
Sapik, можно еще использовать gile[s]. Там можно делать лайтмапу...

tormoz 24.02.2010 15:15

Ответ: Вопрос-Ответ (для новичков)
 
Цитата:

Сообщение от Sapik (Сообщение 139136)
Люди подскажите пожайлуста!! Я в 3Dmax7 делаю LightingMap, с помощю Unwrap UVW-при этом ставлю Map Channel2-запикаю текстуру (jpg),но при наложении текстуры на объект почемуто просматриваются ребра границ (Display Seams)ченым-серым цветом.Подскажите может я делаю чето не так или может надо чето включить чтоб такого не было.Надеюсь понятно написал.

clamp-ы текстуре поставь в материалах
если накладываешь программно, то флаг 16+32

Sapik 24.02.2010 23:43

Ответ: Вопрос-Ответ (для новичков)
 
ABTOMAT
Я посмотрел (стыки) лежат вроде как точно по текстуре,но когда приближаещ очень близко черные пиксели по кроям поподают на(стыки)как с етим боротся что я делаю не так?


tormoz-ты не мог бы обяснить подробнее!! Что за (clamp-ы) и как их поставить?В максовских материалах или я чегото не понял.Вообщем я накладываю текстуру в 3Dmax как Blitz3D Brush\Channel2\+jpg,експортирую в Blitz3D как b3d там LoadMesh и получаю (ужастную LightingMap)
Извените может я торможу просто я сырой пока в 3Dmax

ABTOMAT 24.02.2010 23:56

Ответ: Вопрос-Ответ (для новичков)
 
Sapik, не особо понял, лучше покажи скриншот

tormoz 25.02.2010 00:00

Ответ: Вопрос-Ответ (для новичков)
 
Вложений: 1
Цитата:

Сообщение от Sapik (Сообщение 139310)
ABTOMAT
Я посмотрел (стыки) лежат вроде как точно по текстуре,но когда приближаещ очень близко черные пиксели по кроям поподают на(стыки)как с етим боротся что я делаю не так?


tormoz-ты не мог бы обяснить подробнее!! Что за (clamp-ы) и как их поставить?В максовских материалах или я чегото не понял.Вообщем я накладываю текстуру в 3Dmax как Blitz3D Brush\Channel2\+jpg,експортирую в Blitz3D как b3d там LoadMesh и получаю (ужастную LightingMap)
Извените может я торможу просто я сырой пока в 3Dmax

Вложение 9283

Sapik 25.02.2010 01:33

Ответ: Вопрос-Ответ (для новичков)
 
(ABTOMAT-tormoz) ребята спасибо что отозвались.Я решил это таким оброзом натянил тексу (tga) и почемуто все получилось,а с (jpg) нифига возможно прийдется всетаки сталкнутся в дальнейшем почему у меня так.

KingMaks 26.02.2010 01:38

Ответ: Вопрос-Ответ (для новичков)
 
Как определить требования своей игры?

Nex 26.02.2010 09:14

Ответ: Вопрос-Ответ (для новичков)
 
KingMaks, может я и ошибаюсь, но елси на чистом B3D, то: деркс 7, пень 300 и т.д. Во многих готовых проектах это написанно...

Android 26.02.2010 10:12

Ответ: Вопрос-Ответ (для новичков)
 
Цитата:

Сообщение от Nex (Сообщение 139507)
KingMaks, может я и ошибаюсь, но елси на чистом B3D, то: деркс 7, пень 300 и т.д. Во многих готовых проектах это написанно...

Ндэ.
Попробуй на т.н. "пень 300" и соотв. конфе, запустить ту же демку CopperHead, когда он был еще на дх7. Ух, поиграешь! :crazy:

Nex 26.02.2010 10:46

Ответ: Вопрос-Ответ (для новичков)
 
Цитата:

может я и ошибаюсь
Как бэ заранее, что бы если че меньше флуда было. :crazy:

Sashka007 06.03.2010 19:28

Ответ: Вопрос-Ответ (для новичков)
 
Привет всем!

вообщем такой вопрос, как можно реализовать например такую весчь, как следы от шин на асфалте? Попробовал спрайтам, получилась шляпа дырявая...

Nex 07.03.2010 12:17

Ответ: Вопрос-Ответ (для новичков)
 
Почему когда я делаю вот так, то про нажатию на KeyHit (1) ниче не происходит?
PHP код:

While Not KeyHit (1)
    
Select Game
        
Case 1
            MainMenu 
()
                While 
Not KeyHit (1)
                    
Cls ()
                        
UpdateMainMenu ()
                    
Flip 
                Wend 
        
Case 2
            Game 
()
                While 
Not KeyHit (1)
                        
UpdateGame ()
                    
UpdateWorld ()
                    
RenderWorld ()

                    
Flip 
                Wend 
    End Select
Wend 
:End 


Dream 07.03.2010 13:03

Ответ: Вопрос-Ответ (для новичков)
 
почему когда я просыпаюсь, мне не приносят кофе? О_о
а если серьёзно, то для начала я бы убрал и проверки на выход из цикла
Цитата:

Not KeyHit (1)
а так, не видя всего трудно чтолибо посоветывать да и вобще, если нажать ескейп, будет выход из цикла, и не дойдёт до проверок остальных
Цитата:

элементарно ватсон
да и вобще, чё это за структура О_О

Nex 07.03.2010 13:10

Ответ: Вопрос-Ответ (для новичков)
 
Это конструкция для реализации главного меню и самой игры. По другому не умею.
В циклах потом будут стоять переменные разные, а пока КейХит...

Dream 07.03.2010 13:13

Ответ: Вопрос-Ответ (для новичков)
 
Ты кушаешь моски по утрам?Х_Х
пустучись в аську

H@NON 07.03.2010 13:20

Ответ: Вопрос-Ответ (для новичков)
 
KeyHit вызывается 1 раз за цикл, иначе он обнуляет свое состояние. Поэтому заведи переменную, где будешь хранить значение кейХит, и затем передавай его в другие циклы.

RlexGm 09.03.2010 15:18

Ответ: Вопрос-Ответ (для новичков)
 
Подскажиет плз как проверить столкновение игрока с объектом по оси Y. Есть такая каманда CollisionY но я в не чето не разобрался(

H@NON 09.03.2010 18:10

Ответ: Вопрос-Ответ (для новичков)
 
она возвращает мировые координаты точки коллизии, а не относительно объекта. Поэтому делай так :
collY# = CollisionY(entity, i) - EntityY(entity,1)

Reks888 10.03.2010 20:23

Ответ: Вопрос-Ответ (для новичков)
 
Кто-нибудь кто пользовался Blender3d, свяжитесь со мной пожалуйста. Контакты в профиле. У меня проблема с использованием модели с текстурой. Я могу открывать модель в редакторе и на ней будет текстура. При загрузке модели в игру - модель получается без текстуры

Reizel 10.03.2010 21:18

Ответ: Вопрос-Ответ (для новичков)
 
Процитирую H@non'a: Продебажь модельку :)
В общем пройдись по всем сурфейсам, получай от них браши, от брашей - текстуры - от текстур Имя файла (Да да такое возможно), там и увидишь где текстура лежать должна(может положил не там, вот и не грузит он ее)

ABTOMAT 10.03.2010 21:23

Ответ: Вопрос-Ответ (для новичков)
 
Цитата:

Сообщение от Павел (Сообщение 141508)
Процитирую H@non'a: Продебажь модельку :)
В общем пройдись по всем сурфейсам, получай от них браши, от брашей - текстуры - от текстур Имя файла (Да да такое возможно), там и увидишь где текстура лежать должна(может положил не там, вот и не грузит он ее)

Это ж не блиц, а блендер.
Вряд ли там такая же структура, как в блице. А если и подобная, то хрен его знаить, есть ли там средства доступа к таким вещам (они уже относятся к "внутренностям")

Reks888 11.03.2010 00:59

Ответ: Вопрос-Ответ (для новичков)
 
Разобрался в чем проблема, теперь все нормально. Исправилось пакованием текстуры, и помещением пака в директорию с моделью

is.SarCasm 11.03.2010 09:31

Ответ: Вопрос-Ответ (для новичков)
 
Мда, как будто я не говорил тебе ложить модель вместе с текстурой....

RlexGm 14.03.2010 13:17

Ответ: Вопрос-Ответ (для новичков)
 
Цитата:

Сообщение от H@NON (Сообщение 141323)
она возвращает мировые координаты точки коллизии, а не относительно объекта. Поэтому делай так :
collY# = CollisionY(entity, i) - EntityY(entity,1)

Чёт я не очень понял, а CollY#, чё обозначает?

H@NON 14.03.2010 13:43

Ответ: Вопрос-Ответ (для новичков)
 
это переменная

Reks888 14.03.2010 14:04

Ответ: Вопрос-Ответ (для новичков)
 
он наверно имел ввиду что она значит :-D

ABTOMAT 14.03.2010 16:37

Ответ: Вопрос-Ответ (для новичков)
 
В неё записывается значение выражения, стоящего справа от знака "равно".


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

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