Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Blitz3D > 3D-программирование

3D-программирование Вопросы, касающиеся программирования 3D мира

Ответ
 
Опции темы
Старый 20.09.2009, 19:37   #1
TxN
AnyKey`щик
 
Регистрация: 22.11.2007
Сообщений: 13
Написано 0 полезных сообщений
(для 0 пользователей)
Радость Вопросы очередного новичка

У меня тут возникло немного вопросов по блицу и физиксу в частности, но сам ответа на них я пока не нашел.

первый:
у меня физические модели (пропы, я привык их так звать) автоматически грузятся и настраиваются с помощью .cfg файла, в котором записаны все необходимые параметры. Однако можно случайно подать не существующий cfg файл, и тогда игра падает. Я нашел функцию FileType(file), которая могла бы решить эту проблему. Однако как завершить выполнение функции при ошибке я так и не догадался. Break и Exit не работают, а больше я ничего и не знаю.
Второй:
как определить координаты той точки, куда смотрит камера?
Третий:
как находить длину PxRay?
Четвертый:
как сделать так, чтобы игрок был тоже физ.объектом?
У меня выходят какие-то криворукие вещи, толку от которых нету. Пока реализовал обычными коллизиями.

По мере появления вопросов буду писать еще, не обижайтесь на неразумного)
(Offline)
 
Ответить с цитированием
Старый 20.09.2009, 19:41   #2
Dakar
Оператор ЭВМ
 
Регистрация: 17.09.2009
Адрес: Казахстан -> Рудный
Сообщений: 42
Написано 10 полезных сообщений
(для 23 пользователей)
Ответ: Вопросы очередного новичка

Отвечу на второй:
PickedX(),PickedY(),PickedZ()

Только обьектам на которые смотриш по ставь пикмоде 2
__________________
Проект:
Название: Solium - Last War.
Жанр: Онлайн шутер с элементами стратегии.
Завершён: 45%
Ведётся работа над сервером игры... (20 %)
Сайт проекта: http://shwl-center.at.ua/
===========
Дайте сказать немому...
===========
"Да, ты можешь использовать готовые решения, и всё будет работать, но МОЗГОВ тебе от этого, не прибавится!"
===========
Помните! Ничто не защищает Ваши зубы 24 часа в сутки так хорошо, как уважительное отношение к окружающим!
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
TxN (20.09.2009)
Старый 20.09.2009, 19:42   #3
Dakar
Оператор ЭВМ
 
Регистрация: 17.09.2009
Адрес: Казахстан -> Рудный
Сообщений: 42
Написано 10 полезных сообщений
(для 23 пользователей)
Ответ: Вопросы очередного новичка

Вот пример из хелпа

; Пример CameraPick 
; ------------------ 

Graphics3D 640,480,0,2 
SetBuffer BackBuffer() 

camera=CreateCamera() 
PositionEntity camera,0,2,-10 

light=CreateLight() 
RotateEntity light,90,0,0 

plane=CreatePlane() 
EntityPickMode plane,2 ; Присвоим плоскости тип определения 2 (по полигонам). 
ground_tex=LoadTexture("media/Chorme-2.bmp") 
EntityTexture plane,ground_tex 

cube=CreateCube() 
EntityPickMode cube,2 ; Присвоим кубу тип определения 2 (по полигонам).
cube_tex=LoadTexture("media/b3dlogo.jpg") 
EntityTexture cube,cube_tex 
PositionEntity cube,0,1,0 

While Not KeyDown( 1 ) 

If KeyDown( 205 )=True Then TurnEntity camera,0,-1,0 
If KeyDown( 203 )=True Then TurnEntity camera,0,1,0 
If KeyDown( 208 )=True Then MoveEntity camera,0,0,-0.05 
If KeyDown( 200 )=True Then MoveEntity camera,0,0,0.05 

; Если левая кнопка мыши нажата, используем CameraPick с координатами мыши 
; В этом примере можно выбрать только 3 вещи: плоскость, куб, или ничего 
If MouseHit(1)=True Then CameraPick(camera,MouseX(),MouseY()) 

RenderWorld 

Text 0,0,"Use cursor keys to move about" 
Text 0,20,"Press left mouse button to use CameraPick with mouse coordinates" 
Text 0,40,"PickedX: "+PickedX#() 
Text 0,60,"PickedY: "+PickedY#() 
Text 0,80,"PickedZ: "+PickedZ#() 
Text 0,100,"PickedNX: "+PickedNX#() 
Text 0,120,"PickedNY: "+PickedNY#() 
Text 0,140,"PickedNZ: "+PickedNZ#() 
Text 0,160,"PickedTime: "+PickedTime#() 
Text 0,180,"PickedEntity: "+PickedEntity() 
Text 0,200,"PickedSurface: "+PickedSurface() 
Text 0,220,"PickedTriangle: "+PickedTriangle() 

Flip 

Wend 

End
__________________
Проект:
Название: Solium - Last War.
Жанр: Онлайн шутер с элементами стратегии.
Завершён: 45%
Ведётся работа над сервером игры... (20 %)
Сайт проекта: http://shwl-center.at.ua/
===========
Дайте сказать немому...
===========
"Да, ты можешь использовать готовые решения, и всё будет работать, но МОЗГОВ тебе от этого, не прибавится!"
===========
Помните! Ничто не защищает Ваши зубы 24 часа в сутки так хорошо, как уважительное отношение к окружающим!
(Offline)
 
Ответить с цитированием
Старый 20.09.2009, 19:45   #4
TxN
AnyKey`щик
 
Регистрация: 22.11.2007
Сообщений: 13
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Вопросы очередного новичка

Тo Dakar:

А к trimesh это подойдет, не знаешь?
просто уровень реализован именно им, и надо создавать объекты там, куда смотрит камера, и чтобы они не застревали и никуда не девались

спасибо за мгновенную реакцию, про камера пик совсем забыл, хотел pxRay'ем делать
(Offline)
 
Ответить с цитированием
Старый 20.09.2009, 19:49   #5
Dakar
Оператор ЭВМ
 
Регистрация: 17.09.2009
Адрес: Казахстан -> Рудный
Сообщений: 42
Написано 10 полезных сообщений
(для 23 пользователей)
Ответ: Вопросы очередного новичка

Сообщение от TxN Посмотреть сообщение
Тo Dakar:

А к trimesh это подойдет, не знаешь?
просто уровень реализован именно им, и надо создавать объекты там, куда смотрит камера, и чтобы они не застревали и никуда не девались
Пробуй ))) и про пикмоде не забывай, в справке почитай там всё есть

Вот так она используется :

EntityPickMode entity,pick_geometry[,obscurer]
Параметры
entity - указатель объекта 

pick_geometry - тип геометрии, используемой для проверки: 
0: не проверяется (по умолчанию) 
1: Сфера (используется EntityRadius) 
2: Полигоны 
3: Куб (используется EntityBox) 

obscurer (не обязательно) - True, чтобы установить, что объект перекрывает другие объекты во время выполнения EntityVisible. 

Описание
Устанавливает режим проверки для объекта. 

Дополнительный параметр obscurer используется с EntityVisible, чтобы создать условия, когда линия взгляда может как бы беспрепятственно пройти между двумя объектами. Это позволяет проверять некоторые объектам с использованием других pick-команд, но игнорировать их (они как бы 'прозрачные') при использовании EntityVisible. Это очень важное свойство EntityVisible.
__________________
Проект:
Название: Solium - Last War.
Жанр: Онлайн шутер с элементами стратегии.
Завершён: 45%
Ведётся работа над сервером игры... (20 %)
Сайт проекта: http://shwl-center.at.ua/
===========
Дайте сказать немому...
===========
"Да, ты можешь использовать готовые решения, и всё будет работать, но МОЗГОВ тебе от этого, не прибавится!"
===========
Помните! Ничто не защищает Ваши зубы 24 часа в сутки так хорошо, как уважительное отношение к окружающим!
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
TxN (20.09.2009)
Старый 20.09.2009, 19:53   #6
St.AnGer
Нуждающийся
 
Регистрация: 02.09.2007
Сообщений: 50
Написано 9 полезных сообщений
(для 9 пользователей)
Ответ: Вопросы очередного новичка

Отвечу на четвёртый вопрос: физическим цилиндром и силами прилагаемыми к нему.

В этой теме есть реализация этого, только через сферу.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
TxN (20.09.2009)
Старый 20.09.2009, 20:13   #7
TxN
AnyKey`щик
 
Регистрация: 22.11.2007
Сообщений: 13
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Вопросы очередного новичка

Извините глупого, но как сделать так, чтобы цилиндр при применении к нему силы никуда не переворачивался и не катился?
Еще раз извините за тупость)
(Offline)
 
Ответить с цитированием
Старый 20.09.2009, 20:17   #8
tormoz
Гигант индустрии
 
Аватар для tormoz
 
Регистрация: 14.12.2005
Сообщений: 2,785
Написано 1,183 полезных сообщений
(для 4,437 пользователей)
Ответ: Вопросы очередного новичка

Сообщение от TxN Посмотреть сообщение
Я нашел функцию FileType(file), которая могла бы решить эту проблему. Однако как завершить выполнение функции при ошибке я так и не догадался. Break и Exit не работают, а больше я ничего и не знаю.
Return
__________________
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
TxN (20.09.2009)
Старый 20.09.2009, 20:24   #9
TxN
AnyKey`щик
 
Регистрация: 22.11.2007
Сообщений: 13
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Вопросы очередного новичка

Блин с ним уже пробовал, не выходило, щас попробовал и нашел баг из-за которого Return глючил)
Return False же правильно его использовать, да?
(Offline)
 
Ответить с цитированием
Старый 20.09.2009, 20:59   #10
Dakar
Оператор ЭВМ
 
Регистрация: 17.09.2009
Адрес: Казахстан -> Рудный
Сообщений: 42
Написано 10 полезных сообщений
(для 23 пользователей)
Ответ: Вопросы очередного новичка

Вот наслождайся:

Про Return

Return value
Параметры
RETURN возвращает значение из функции, тип данных при этом соответствует объявленному в имени функции.

Значение не может быть возвращено при использовании GOSUB.  

Описание
При вызове внутри структуры FUNCTION, команда RETURN немедленно возвращает выполнение программы из функции назад к основному коду, откуда функция была вызвана. Необязательное значение может быть возвращено. Смотрите FUNCTION для получения большей информации по теме. Помните, после RETURN, оставшийся код FUNCTION не выполняется. Смотрите пример. RETURN также завершает выполнение подпрограммы, вызванной командой GOSUB, но не может возвращать данные. 
 


; RETURN Пример

; Выбор результата для значения возврата функции 'testme'
result=testme(Rnd(0,10));

; Программа эффективно заканчивается здесь.

; Подлинная функция
Function testme(test);

; Если случайный номер является = 0 
If test=0 Then
Print "Значение было 0"
Return False ; Функция завершается немедленно
Else
Print "Значение больше, чем 0"
Return True ; Функция прекращается немедленно
End If
Print "Эта строка никогда не будет напечатана!"
End Function
__________________
Проект:
Название: Solium - Last War.
Жанр: Онлайн шутер с элементами стратегии.
Завершён: 45%
Ведётся работа над сервером игры... (20 %)
Сайт проекта: http://shwl-center.at.ua/
===========
Дайте сказать немому...
===========
"Да, ты можешь использовать готовые решения, и всё будет работать, но МОЗГОВ тебе от этого, не прибавится!"
===========
Помните! Ничто не защищает Ваши зубы 24 часа в сутки так хорошо, как уважительное отношение к окружающим!
(Offline)
 
Ответить с цитированием
Старый 20.09.2009, 21:08   #11
TxN
AnyKey`щик
 
Регистрация: 22.11.2007
Сообщений: 13
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Вопросы очередного новичка

Return я починил, длину физ.луча находить научился сам, создавать объекты перед собой тоже научился, остался лишь вопрос с игроком - физическим объектом.
Если давать силу сфере, то она крутится, цилинд катится, куб тоже, надо както запретить вращение, но я хз как)

А хелп у меня на английском
(Offline)
 
Ответить с цитированием
Старый 20.09.2009, 23:44   #12
St.AnGer
Нуждающийся
 
Регистрация: 02.09.2007
Сообщений: 50
Написано 9 полезных сообщений
(для 9 пользователей)
Ответ: Вопросы очередного новичка

Сообщение от TxN Посмотреть сообщение
Извините глупого, но как сделать так, чтобы цилиндр при применении к нему силы никуда не переворачивался и не катился?
Еще раз извините за тупость)
Если бы ты один такой был... Сказать то легко, а вот сделать... У меня тоже с этим проблема, бьюсь над ней уже много времени. С цилиндром не получается, за основу главного героя тоже взял сферу. С цилиндром получилось только на С++ сделать с PhysX'ом. Но так как в С++ я ламер пока что, хочу сделать на BB, только сам. И в этом основная запарка.
Пробовал сделать со смещением центра тяжести у цилиндра, но не очень получилось и я забросил. Попробуй, может у тебя что то путёвое получится
(Offline)
 
Ответить с цитированием
Старый 20.09.2009, 23:45   #13
St.AnGer
Нуждающийся
 
Регистрация: 02.09.2007
Сообщений: 50
Написано 9 полезных сообщений
(для 9 пользователей)
Ответ: Вопросы очередного новичка

Проблему с кручением сферы я решил быстро, сейчас найду исходник, посмотрю как.
(Offline)
 
Ответить с цитированием
Старый 20.09.2009, 23:52   #14
St.AnGer
Нуждающийся
 
Регистрация: 02.09.2007
Сообщений: 50
Написано 9 полезных сообщений
(для 9 пользователей)
Ответ: Вопросы очередного новичка

Я делал глупым способом, но по крайней мере он работает.
При помощи команд EntityPitch, EntityYaw, EntityRoll и pxBodySetRotation я поворачивал физическое тело по углам меши. Способ тупой, но действенный. Надо поворачивать только меш, а тело само повернётся по направлению меши.

И ещё, команда pxBodySetAngularSpeed поможет решить эту проблему логичнее, чем я предложил
(Offline)
 
Ответить с цитированием
Старый 20.09.2009, 23:55   #15
ABTOMAT
Ференька
 
Аватар для ABTOMAT
 
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,741
Написано 5,461 полезных сообщений
(для 15,675 пользователей)
Ответ: Вопросы очередного новичка

Третий:
как находить длину PxRay?
Теорема Пифагора спешит на помощь!
Function TeoremaPifagora#(x1#,y1#,z1#,x2#,y2#=0,z2#=0)
	Return Sqr((x1 - x2)^2+(y1 - y2)^2+(z1 - z2)^2)
End Function
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**

* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена

(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Я новичок! alcosholik Blitz3D 123 02.08.2014 22:55
Вопросы новичка в БМаксе ELIAS 2D-программирование 14 08.02.2010 10:43
Re: Я новичок! evel Болтовня 60 30.09.2007 11:23
Помогите новичку _maxim_ 3D-программирование 7 17.09.2006 15:48
Вопросы...помогите новичку Round 3D-программирование 3 10.09.2006 21:47


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


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com