forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   3D-программирование (http://forum.boolean.name/forumdisplay.php?f=12)
-   -   Вопросы очередного новичка (http://forum.boolean.name/showthread.php?t=9214)

KingMaks 04.01.2010 23:11

Ответ: Вопросы очередного новичка
 
Цитата:

Сообщение от ABTOMAT (Сообщение 132231)
У меня грузит потому что ошибки меня уже баяццо

:-D

Blitz старый был или я незнаю.
Скачал 1.99 и заработало.

P.S. не мог сразу блиц переустановить, нет надо было 3дмакс два раза
переустанавливать

RlexGm 07.01.2010 17:49

Ответ: Вопросы очередного новичка
 
Подскажите плиз как можно реализовать положение в комнате от первого
лица при гравитации, т.е. он слишком низко опускается, а если ставиш дистанцию то высота нормальная, но он становится слишком толстый xD
Помогите!

KingMaks 07.01.2010 17:59

Ответ: Вопросы очередного новичка
 
EaNub
кто ?куда опускаеться? нечо не понял:)

RlexGm 07.01.2010 18:10

Ответ: Вопросы очередного новичка
 
Вообщем например есть комната, Игрок-сфера, являющийся родительским объектом для камеры...Сфера постоянно опускается вниз, пол мешает уйти ей в ...ну вобщем в бесконечность xDD Так вот он слишком далеко опускается прям до пола, а когда используешь EntityRadius то высота всамый раз, но для него тогда нужны слишком широкие коридоры чтоб проходить

NitE 07.01.2010 18:19

Ответ: Вопросы очередного новичка
 
делай капсулу.

H@NON 07.01.2010 18:33

Ответ: Вопросы очередного новичка
 
У EntityRadius есть 3-й параметр, это высота элипсоида, делай ее побольше, ширину поменьше. EntityRadius ent, 1, 5

RlexGm 07.01.2010 19:52

Ответ: Вопросы очередного новичка
 
пишет Too many parameters
и в хелп 2 параметра только написано: EntityRadius entity,radius#

Nex 07.01.2010 19:55

Ответ: Вопросы очередного новичка
 
Вложений: 1
EaNub, смотреть надо лучше. В аттаче картинка...

H@NON 07.01.2010 19:58

Ответ: Вопросы очередного новичка
 
проверь версию блитца, и ставь последний упдей. У меня 1.99 и есть команда с 3-мя параметрами.

RlexGm 07.01.2010 20:03

Ответ: Вопросы очередного новичка
 
а не подскажеш где 1.99 крякнутый найти?

Nex 07.01.2010 23:00

Ответ: Вопросы очередного новичка
 
EaNub
Скрытый текст (вы должны войти под своим логином или зарегистрироваться и иметь 1 сообщение(ий)):
У вас нет прав, чтобы видеть скрытый текст, содержащийся здесь.

KingMaks 07.01.2010 23:47

Ответ: Вопросы очередного новичка
 
EaNub
Если я правельно понял то у тебя вид какбудто игрок лежит на полу.
А ты камеру подними, и будет вид какбудто игрок стоит:)

Reizel 08.01.2010 13:56

Ответ: Вопросы очередного новичка
 
Цитата:

Сообщение от SkyDream (Сообщение 132569)
EaNub
*** скрытый текст ***

Каспер нашел там вирус, МоКа, что за дела? :)

Morganolla 08.01.2010 15:17

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

SBJoker 08.01.2010 16:09

Ответ: Вопросы очередного новичка
 
А нормали кто будет пересчитывать? Пушкин?
UpdateNormals() вам в помощь..

Morganolla 08.01.2010 16:46

Ответ: Вопросы очередного новичка
 
Куул!!! Большое спасибо, SBJoker!!! Век живи, век учись, а дураком помрешь! И ведь в примерах это я даже не встретил!!!

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

H@NON 08.01.2010 17:11

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

Morganolla 08.01.2010 17:28

Ответ: Вопросы очередного новичка
 
Спасиба, H@NON. Помогло... Ну блин как все сложно!!!!

RlexGm 08.01.2010 18:05

Ответ: Вопросы очередного новичка
 
Цитата:

Сообщение от KingMaks (Сообщение 132575)
EaNub
Если я правельно понял то у тебя вид какбудто игрок лежит на полу.
А ты камеру подними, и будет вид какбудто игрок стоит:)

Но он снова бы начал опускаться, т.к. есть гравитация =)

Спс, на 1.99 все прёт

И вот еще очередное)Копался в хелпах тах и не смог найти
Как реализовать типа такую штуку:
Если прошло 3 сек то открыть дверь
Если прошло 7 сек то закрыть дверь

NitE 08.01.2010 18:08

Ответ: Вопросы очередного новичка
 
millisecs()

KingMaks 08.01.2010 20:27

Ответ: Вопросы очередного новичка
 
EaNub

примерно так:

Код:

time = 3000

;главный цикл

if door = 0
if (Millisecs()>time) then открыть дверь:time = 7000:door = 1
end if

if door = 1
if (Millisecs()>time) then закрыть дверь :time = 3000:door = 0
end if


RlexGm 09.01.2010 12:34

Ответ: Вопросы очередного новичка
 
Цитата:

Сообщение от KingMaks (Сообщение 132711)
EaNub

примерно так:

Код:

time = 3000

;главный цикл

if door = 0
if (Millisecs()>time) then открыть дверь:time = 7000:door = 1
end if

if door = 1
if (Millisecs()>time) then закрыть дверь :time = 3000:door = 0
end if


Не работает=( запускает сразу после включения

NitE 09.01.2010 13:45

Ответ: Вопросы очередного новичка
 
поотомучто
time = 3000

if Millisecs()>time == if 39485798>3000

RlexGm 09.01.2010 14:07

Ответ: Вопросы очередного новичка
 
и как это всё реализовать?

Morganolla 09.01.2010 14:38

Ответ: Вопросы очередного новичка
 
time = Millisecs();3000

;главный цикл

if door = 0
if (Millisecs()-time>3000) then открыть дверь:time = Millisecs():door = 1
end if

if door = 1
if (Millisecs()-time>7000) then закрыть дверь :time = Millisecs():door = 0
end if

Поясню: Millisecs() - это системная ф-ия которая считает милисекунды постоянно от момента включения компьютера (с 1-ой мс) до его выключения (до 4000000000 мс - около месяца...)

ABTOMAT 09.01.2010 15:03

Ответ: Вопросы очередного новичка
 
Цитата:

(до 4000000000 мс - около месяца...)
Вот кстати если комп неделю не перезагружался, то с Millisecs будет уже считать время не так точно (перепрыгивать через десятки и т.д.) так что на месяц не надейся ;)

Reizel 09.01.2010 18:41

Ответ: Вопросы очередного новичка
 
А если комп месец не тогать? Что глюки начнутся?
Да кстати вот мой вопрос...Как реализовать ввод кодов, как в ГТА, и чтоб эти самые коды можно было потом выбирать Select -ом :) Никак в голову не приходит.

Morganolla 09.01.2010 19:00

Ответ: Вопросы очередного новичка
 
Цитата:

Сообщение от ABTOMAT (Сообщение 132782)
Вот кстати если комп неделю не перезагружался, то с Millisecs будет уже считать время не так точно (перепрыгивать через десятки и т.д.) так что на месяц не надейся ;)

Чуваки, кто не понял - это шутка!:-D
Счетчик милисикунд досчитает до 4000000000, затем скинется в ноль и снова начнет считать с единице.

NitE 09.01.2010 20:42

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

ABTOMAT 09.01.2010 20:50

Ответ: Вопросы очередного новичка
 
Цитата:

Чуваки, кто не понял - это шутка!:-D
У Резенова были проблемы с показом Sunset'а как раз из-за этого на стендах КРИ (не могли понять, в чём дело)
Вот такой я Петросян

SBJoker 09.01.2010 22:30

Ответ: Вопросы очередного новичка
 
Значит у резенова с руками проблемм был.
Ибо счетчик миллисекунд он кагбе всегда есть и один на всю систему.
А считает он не millisecs++ как все думают, а вполне себе некоторыми интервалами, составляющими обычно 1-20мс, в зависимости от системы и ОС. Насамом деле конешно значения быстрее обновляются но винда, а кроме неё и движок блитца несинхронно записывают/считывают значение. отсюда неровные интервалы приращения.

Между прочит так как в блитце интежер знаковый, а система использует беззнаковое, то на середине максимального срока будут отрицательные числа.
Можно проверить, если марк умный он запилил в миллисекс abs() результату.

З.Ы. в 64х битных системах логично предположить что таки заюзан 64х битный интежер.

jimon 09.01.2010 23:06

Ответ: Вопросы очередного новичка
 
Blitz3D юзает timeGetTime который отсчитывает время от старта системы в миллисекундах, размерность позволяет работать 49.71 дней пока не выполнится переполнение, на MSDN правильно пишут что надо юзать результат не на прямую, а разницу между двумя функциями, плюс еще и Blitz3D возвращает int, а не unsigned int, потому время делим пополам

H@NON 09.01.2010 23:22

Ответ: Вопросы очередного новичка
 
так, теперь поясните на примере, как получить правильный интервал пройденного времени за цикл ?
lastTime = Millisecs() / 2
....
newTime = Millisecs() / 2 - lastTime

так ?

SBJoker 09.01.2010 23:24

Ответ: Вопросы очередного новичка
 
Извини дядь Дим но ты спорол чушь, ничего делить на 2 ненадо, просто переполнение в сторону отрицательных чисел наступит после 2^31 но до этого момента всё будет отлично.

jimon 09.01.2010 23:25

Ответ: Вопросы очередного новичка
 
H@NON
вот так :
Код:

lastTime = Millisecs()
....
newTime = Millisecs() - lastTime

SBJoker
под делим пополам я имел ввиду время через которое знак millisecs изменится на обратный

Knightmare 09.01.2010 23:44

Ответ: Вопросы очередного новичка
 
http://msdn.microsoft.com/en-us/libr...8VS.85%29.aspx
Ребята из Мелкософта уже позаботились о всех возможных проблемах, остается только читать MSDN

Morganolla 09.01.2010 23:48

Ответ: Вопросы очередного новичка
 
Цитата:

Сообщение от SBJoker (Сообщение 132856)
... переполнение в сторону отрицательных чисел наступит после 2^31 но до этого момента всё будет отлично.

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

KingMaks 10.01.2010 05:15

Ответ: Вопросы очередного новичка
 
Вот где то прочел, не помню где, что в блице можно использовать
приблизительно 8 источников света , а больше не желательно.

Так ли ето? если нет то сколько можно нарожать источников света?

RlexGm 10.01.2010 11:19

Ответ: Вопросы очередного новичка
 
Я слыхал что на одной сцене можно использовать максимум от 8 до 16 источников света в зависимости от системок компа

jimon 10.01.2010 12:45

Ответ: Вопросы очередного новичка
 
один объект может освещаться максимум с помощью восьми источников света, это ограничение видеокарт того времени когда DirectX 7 был в моде

KingMaks 12.01.2010 00:52

Ответ: Вопросы очередного новичка
 
может кто знает команду определяющую позицию image
"типа как EntityX()"

Harter 12.01.2010 01:12

Ответ: Вопросы очередного новичка
 
Цитата:

Сообщение от KingMaks (Сообщение 133126)
может кто знает команду определяющую позицию image
"типа как EntityX()"


Это типа не ты управляешь изображением, а оно тобой!? :)

KingMaks 12.01.2010 01:15

Ответ: Вопросы очередного новичка
 
Нет! просто на екране есть изображение
нада опредилить его координаты

ABTOMAT 12.01.2010 02:08

Ответ: Вопросы очередного новичка
 
Лол, а что же ты тогда передашь в DrawImage() ?

KingMaks 12.01.2010 02:32

Ответ: Вопросы очередного новичка
 
Да я уже понял.
Просто переход такой с Entity на Image путаюсь немного

RlexGm 12.01.2010 15:43

Ответ: Вопросы очередного новичка
 
Помогите! Как раставить объект в цикле, если просто использовать PositionEntity то он не будет двигаться а если использовать некоторое время то после этого времени он опять вернётся где был

Nex 12.01.2010 15:58

Ответ: Вопросы очередного новичка
 
EaNub, еще раз и по понятней...

RlexGm 12.01.2010 16:16

Ответ: Вопросы очередного новичка
 
:-D
Вобщем мне надо сделать загрузку игры
Вот типа жмёш кнопку загруз(кординаты пока свои вставил)
If LoadKnopka=1
Menusost=4
PlX#=50
PlY#=60
PlZ#=60
scen=0
LoadGame()
EndIf


вот функция лоадгейм:
Function LoadGame()
If Menusost=4
PositionEntity Player,PlX#,PlY#,PlZ#
EndIf

If MenuSost=4
If (MilliSecs()-time>6000) Then Menusost=2:time = MilliSecs()
End Function

Так вот когда Menusost становится 2,
то кординаты у игрока становятся такими, какими были до включения
загрузки.А если сделать без загрузки типа:
If LoadKnopka=1
Menusost=2
PlX#=50
PlY#=60
PlZ#=60
scen=0
PositionEntity Player,PlX#,PlY#,PlZ#
EndIf
то игрок не двигается

KingMaks 12.01.2010 17:08

Ответ: Вопросы очередного новичка
 
Цитата:

то игрок не двигается
может потому что после каждого Repeat
его заново кидает в начальную точку.
Функция вызываеться много раз

После токго как Menusost = 2 пусть игрок загрузиться с кординатами и поменяй Menusost гдето на Menusost = 1000
чтобы больше не вызывать функцию с игроком

RlexGm 12.01.2010 19:02

Ответ: Вопросы очередного новичка
 
Цитата:

Сообщение от KingMaks (Сообщение 133192)

После токго как Menusost = 2

Ну как бы Menusost=2 это сама игра и все игровые процессы работают только если Menusost = 2

KingMaks 12.01.2010 19:12

Ответ: Вопросы очередного новичка
 
EaNub а ты зделай если Menusost = 2 то создаеца игрок и прочая байда
когда все создалось то Menusost = 1000

а вот если Menusost = 1000 то пускай работаю все процесы в игре

Reizel 12.01.2010 19:40

Ответ: Вопросы очередного новичка
 
Прикольный код новички пишут :)

IGR 12.01.2010 21:33

Ответ: Вопросы очередного новичка
 
Цитата:

EaNub а ты зделай если Menusost = 2 то создаеца игрок и прочая байда
когда все создалось то Menusost = 1000

а вот если Menusost = 1000 то пускай работаю все процесы в игре
эта называется "костыль" !! нада найти причину перемещения объектов и решить ее !!

Цитата:

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

-=SCiP=- 12.01.2010 22:51

Ответ: Вопросы очередного новичка
 
Цитата:

EaNub
если трудно найти ошибку некоторый код (Там где подозрение на ошибку) комментарь и запускай прогу, так быстрее найдешь ошибку.

Цитата:

Прикольный код новички пишут
Ага, мне приснилось как я так кодю на с++.
Я аж проснулся в холодном поту.

KingMaks 12.01.2010 23:32

Ответ: Вопросы очередного новичка
 
IGR шо с меня взять? я месяц как программировать начал

-=SCiP=- 13.01.2010 13:40

Ответ: Вопросы очередного новичка
 
KingMaks
Цитата:

шо с меня взять? я месяц как программировать начал
Для месяца изучение это нормально. :)

RlexGm 13.01.2010 14:48

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

EaNub а ты зделай если Menusost = 2 то создаеца игрок и прочая байда
когда все создалось то Menusost = 1000

а вот если Menusost = 1000 то пускай работаю все процесы в игре
А толку? игрок и прочая болда создаётся в menusost=4 и если будет цифра 2 разницы небудет
А все игровые процессы на menusost=2 и если будет =1000 то тоже разнице небудет

KingMaks 13.01.2010 14:54

Ответ: Вопросы очередного новичка
 
EaNub А зачем игрока создавать в цикле?
Создай Или перед циклом
Или , как делаю я, весь уровень в функции создаю

Я бы тебе объяснил как переменными делать но как я понял ето неправельно:-D

RlexGm 13.01.2010 15:03

Ответ: Вопросы очередного новичка
 
Цитата:

Сообщение от KingMaks (Сообщение 133346)
EaNub А зачем игрока создавать в цикле?

Например загрузить сохранённую игру

IGR 13.01.2010 15:19

Ответ: Вопросы очередного новичка
 
Цитата:

Например загрузить сохранённую игру
это все равно не в цикле, а 1 раз по нажатию на кнопку мышки или клавиатуры !!
а обработка нажатия мишки и клавы в цикле !! :)

RlexGm 13.01.2010 15:22

Ответ: Вопросы очередного новичка
 
Цитата:

Сообщение от IGR (Сообщение 133352)
это все равно не в цикле, а 1 раз по нажатию на кнопку мышки или клавиатуры !!
а обработка нажатия мишки и клавы в цикле !! :)

а как убереш кнопку он где был вернется :)

IGR 13.01.2010 15:37

Ответ: Вопросы очередного новичка
 
EaNub
значит косяк в коде !! код можеш показать ?? и указать (жирным шрифтом :) ) места где он создается и возвращяется ??

RlexGm 13.01.2010 16:13

Ответ: Вопросы очередного новичка
 
Что то я тебя плохо понял, у позиции энтити координаты ставяться переменными а переменные меняются, так как можно сделать позицию энтити не в цикле, объясни я не знаю)

KingMaks 13.01.2010 16:19

Ответ: Вопросы очередного новичка
 
Цитата:

Сообщение от EaNub (Сообщение 133368)
как можно сделать позицию энтити не в цикле, объясни я не знаю)

Вот так :PositionEntity player,0,0,0
а потом идет цикл
While not keydown(1)

Вопрос: Если скрыл модель HideEntity как вернуть назад модель, к жизни?


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

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