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=8661)

DelphiFan 13.07.2009 23:23

Вопрос по реализации погоды
 
Здравствуйте!
Я новичок в Blitz,поэтому есть вопросы(может для большинства они покажутся "нубскими",но по сути в Блитсе я и есть "нуб")
Собственно вопрос...
Помоги оформить это в виде кода:
Предисловие:
Есть четыре фаила[weather_cloudy.txt,weather_rain.txt,weather_sunsha ft.txt,weather_clear.txt]

в Каждом фаиле Есть по 24 сеции
Например:
[weather_0]
skybox=bla\blabla\sky\sky7

...
[weather_12]
sky_box = gamedata\textures\skybox\sky5

...
[weather_23]
sky_box =bla\blabla\sky\sky9

Как мне сделать случайный выбор из этих четырёх фаилов
и как мне найти секцию
[weather_час(в игровом времени)]
и прочитать из неё то что находится после равно
sky_box=...

Если есть возможность,покажите как это можно реализовать на Блитц...

ЗЫ:Собственно игровое время я вычисляю/задаю/сделал так:
:Время Старта
hour%=4
minets%=15
seconds%=0
day%=0
;Основной цикл
....
If Timer=0 Then Timer=MilliSecs()
If MilliSecs()>=Timer+100 Then
Timer=MilliSecs()
seconds=seconds+1
If seconds>=60 Then
seconds=0
minets=minets+1
If minets>=60 Then
minets=0
hour=hour+1
If hour>=24 Then
hour=0
day=day+1
End If
End If
End If
End If
подскажите пожалуйста...
Заранее благодарствую..

SBJoker 13.07.2009 23:40

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

Как выбрать?
1. Очень просто сначала выбираем один из 4х файлом методом генерирования случайного числа в диапазоне 1-4.
2. Открываем соотв. файл.
3. Читаем построчно, каждую строку разбираем, определяя это имя сеции или собственно её данные.
4. Если секция запоминаем в переменной её название.
5. Если данные то разбираем их на имя параметра и его значение.
6. заносим это в массив или список.
7. Если фаайл кончился закрываем его и генерируем случайное число от 1 до числа прочитаных нами видов погоды.
8. Получаем данные выбраной погоды и делаем с ними что нам нужно.

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

Удачи в обучении!

ffinder 14.07.2009 00:00

Ответ: Вопрос по реализации погоды
 
SBJoker:
какой ты однако витиевато-вежливый;)

DelphiFan 14.07.2009 00:30

Ответ: Вопрос по реализации погоды
 
SBJoker:Спасибо ...
Только извиняюсь,я не правильно Вопрос построил....
меня интересует есть ли в Блитсе эквивалентные этим функции
Pos,ReadString,ReadInteger,Copy и т.д.
Но за Алгоритм спасибо именно так я себе и представлял...
Просто не знаю как "выглядят" в Блитсе эти функции

И собственно Random как выглядит в Блитсе?

ABTOMAT 14.07.2009 00:54

Ответ: Вопрос по реализации погоды
 
Дак так бы сразу и спрашивал ;)

Pos = FilePos
ReadString = ReadString
ReadInteger = ReadInt
Copy = Mid

На всякий пожарный почитай в справке, оно ли

ArtemkA 14.07.2009 00:56

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

На счет Random:
Rand(low_value,high_value) - Генерирует случайное целое число от low_value до high_value.
Rnd(low_value,high_value) - ТОже самое, только возвращает случайное число с плавающей точкой.

tormoz 14.07.2009 00:57

Ответ: Вопрос по реализации погоды
 
не читал Blitz-FAQ`а? - По гляделу на-ка! (c) impersonalis

ABTOMAT 14.07.2009 01:00

Ответ: Вопрос по реализации погоды
 
SeedRnd() - устанавливает ГСЧ в определённое положение в зависимости от аргумента
SeedRnd(Millisecs()) - нуу оочень рандомный рандом

DelphiFan 14.07.2009 01:02

Ответ: Вопрос по реализации погоды
 
Спасибо большое...
tormoz - только не бей :-)
Справку честно не читал - исправлюсь:-)

DelphiFan 16.07.2009 19:28

Ответ: Вопрос по реализации погоды
 
Здравствуйте....
Извините великодушно :)...
Как можно проверить колизию с мешами? - ставить на каждый меш сферу и проверять колизию с ней? ав таком случае что делать с домами? ведь в них нужно будет заходить...
Карта у меня выглядит как Террайн и расставленные на ней меши...
Собственно спасибо за любой ответ

Собственно у меня и колизию с Террайном проверять не хочет....

Юзер - прозрачная сфера

Collisions TypeUser,TypeTerra,2,3

ABTOMAT 16.07.2009 21:01

Ответ: Вопрос по реализации погоды
 
Цитата:

Как можно проверить колизию с мешами? - ставить на каждый меш сферу и проверять колизию с ней? ав таком случае что делать с домами? ведь в них нужно будет заходить...
Дак есть коллизия с мешами - читай внимательней.
Цитата:

Собственно у меня и колизию с Террайном проверять не хочет....
Через террайн может проваливаться иногда, но не так, чтобы совсем уж не проверялось. Ты где-то напутал.
З.Ы. UpdateWorld() в цикле стоит?

DelphiFan 16.07.2009 21:21

Ответ: Вопрос по реализации погоды
 
1.Спасибо...посмотрю ещё разок....
2.UpdateWorld() стоит

MadMax 18.07.2009 04:28

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

Fatalix3d 18.07.2009 11:52

Ответ: Вопрос по реализации погоды
 
Да у меня пока тоже проблем с коллизиями хватает, если модель игрока появляется в отличной от 0 по XYZ то коллизия почему то игнорируется(.

MadMax 18.07.2009 16:04

Ответ: Вопрос по реализации погоды
 
Fatalix3d
Я бы на твоем месте начал бы использовать какой-нить физический движок. Сразу бы лишился многих проблем. Сам использую Ньютон, многие советуют Физикс(кстати во многих опросах голоса за эти движки примерно равные). А Ньютон я освоил практически сходу.
Лично для меня, проблемы с коллизиями были основной проблемой, теперь основная проблема - редактор локаций.


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

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