![]() |
Ответ: Вопрос-Ответ (для новичков)
С кубиками теперь всё нормально, а вот с моделями всё равно не получается... Кубик входит в модель.
|
Ответ: Вопрос-Ответ (для новичков)
|
Ответ: Вопрос-Ответ (для новичков)
Еще раз повторюсь, что сталкиваться может только сфера с чем-то. Т.е. у кубика должна быть коллизия как у сферы, чтобы он не проходил сквозь модели.
|
Ответ: Вопрос-Ответ (для новичков)
Выбери нормальные значения EntityRadius
Вот тебе параметры команды: EntityRadius entity,x_radius#[,y_radius#], где entity - указатель объекта x_radius# - радиус по оси x эллипсоида зоны столкновений y_radius# (optional) - радиус по оси y эллипсоида зоны столкновений. Если не указано, то будет использоваться значение параметра x_radius# (будет сфера). Как я увидел из твоего скрина, то танк длина танка у тебя больше высоты, поэтому попробуй больше поставить x_radius#, а y_radius# поменьше. Коллизию для проверки столкновений м\у танком и картой используй типа сфера-полигон. Т.е. в Collisions src_type,dest_type,method,response используй method=2 |
Ответ: Вопрос-Ответ (для новичков)
EntityRadius... А что другого нечего нет? Модели ведь не кубики и не сферы... Как же им делать столкновения?
И если делать EntityRadius и скольжение при столкновении, то они будут друг на друга лезть... Один на сфере зациклился... А зачем EntityBox тогда (я думаю для куба)? Как я понял, надо в интернете найти исходник игры с моделями и коллизией... |
Ответ: Вопрос-Ответ (для новичков)
Короче вот:
http://blitz3d.at.ua/forum/2-239-1659-16-1264154433 Не только сфера сталкивается... EntityBox применил и всё норм. И не скользит по объекту вверх |
Ответ: Вопрос-Ответ (для новичков)
Тогда используй физ.движки, если тебе нужна нормальная коллизия
|
Ответ: Вопрос-Ответ (для новичков)
Цитата:
|
Ответ: Вопрос-Ответ (для новичков)
Цитата:
Цитата:
Цитата:
Цитата:
Вот решил дополнить ещё своим гавнокодом, может баги хотя бы удастся устранить Код:
;нужно подилить всё на части:0 стоит, 1 сидит Я решил эту проблему отключением гравитации, и он липнет и не падает, (у меня Gravity=2 отключает гравитацию) но сдесь появлятся первый(баг, просчёт и др :-D хз чё это) если же мы сталкиваемся с потолком то мы не как не можем достичь нужной позиции и можем летать по комнате :( , я думаю нужно это нужно решать не отключением грави, а чем то еще:) И второе. Если ты сидя прополз ниже, то есть skProsh= больше чем надо , то при отпускании он начнёт тебя возращать на позицию Y с которой ты начал приседать.И если залез сидя выше , то вроде он провалиться. -А почему же нельзя поднимать не на разницу а сразу на нужную высоту?? А вот потому что если он не достиг пола, то он будет подниматься выше чем надо, например можно барабанить ctrl(или что нибудь ещё) и он будет поднимать всё выше и выше:( Надеюсь вы мне поможете:) |
Ответ: Вопрос-Ответ (для новичков)
Блджд ПЕРЕПИШИ КОД! С говнокодом тебе никто не поможет, напиши по людски в конце концов. Что за херь с отключением гравитации при прыжке.
|
Ответ: Вопрос-Ответ (для новичков)
это не прыжок это подъём после приседания
и как это реализовать без отключения грави? Нормальный код найти мне даже Google не помог найти |
Ответ: Вопрос-Ответ (для новичков)
Цитата:
Что касается остальных трабл, то выложи во вложении весь исходник - тогда можно глянуть. |
Ответ: Вопрос-Ответ (для новичков)
Цитата:
|
Ответ: Вопрос-Ответ (для новичков)
Цитата:
|
Ответ: Вопрос-Ответ (для новичков)
Цитата:
Мнё всё говорили что: Цитата:
|
Ответ: Вопрос-Ответ (для новичков)
Цитата:
Цитата:
|
Ответ: Вопрос-Ответ (для новичков)
Цитата:
Цитата:
|
Ответ: Вопрос-Ответ (для новичков)
Цитата:
Да я знаю как там колдовать с радиусом... НО если у этой коллизии будут параметры 2,1, то при столкновении с объектом меньших размеров, сфера начнёт залазить на объект... Я с боксом сделал, всё нормально и скользит, и не налезает. |
Ответ: Вопрос-Ответ (для новичков)
Цитата:
Цитата:
|
Ответ: Вопрос-Ответ (для новичков)
У меня есть модель мозга.
Я копирую её: For i=0 to 10 model(i)=copyentity(modelka) ... next Потом в цикле пишу: Типа так: For i=0 to 10 If model(i)<>0 If entitycolided(model(i),t_player) then freeentity model(i) endif next По сути все правильно, но мозг сколизинный с плэйром, не freeEntity'кается.Ваще ни на чо не реагирует. |
Ответ: Вопрос-Ответ (для новичков)
Я думаю разницы не будет если ты попробуешь написать :
Цитата:
|
Ответ: Вопрос-Ответ (для новичков)
никто не знает откуда можно скачать модели низкополигонных деревьев (не больше 2000 полигонов) . нужна сосна ель и береза.
|
Ответ: Вопрос-Ответ (для новичков)
|
Ответ: Вопрос-Ответ (для новичков)
кто нибудь испытывал как работает Blitz3D на процессорах intel i3 i5 ?
|
Ответ: Вопрос-Ответ (для новичков)
А что интересует? У меня i5 M520. 2.4GHz если без турбобуста. 2 ядра, 4 потока. Плюс nV GT330M. WinXP SP3 32бита. Блиц 1.98, 1.99, 1.101
Работает. Если интересют конкретные тесты, выкладывай. |
Ответ: Вопрос-Ответ (для новичков)
интересует как справляется новый процессор. всетаки blitz3d очень старый. нет ли каких либо багов. ?
А чем отличаеться Blitz3d от BlitzMax ? |
Ответ: Вопрос-Ответ (для новичков)
BLitzMax лучше в плане 2д графики и скорости вообще, но 3д там нету.
|
Ответ: Вопрос-Ответ (для новичков)
Еще в BlitzMax есть ООП, в Blitz3D нету.
|
Ответ: Вопрос-Ответ (для новичков)
кто нибудь знает как сделать такое солнышко и травку?
у кого нибудь есть исходничек этой демки http://www.youtube.com/watch?v=uuccl9ywyKQ |
Ответ: Вопрос-Ответ (для новичков)
Блин, у меня где-то эта демка с исходником была. Попробую поискать.
P.S. Блин, обманул я тебя - демка скомплиненной оказалась. Но, может, пригодится тебе. Вот ссылка: http://narod.ru/disk/22745201000/JSL_Preview.rar.html |
Ответ: Вопрос-Ответ (для новичков)
так что ни у кого нет исходника? расскажите хотя бы в теории как сделать такой эффект солнца
|
Ответ: Вопрос-Ответ (для новичков)
спрайтом перед камерой
|
Ответ: Вопрос-Ответ (для новичков)
а как расчитать находиться ли солнце за каким либо обьектом или в прямой видимости?
|
Ответ: Вопрос-Ответ (для новичков)
EntityPick ( entity,range# )
Parameters entity - entity handle range# - range of pick area around entity Description Returns the nearest entity 'ahead' of the specified entity. An entity must have a non-zero EntityPickMode to be pickable. EntityVisible ( src_entity,dest_entity ) Parameters src_entity - source entity handle dest_entity - destination entity handle Description Returns true if src_entity and dest_entity can 'see' each other. |
Ответ: Вопрос-Ответ (для новичков)
Цитата:
Я пробовал "прятаться" за кубики - все равно "труе" |
Ответ: Вопрос-Ответ (для новичков)
Всё работает
|
Ответ: Вопрос-Ответ (для новичков)
кубики тоже должы быть pickable.
|
Ответ: Вопрос-Ответ (для новичков)
извините за нубский вопрос, но все таки
что такое Wrapper? например я скачал сначала Physx, потом нашел Physx Wrapper там было все тоже самое и еще неколько библиотек объясните пожалйста нубу |
Ответ: Вопрос-Ответ (для новичков)
Цитата:
Цитата:
Physx+Wrapper=Physx Wrapper:-D |
Ответ: Вопрос-Ответ (для новичков)
Den ты прям какой-то вездесущий:)
спасибо теперь понял |
Ответ: Вопрос-Ответ (для новичков)
Уважаемые гуру блица!
Есть вопрос: Допустим, у меня есть объект, например кубик, и я хочу, чтобы напротив выбранной мною стороны появился еще один такой же. Полигон, как я понимаю, можно выбрать через cameraPick(), а что делать дальше? Вот картинка для пояснения: ![]() И еще: как относится physX к очень большому количеству объектов, если они не взаимодействуют между собой (имеют массу 0 ) |
Ответ: Вопрос-Ответ (для новичков)
Как правильно пользоваться функцией "MeshesIntersect"? :)
А то у меня она работает только с 2мя последними объектами. |
Ответ: Вопрос-Ответ (для новичков)
Осторожно, MeshesIntersect - очень медленная в исполнении команда. Использовать для чего-нибудь покрупнее кубиков и сфер не рекомендуется - жутко залагает.
Код:
|
Ответ: Вопрос-Ответ (для новичков)
Цитата:
|
Ответ: Вопрос-Ответ (для новичков)
Ну так каждый из нескольких по очереди и перебираешь. Первый со вторым, первый с третим... Первый с последним, Второй с третьим, Второй с четвертым...
Все предельно просто. |
Ответ: Вопрос-Ответ (для новичков)
ВОт у меня ещё одна проблемка. В редакторе, который я делаю, я сделал функцию загрузки и расстановки моделей, в данном случае - это деревья
вот функция (стандартная). Function CreateTree1() a.Tree1=New Tree1 a\model=LoadMesh ("Data\Models\Trees\Tree1\Larch.b3d") RotateEntity a\model,0,Rnd(360),0 PositionEntity a\model,PickedX(),PickedY(),PickedZ() End Function Понятно. Ничего хитрого. Пикнул на поверхность - создалось дерево. А вот я хочу создать например не одно дерево , а 50 деревьев. Знаю через команду For и т.д. Но проблема в том, что все эти 50 деревьев создаются на одной координате. Я хочу что бы в разных.Нет, я не малосоображающий к PickedX () прибавляем Rnd(-200,200), так же с PickedZ. А как сделать так, что бы через кнопку + увеличивать радиус расположения деревьев. Что бы нажал плюс, пикнул на поверхность, создались деревья, ну поняли... Как? |
Ответ: Вопрос-Ответ (для новичков)
Хм... Первое что пришло на ум:
заведи две каких нить переменных (допустим mouse_downed, и size) равные нулю. При нажатии на кнопку пикаешь место. Пока держишь кнопку переменную size увеличиваешь на MouseYSpeed() (допустим что так, и введи ещё ограничение по размеру) и одновременно переменная mouse_downed пиравнивается к единице. После того как отпустил кнопку делаешь условие типа if (mouse_downed=1) then и в этом условии уже делаешь свой цикл for i=траляля to size и в нём создаёшь как хочешь деревья. В конце условия не забудь mouse_downed приравнять к нулю. Вот как то так, тупо но должно работать. вот приблизительный код. Код:
... UPD. ой, что то не так как то прочитал задание. Сделал увеличение радиуса мышкой, а не плюсом. Ну с плюсом будет приблизительно так же, только увеличиваться size будет не на MouseYSpeed, а на любую твою цифру при нажатии на плюс. Код:
... |
Ответ: Вопрос-Ответ (для новичков)
мне надо что б вся эта свара деревьев не на ОДНОЙ КООРДИНАТЕ СОЗДАВАЛАСЬ. А колличество создаваемых деревьев я знаю как делать.
Пример: Поставил кол. деревьев 1, пикнул, создалось дерево, Поставил кол. деревьев 5, создалось 5 деревьев в разных расстояниях. То есть по кнопке + увеличивается и колличество деревьев, и расстояние между ними. Любое расстояние. Хоть хаотичное. |
Ответ: Вопрос-Ответ (для новичков)
а если к координате пика прибавить тот же Rnd(-size*10,size*10) допустим? Или если в цикле for делаешь, то допустим переменную цикла умноженную на size к координате пика прибавлять? вариантов миллион. Можешь ещё одну переменную завести, которая будет прибавляться уже в for'e, и её прибавлять к координате пика :)
|
Ответ: Вопрос-Ответ (для новичков)
Ой! Благодарю! Очень помог! А то додуматься не мог=).
|
Ответ: Вопрос-Ответ (для новичков)
Вложений: 1
Да,вот ещё вопрос: как рисовать текстурами? В пример вам Казаки (надеюсь все играли и все знают редактор =))) ). Выбираешь инструмент рисование текстурами, пикаешь по поверхности, и на поверхности рисуется текстура. Знаю что как - то через UVW. Есть примеры? Или кто - нибудь объяснит как такой инструмент сделать.
|
Ответ: Вопрос-Ответ (для новичков)
плиззз
|
Ответ: Вопрос-Ответ (для новичков)
:) коровья лепешка какая-то.
Ну самый простой способ это спрайтами(обычный декаль получается)....там ничего сложного. Способ хорош если у тебя текстура маленькая и тайлами. |
Ответ: Вопрос-Ответ (для новичков)
фигня способ.
Ищи в примерах запись в текстуру и смешивание текстур. Примерно оно выглядит так: принимаем координаты пика, переводим их в UV (математикой), рисуем в черно-белую текстуру (альфу для слоя нужной текстуры - тут смотри смешивание текстур в справке) в координатах пика + некотором радиусе белое пятно (можно смотреть еще расстояние до координат пика от обрабатываемого текселя - чтобы пятно было с "мягким" краем), ну и накладываем альфу и тайленную текстуру по этой альфе... |
Ответ: Вопрос-Ответ (для новичков)
Через текстурные координаты - фигня. Получается каша. Имхо: Есть только два вменяемых но ресурсоёмких способа текстурить ландшафт. Рисовать на блице ландшафт через маску тоже геморрой при том размер тексы ограничен и слоев только 8.
1) Многослойный мешевый террейн на в котором местность раскрашивается путем увеличения альфа канала вершин верхних слоев. На каждом слое своя текстура. В дальнейшем при сохранении хитрозадым алгоритмом сохраняются только видимые участки. Тоесть он обрезает ненужные. Сам делал. Картинка прикольная, но алгоритм не придумал). Для блица - тормозной и ограниченный способ который тем не менее выдает неплохую картинку. Карта правда будет жестко ограниченна размерами. У меня вроде было 180х180(если память не изменяет). 2) Тайловый террейн. Это тоже тормозной способ. Но карту можно зациклить(хотя кому в наш век оно надо?). Вообще как показывает практика для стратегий его можно и моделить. При должном навыке можно неплохую карту забабахать. На мой взгляд- самый лучший способ. |
Ответ: Вопрос-Ответ (для новичков)
А ещё есть варианты?
|
Ответ: Вопрос-Ответ (для новичков)
найти текстурную координату по имеющимся мировым не слишком сложно:
http://www.google.ru/url?sa=t&source...eCTnReVrCLAo6A |
Ответ: Вопрос-Ответ (для новичков)
Цитата:
|
Ответ: Вопрос-Ответ (для новичков)
Так, вот ещё одна проблема. Сделал код сохранения карты и загрузки. НУ вот тут такая проблема: у меня есть 3 вида моделей дерево1, дерево2 и дерево3 ( =)) ). По идее я должен в функции сохранения прописать позицию модели, её угол поворота и размеры. НУ прописал в отдельных циклах:
Function SaveMap(dir$) file=WriteFile (dir$) For b.Tree1= Each Tree1 WriteFloat file, EntityX (b\model) WriteFloat file, EntityY (b\model) WriteFloat file, EntityZ (b\model) WriteFloat file, EntityPitch (b\model) WriteFloat file, EntityYaw (b\model) WriteFloat file, EntityRoll (b\model) Next For c.Tree2= Each Tree2 WriteFloat file, EntityX (c\model) WriteFloat file, EntityY (c\model) WriteFloat file, EntityZ (c\model) WriteFloat file, EntityPitch (c\model) WriteFloat file, EntityYaw (c\model) WriteFloat file, EntityRoll (c\model) Next For d.Tree3=Each Tree3 WriteFloat file, EntityX (d\model) WriteFloat file, EntityY (d\model) WriteFloat file, EntityZ (d\model) WriteFloat file, EntityPitch (d\model) WriteFloat file, EntityYaw (d\model) WriteFloat file, EntityRoll (d\model) Next End Function Размеры не захотел записывать). Так вот на карте создаю сначала 2 зелённых дерева, 3 пожелтевших дерева и 4 осыпавшихся дерева, на разных позициях. После сохраняю карту. Загружаю эту же карту. ВОт код загрузки: Function LoadMap(dir$) file=ReadFile(dir$) For b.Tree1 = Each Tree1 For c.Tree2 = Each Tree2 For d.Tree3 = Each Tree3 Next Next Next While Not Eof(file) X#=ReadFloat(File) Y#=ReadFloat(File) Z#=ReadFloat(File) P#=ReadFloat(File) YA#=ReadFloat(File) R#=ReadFloat(File) CreateTree1(X#,Y#,Z#,P#,YA#,R#) X1#=ReadFloat(File) Y1#=ReadFloat(File) Z1#=ReadFloat(File) P1#=ReadFloat(File) YA1#=ReadFloat(File) R1#=ReadFloat(File) CreateTree2(X1#,Y1#,Z1#,P1#,YA1#,R1#) X2#=ReadFloat(File) Y2#=ReadFloat(File) Z2#=ReadFloat(File) P2#=ReadFloat(File) YA2#=ReadFloat(File) R2#=ReadFloat(File) CreateTree3(X2#,Y2#,Z2#,P2#,YA2#,R2#) Wend End Function так вот, модели создаются на своих местах, но зразные. Т.е. при создании я делаю кучку зелёных моделей , кучку жолтых, кучку с опавшей листвой. В разных позициях. При загрузке почему-то жёлтое деревцо( или два, три...) оказавается в группе зелённых, зелённое в группе желтых и т.д. что делать? вот кодик самих деревьев. Мож вы чё нибудь найдёте. Type Tree1 Field model End Type Function CreateTree1(x#,y#,z#,P#,YA#,R#) a.Tree1=New Tree1 a\model=LoadMesh ("Data\Models\Trees\Tree1\Bereza.b3d") RotateEntity a\model,P#,YA#,R# PositionEntity a\model,x#,y#,z# ;ScaleEntity a\model,SX#,SY#,SZ# End Function Function UpdateTree1() For b.Tree1=Each Tree1 For c.Tree2=Each Tree2 If EntityDistance (b\model,c\model)<=30 Then FreeEntity b\model FreeEntity c\model Delete b Delete c Exit EndIf Next Next End Function Type Tree2 Field model End Type Function CreateTree2(x1#,y1#,z1#,P1#,YA1#,R1#) a.Tree2=New Tree2 a\model=LoadMesh ("Data\Models\Trees\Tree2\Bereza.b3d") PositionEntity a\model,x1#,y1#,z1# RotateEntity a\model,P1#,YA1#,R1# End Function Type Tree3 Field model End Type Function CreateTree3(x2#,y2#,z2#,P2#,YA2#,R2#) a.Tree3=New Tree3 a\model=LoadMesh ("Data\Models\Trees\Tree3\bereza.b3d") RotateEntity a\model,P2#,YA2#,R2# PositionEntity a\model,x2#,y2#,z2# End Function |
Ответ: Вопрос-Ответ (для новичков)
Можешь удалять все, что сделал.
Код:
Function CreateTree2(x1#,y1#,z1#,P1#,YA1#,R1#) Код:
For b.Tree1 = Each Tree1 Ты изначально добавил траблы себе. Почему бы не хранить название меша в типе? А самое главное не завести папку в игре, где будут записаны типы деревьев, со всеми параметрами? И при запуске двига не читать эту папку для создания банка данных? Пока не поймешь, как делать код "правильно" нет смысла делать игры. |
Ответ: Вопрос-Ответ (для новичков)
Возможно ли рисовать 3д поверх 2д? Если да, то как?
|
Ответ: Вопрос-Ответ (для новичков)
Не пробовал, но думаю нужно что то типа: "Поставить рендер в конец цикла"
|
Ответ: Вопрос-Ответ (для новичков)
два вызова рендера, и режим камеры - без стирания фона.
|
Ответ: Вопрос-Ответ (для новичков)
Цитата:
И еще подскажите пожалуйста, как лучше всего делать "звезды" для больших пространств (без рисования на текстуре в игре с видом сверху)? Создавать церез цикл определенное количество не вариант ибо будет много хлама за кадром и все равно когда нибудь "закончатся". Есть идея создавать динамически перед и по бокам игрока, а сзади удалять, но не знаю, как это сделать. :rolleyes: |
Часовой пояс GMT +4, время: 00:53. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot