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)

LLI.T.A.L.K.E.R. 15.11.2010 01:49

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

Сообщение от Ganociy (Сообщение 168679)
Раз уж никто не заходит в ту тему, я выложу тут для тестирования наработку. А в частности мне нужна от вас информация о позиции оружия. Нормально ли оно повёрнуто к камере? Другие коментарии будут - приму к сведению.

Лучше так!

pepel 15.11.2010 02:06

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

Сообщение от IgorOK (Сообщение 168681)
Не вводи человека в заблуждение своим сарказмом)

Flip 1 - Включает вертикальную синхронизацию. 0 - отключает.

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

я вобщето спросил отличие flip и flip 1 а не flip 1 и flip 0

Ganociy 15.11.2010 09:56

Ответ: Вопрос-Ответ (для новичков)
 
LLI.T.A.L.K.E.R. , ты это с моей пушкой это сделал? Если да, то как ты изменил лево на право

Nex 15.11.2010 10:30

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

Сообщение от pepel (Сообщение 168708)
я вобще то спросил отличие flip и flip 1

Это одно и тоже.

IgorOK 15.11.2010 11:42

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

Сообщение от pepel (Сообщение 168708)
я вобщето спросил отличие flip и flip 1 а не flip 1 и flip 0

Даже не думал, что тут могут быть какие-то вопросы т.к. в хелпе ясно написано:
Цитата:

defaults to TRUE

pepel 15.11.2010 13:12

Ответ: Вопрос-Ответ (для новичков)
 
да я впринципе это знал , я просто у Hurrit спросил)
ладно. глупо получилось)

Ganociy 15.11.2010 18:47

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

EvilChaotic 15.11.2010 18:54

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

Сообщение от Ganociy (Сообщение 168786)
а как в блитзе отразить меш слева на право или наоборот

Пересчитать позицию вершин.

Ganociy 15.11.2010 18:57

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

Arles 15.11.2010 18:59

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

EvilChaotic 15.11.2010 18:59

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

Сообщение от Ganociy (Сообщение 168792)
Ага... Не у кого кода нет?

Когда я в последний раз отвечал на твой вопрос, причем все объясняя, с кодом - ты мне тоже сказал:

Цитата:

Сообщение от Ganociy
Ага...

Пробегись по вершинам и домнож одну из координат каждой на -1. Не понятно?

LLI.T.A.L.K.E.R. 15.11.2010 21:12

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

Сообщение от Ganociy (Сообщение 168730)
LLI.T.A.L.K.E.R. , ты это с моей пушкой это сделал? Если да, то как ты изменил лево на право

Вообще-от я это в Painte сделал :-)

Вот функция выворачивания модели с лева на право и наоборот:
PHP код:

Function mirror_mesh(mesh,plane,surface 0)


        If 
plane Or plane 2 Then Return 0

        
If surface 0 Then
                s_count 
CountSurfaces(mesh)
                
l_count 1
        
Else
                For 
loop 0 To CountSurfaces(mesh)
                        
temp GetSurface(mesh,loop)
                        If 
surface temp Then
                                s_count 
temp
                                l_count 
temp
                        End 
If
                
Next
        End 
If
       
        
average_x# = EntityX(mesh) - (MeshWidth(mesh)/2.0)
        
average_y# = EntityY(mesh) - (MeshHeight(mesh)/2.0)
        
average_z# = EntityZ(mesh) - (MeshDepth(mesh)/2.0)


        
If plane 0 Then
                
For sloop l_count To s_count
                        surface 
GetSurface(mesh,sloop)
                        For 
loop 0 To CountVertices(surface) - 1

                                ny
# = VertexNY (surface,loop)
                                
nz# = VertexNZ (surface,loop)
                                
nx# = VertexNX (surface,loop)
                                
VertexCoords surface,loopaverage_x - ( average_x VertexX(surface,loop)), VertexY(surface,loop), VertexZ(surface,loop)
                                
VertexNormal surface,loop,nx,ny,-nz
                        Next
                Next
        
ElseIf plane 1 Then
                
For sloop l_count To s_count
                        surface 
GetSurface(mesh,sloop)
                        For 
loop 0 To CountVertices(surface) - 1

                                ny
# = VertexNY (surface,loop)
                                
nz# = VertexNZ (surface,loop)
                                
nx# = VertexNX (surface,loop)

                                
VertexCoords surface,loopVertexX(surface,loop), average_y - ( average_y VertexY(surface,loop)), VertexZ(surface,loop)
                                
VertexNormal surface,loop,-nx,ny,-nz
                        Next
                Next
        
ElseIf plane 2 Then
                
For sloop l_count To s_count
                        surface 
GetSurface(mesh,sloop)
                        For 
loop 0 To CountVertices(surface) - 1

                                ny
# = VertexNY (surface,loop)
                                
nz# = VertexNZ (surface,loop)
                                
nx# = VertexNX (surface,loop)

                                
VertexCoords surface,loopVertexX(surface,loop), VertexY(surface,loop),  average_z - ( average_z VertexZ(surface,loop))
                                
VertexNormal surface,loop,-nx,ny,nz
                        Next
                Next
        End 
If
End Function 



Использовать так:

PHP код:

mirror_mesh(Pulemet,2) ; использование функции на модель Pulemetпо оси "не охота понимать по какой" но слева на право (и наоборот)
оси такие0 1 2 разбирать визуально по каким осям
FlipMesh Pulemet 
инвертирование отображения трианглов модели (мне это пригодилосьтак как модель "односторонняя"


Hurrit 16.11.2010 19:52

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

Сообщение от IgorOK (Сообщение 168736)
Даже не думал, что тут могут быть какие-то вопросы т.к. в хелпе ясно написано:

А чё флип по дефолту стоит 1? Не знал, ответил не смотря в справку. Извиняюсь, господа.

LLI.T.A.L.K.E.R. 16.11.2010 20:08

Ответ: Вопрос-Ответ (для новичков)
 
Не знаю чего там, но когда у меня было просто Flip
то экран "делился и поддёргивался"
приписал Flip 1
картинка чёткая без поддёргиваний

Nex 17.11.2010 09:53

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

Сообщение от LLI.T.A.L.K.E.R. (Сообщение 168929)
Не знаю чего там, но когда у меня было просто Flip
то экран "делился и поддёргивался"
приписал Flip 1
картинка чёткая без поддёргиваний

Delta time сразу делай и ниче дергаться не будет

ABTOMAT 17.11.2010 23:04

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

Ganociy 21.11.2010 19:51

Ответ: Вопрос-Ответ (для новичков)
 
Вложений: 1
Я часто замечал, но не разу не задавал вопрос. Такая фигня: делаю гравитацию игрока, коллизию игрока (установил его радиус) и мира, TranslateEntity player,0,-1,0. Поворачиваю камеру к земле, нажимаю "вперёд" и камера как бы чуть - чуть проваливается в землю. Ну сами смотрите, да и когда я на пушку ставлю ENtityOrder weapon,-(любое число) то она становится прозрачной.

Taugeshtu 21.11.2010 20:39

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

ENtityOrder weapon,-(любое число)
Точно не помню синтаксис, но вроде отрицательные числа - рендерится перед всем миром. У тебя она рендерится, а потом мир поверх нее.

Цитата:

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

Hurrit 21.11.2010 22:59

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

Сообщение от Taugeshtu (Сообщение 169519)
Похоже на проникновение коллизящих тел друг в друга, лечение - ставь скорость игрока поменьше, других методов не знаю.

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

Ganociy 23.11.2010 19:41

Ответ: Вопрос-Ответ (для новичков)
 
а почему когда я ставлю на пушку параметр EntityOrder , -9999 (вобще любое число) ,то пушка становится прозрачной?

Taugeshtu 23.11.2010 20:12

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

а почему когда я ставлю на пушку параметр EntityOrder , -9999 (вобще любое число) ,то пушка становится прозрачной?
А весь мой пост прочитать религия не позволяет, да? Иди на предыдущую станицу.
P.S. Вот и помогай им после этого...

pepel 25.11.2010 01:55

Ответ: Вопрос-Ответ (для новичков)
 
Ganociy:
глянул демку твою, у тебя сначала рисуется рука, потом пушка, скорей всего entityorder -9999 приминен к руке
а вообще поидее делай так :

entityorder hand,-1
entityorder gun,-2

т.е. чтобы сначала перед всем миром рендерилась пушка , а потом рука

Reks888 25.11.2010 17:42

Ответ: Вопрос-Ответ (для новичков)
 
Помню где-то был сэмпл с булевыми операциями над примитивами.
Если у кого есть - скиньте

Nex 27.11.2010 16:14

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

Dzirt 27.11.2010 16:52

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

pax 27.11.2010 21:06

Ответ: Вопрос-Ответ (для новичков)
 
Можно проверить на расстояние с каждым шариком. Если условие расстояния >= суммы радиусов сравниваемых рашиков выполняется для всех существующих шариков и нового положения, то положение корректно.

Nex 27.11.2010 22:04

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

Сообщение от pax (Сообщение 170107)
Можно проверить на расстояние с каждым шариком. Если условие расстояния >= суммы радиусов сравниваемых рашиков выполняется для всех существующих шариков и нового положения, то положение корректно.

Спасибо! Я че то про дистанцию забыл и с формулами и условиями извращался. :-D

Dzirt 27.11.2010 22:10

Ответ: Вопрос-Ответ (для новичков)
 
Та блджад....Nex.С твоим то опытом и про дистацию забыть?! )

Nex 28.11.2010 10:15

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

Сообщение от Dzirt (Сообщение 170121)
Та блджад....Nex.С твоим то опытом и про дистацию забыть?! )

Опыт то есть, но во всяких мелких наработках. А щас делаю игру и уже довольно много написал кода и с не привычки начинаю путься в коде и забывать ченить. :) Только вот почему то EntityDistance не возвращает ничего. >>:(
Кстати можно ли сделать что бы 2 спрайта не много прозрачных не накладывались друг на друга (что бы в месте их пересечения цвет оставался тот же)?

EvilOkta 30.11.2010 16:22

Ответ: Вопрос-Ответ (для новичков)
 
А чем можно заменить Pickанье объектов чтобы это работало быстрее? А то при поле 20х20 все нормально работает а при 50х50 уже дико тормозит (пикается каждая клетка поля - обычный двухмерный массив из блоков).
Посоветуйте не кусками кода а методами и словами ))

ABTOMAT 30.11.2010 16:37

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

EvilOkta 30.11.2010 16:51

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

Сообщение от ABTOMAT (Сообщение 170366)
Сделай плоскость невидимую из двух полигонов да пикай её. Потом по координатам пика на ней вычисляй конкретную клетку.

Огромное спасибо! Так и знал что решение простое до безумия =) Но не знал что можно получить координаты пика - только хендл пикнутого

Ganociy 30.11.2010 23:09

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

Ganociy 30.11.2010 23:10

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

Dzirt 01.12.2010 00:47

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

Параметры
entity - указатель объекта

Описание
Возвращает имя объекта. Имя может быть присвоено объекту в программе моделирования (3DS Max, например), или вручную- применением команды NameEntity.


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

Ganociy 01.12.2010 12:34

Ответ: Вопрос-Ответ (для новичков)
 
А как в Milkshape посмотреть имена чилдов. Я капался, но чёт не смог.

EvilOkta 01.12.2010 15:06

Ответ: Вопрос-Ответ (для новичков)
 
Есть ли в Blitz 3D возможность программно менять положение осей entity? Например привязать оси сначала к верхней грани entity - выполнить преобразование (rotate/scale) потом переместить привязку осей к нижней грани и т п...

moka 01.12.2010 15:21

Ответ: Вопрос-Ответ (для новичков)
 
Получаешь handle чайлда, и затем имя.
Функции:
CountChildren
GetChild
EntityName

WhiteBlack 02.12.2010 17:30

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

Hurrit 02.12.2010 17:35

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

WhiteBlack 02.12.2010 17:38

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

Эта команда 'сбрасывает' или 'очищает' всю информацию о предыдущих нажатиях клавишЭто нельзя сделать прощечем в примере

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

Hurrit 02.12.2010 17:43

Ответ: Вопрос-Ответ (для новичков)
 
дык, делаешь переменную pressed=0.
if KeyHit(17) and (pressed=0) pressed=1
if pressed=1 then
blalblabla
if timer=5sec pressed=0
endif
Вот как-то так.

WhiteBlack 02.12.2010 17:46

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

Hurrit 02.12.2010 17:51

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

Nuprahtor 02.12.2010 17:52

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

WhiteBlack 02.12.2010 17:54

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

Сообщение от Hurrit (Сообщение 170617)
у тебя для каждой функции свой таймер?

я без таймера делаю, просто в начале присваиваю переменной значение 1
а по окончании работы функции - 0
ладно спасибо и так пойдет

Ganociy 02.12.2010 22:46

Ответ: Вопрос-Ответ (для новичков)
 
Как построить стенку из кубиков. Есть функция создания кубиков. Как Через For.. Next... сделать это?

Mr_F_ 02.12.2010 23:58

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

Как Через For.. Next... сделать это?
for y=0 to колво верт кубиков
for x=0 to колво гор кубиков
с = createcube()
positionentity(c,x*размер кубика,y*размер кубика,0)
next
next

pepel 03.12.2010 10:50

Ответ: Вопрос-Ответ (для новичков)
 
а что в функции pxJSetLimitHingeSpring(joint%, spr#, targetVal#) есть лимит значения spr? выставляю большое значение, а соединение всеравно не достаточно упрогое =(

Reizel 03.12.2010 11:42

Ответ: Вопрос-Ответ (для новичков)
 
Да не сделаешь там его упругим. Бесполезняк :(

pepel 03.12.2010 11:55

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

pepel 03.12.2010 12:49

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

pepel 04.12.2010 05:55

Ответ: Вопрос-Ответ (для новичков)
 
посдкажите плз, когда загрузаешь текстуру с флагом 2: Alpha , почему zdepth глючит?
а.. все разобрался, помогло выравнивание по entityorder

Ganociy 09.12.2010 20:27

Ответ: Вопрос-Ответ (для новичков)
 
РЕбят, а как повернуть физический объект относительно статичного. Хочу что бы физический шарик поворачивался так же, как и камера. Пробовал через pxBodySetRotation. Не получается).

EvilOkta 14.12.2010 15:10

Ответ: Вопрос-Ответ (для новичков)
 
Ganociy можно поставить пивот на статичный объект и привязать объект который нужно вращать к этому пивоту

Цитата:

Сообщение от EvilOkta (Сообщение 170461)
Есть ли в Blitz 3D возможность программно менять положение осей entity? Например привязать оси сначала к верхней грани entity - выполнить преобразование (rotate/scale) потом переместить привязку осей к нижней грани и т п...

неужели никто не знает? или я что-то неприличное спросил? )))

pepel 14.12.2010 15:20

Ответ: Вопрос-Ответ (для новичков)
 
Ganociy ,EvilOkta если честно у вас вопросы непонятные

Ganociy 14.12.2010 15:55

Ответ: Вопрос-Ответ (для новичков)
 
ладно забейте на мой вопрос. Я нашёл ответ))

EvilOkta 14.12.2010 16:23

Ответ: Вопрос-Ответ (для новичков)
 
pepel )))) ок, попробую объяснить, а то и правда мутновато.
В 3d max у каждого объекта есть центр объекта - место откуда "растут" его три локальные оси координат - x,y,z. Этот центр можно сдвигать в 3d максе чтобы выполнить различные привязки, но главное (!) выполнять команды rotate и scale. Так вот, если я хочу выполнить команду EntityScale в блитце, эта самая команда будет выполняться относительно положения осей модели. Наглядный пример - масштабирование вдоль одной из осей: при положении осей "внизу" модели масштабирование будет идти "вверх", т.е. модель стоя на поверхности будет вытягиваться вверх, соответственно если ось прилепленна вверху модели, то вытягивание будет идти вниз, хотя сама команда масштабирования будет одна и та же. Вот это мне и интересно, можно ли программно смещать центр локальных осей в нужное мне место, ну или есть ли возможность делать EntityScale относительно какого-нибудь пивота?
Мне это нужно для редактора уровней, чтобы дискретно увеличивать длину стенки карты на нужное мне кол-во клеток.

St_AnGer 14.12.2010 16:24

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

Сообщение от Ganociy (Сообщение 171924)
ладно забейте на мой вопрос. Я нашёл ответ))

ну так пиши его сюда. Может кому то в будущем поможет.


2 EvilOkta
может быть FitMesh или PositionMesh? Там помоему сдвигается только сама меш, а оси объекта остаются на месте... Можно так наверно. Извините, если сморозил глупость.

tormoz 14.12.2010 20:57

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

Сообщение от EvilOkta (Сообщение 171928)
pepel )))) ок, попробую объяснить, а то и правда мутновато.
В 3d max у каждого объекта есть центр объекта - место откуда "растут" его три локальные оси координат - x,y,z. Этот центр можно сдвигать в 3d максе чтобы выполнить различные привязки, но главное (!) выполнять команды rotate и scale. Так вот, если я хочу выполнить команду EntityScale в блитце, эта самая команда будет выполняться относительно положения осей модели. Наглядный пример - масштабирование вдоль одной из осей: при положении осей "внизу" модели масштабирование будет идти "вверх", т.е. модель стоя на поверхности будет вытягиваться вверх, соответственно если ось прилепленна вверху модели, то вытягивание будет идти вниз, хотя сама команда масштабирования будет одна и та же. Вот это мне и интересно, можно ли программно смещать центр локальных осей в нужное мне место, ну или есть ли возможность делать EntityScale относительно какого-нибудь пивота?
Мне это нужно для редактора уровней, чтобы дискретно увеличивать длину стенки карты на нужное мне кол-во клеток.

FitMesh

ScaleMesh

RotateMesh

PositionMesh

pepel 15.12.2010 01:56

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

Ganociy 16.12.2010 21:40

Ответ: Вопрос-Ответ (для новичков)
 
Как реализовать паузу. Функция меню паузы есть.

Leowey 16.12.2010 21:51

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

den 16.12.2010 21:59

Ответ: Вопрос-Ответ (для новичков)
 
РЕАЛЬНЕ ПАУЗА


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

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