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

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

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

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

Ответ
 
Опции темы
Старый 16.04.2007, 15:50   #1
nJunk
AnyKey`щик
 
Регистрация: 09.10.2006
Сообщений: 19
Написано 0 полезных сообщений
(для 0 пользователей)
Считывание из файла

идея такая: создается файл, а в нем прописывается поле 17х17 (тоесть 17 сиволов в 17 строках), состоящее из символов. (типа:
0010000001001
1001101100110 и т.д.)
Затем функция должна открыть этот файл, и на основании увиденного воспроизвести тоже самое, только в 3-Д (символу в файле задается аналог 3-д тела).
Сделал с помощью побайтной считки:

; Открыли файлик
filein = ReadFile("level.dat")
;---Считываем символы первой строки
baza_simple_X=-18 ;это для сдвига первого кубика влево от 0,0,0 на 18

;собственно цикл: считал байт, если "1" -> создал кубик и т.д. (49-это код единички)
For i=1 To 17
Symbol$=Symbol$+1
Symbol$=ReadByte( filein )
baza_simple_X=baza_simple_X+2
If Symbol$=49 Then
baza_simple = CreateCube()
PositionEntity baza_simple,baza_simple_X,0,0
End If
Next
;---Закрываем файл
CloseFile( filein )

И вот появляются вопросы:
1. Как перевести "считку" на следующую строку?
2. Если нельзя перевести "каретку" на следующйю строку, то можно сначала считать строку$, но как тогда считать символ из строки в формате string$ ??? Команда ReadByte не хочет из "строки" читать. (надеюсь понятно объяснил?)

3. Не очень в тему, но очень для меня актуален (а то всю работу тормозит)))
Как спрятать тело в newton? Аналог HideEntity? А то прям незнаю что с этими телами делать, пока приходится делать ентити на размер больше тела((((
(Offline)
 
Ответить с цитированием
Старый 16.04.2007, 15:57   #2
johnk
Легенда
 
Регистрация: 01.10.2006
Сообщений: 3,705
Написано 296 полезных сообщений
(для 568 пользователей)
Re: Считывание из файла

А могу ошибаться, но пример реализации загрузки, а в последствии и замены на объект,
Скрытый текст (вы должны войти под своим логином или зарегистрироваться и иметь 20 сообщение(ий)):
У вас нет прав, чтобы видеть скрытый текст, содержащийся здесь.
(Offline)
 
Ответить с цитированием
Старый 16.04.2007, 16:00   #3
nJunk
AnyKey`щик
 
Регистрация: 09.10.2006
Сообщений: 19
Написано 0 полезных сообщений
(для 0 пользователей)
Re: Считывание из файла

Ой спасибо, конечно, за ссылку. Но у меня проблема - 14 мегов это оооочень много, время сейчас такое
Мнеб просто команду какую, врдруг я че упустил (хотя хелп до дыр затер)
(Offline)
 
Ответить с цитированием
Старый 16.04.2007, 16:05   #4
johnk
Легенда
 
Регистрация: 01.10.2006
Сообщений: 3,705
Написано 296 полезных сообщений
(для 568 пользователей)
Re: Считывание из файла

Стукни в асю
(Offline)
 
Ответить с цитированием
Старый 16.04.2007, 18:13   #5
ZanoZa
Элита
 
Регистрация: 02.10.2005
Сообщений: 1,789
Написано 132 полезных сообщений
(для 252 пользователей)
Re: Считывание из файла

мог ошибиться
filein = ReadFile("level.dat") 
;---Считываем символы первой строки
baza_simple_X=-18 ;это для сдвига первого кубика влево от 0,0,0 на 18

;собственно цикл: считал байт, если "1" -> создал кубик и т.д. (49-это код единички)
For y=1 To 17
	Symbol$=ReadLine( filein )
	For x=1 To 17
		;Symbol$=Symbol$+1
		w$=Mid$(Symbol$,x,1)
		baza_simple_X=baza_simple_X+2
		baza_simple_Y=y;тут ещё можешь домножить на коефицент какой-нужно
	If w$=1 Then
		baza_simple = CreateCube()
		PositionEntity baza_simple,baza_simple_X,baza_simple_Y,0
	End If
Next
;---Закрываем файл
CloseFile( filein )
(Offline)
 
Ответить с цитированием
Старый 16.04.2007, 19:11   #6
alcoSHoLiK
Дэвелопер
 
Регистрация: 17.01.2006
Сообщений: 1,512
Написано 78 полезных сообщений
(для 110 пользователей)
Re: Считывание из файла

Ну изврат)
Используй двоичную запись в файл. http://www.boolean.name/showthread.php?t=3 - пример в 4-м посте должен помочь.
(Offline)
 
Ответить с цитированием
Старый 16.04.2007, 20:19   #7
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Re: Считывание из файла

зачем?
можно считываь и побайтно,
10 - конец строки
13 - перевод коретки
asc("0") - 0
asc("1") - 1
т.е. как встречаеш байт 10, его и следующий игнорируеш, т.е. считываеш впустую.
(Offline)
 
Ответить с цитированием
Старый 16.04.2007, 21:48   #8
alcoSHoLiK
Дэвелопер
 
Регистрация: 17.01.2006
Сообщений: 1,512
Написано 78 полезных сообщений
(для 110 пользователей)
Re: Считывание из файла

HolyDel
Нафига?
(Offline)
 
Ответить с цитированием
Старый 17.04.2007, 01:29   #9
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Re: Считывание из файла

ну если очень хочецца ReadByte.
(Offline)
 
Ответить с цитированием
Старый 17.04.2007, 10:32   #10
nJunk
AnyKey`щик
 
Регистрация: 09.10.2006
Сообщений: 19
Написано 0 полезных сообщений
(для 0 пользователей)
Re: Считывание из файла

Всем спасибо, буду работать с предложенными вариантами.

to holydel
а есть возможность (разговор про "побайтно"), принудительно после 17 байта перевести каретку на след. строку? Если да, то как это выглядит?
Непонял я.
(Offline)
 
Ответить с цитированием
Старый 18.04.2007, 02:32   #11
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Re: Считывание из файла

низя переводить коретку при побайтном чтении. ето даже как-то не звучит.
у тебя я так понимаю карта 17*Х ?
тогда так можно.
e=readfile("imaginity.dat")
while not eof(e) ; пока не конец файла
for i=1 to 17 ;считываем 17 байт
b=readbyte(e) 
;делаем с Б чо хотим.
next
;тут возможны два случая (1 - в файле ровно по 17 символов в строке)
readbyte(e):readbyte(e) ; читаем два байта в холостую (если не покатит сделай так, чтобы эти функции возвращенное значение присваивали какой-нибудь переменной)
;2 - в файле дофига символов в строке (но больше 17), однако считывая первые 17 символов мы "переводим каретку"
Retturn(e) ;переводим каретку (листинг функции дальше)
end while
и процедрка "перевода картеки"
function Retturn(e)
if eof(e) ; если файл закнончился то и переводить некуда
retrun 0 
else
ch=0
while (eof(e)=0) and (ch<>13) ; пока не конец файла и не встречен символ перевода каретки
ch=readbyte(e) ; читаем символ
end while
endif
end function
ПС. ето все писалось в браузере, поетому не знаю будет ли все ето работать, по идее должно.
(Offline)
 
Ответить с цитированием
Старый 19.04.2007, 15:37   #12
ViNT
Модератор
 
Регистрация: 03.04.2007
Сообщений: 2,252
Написано 597 полезных сообщений
(для 817 пользователей)
Re: Считывание из файла

function Retturn(e)
if eof(e) ; если файл закнончился то и переводить некуда
retrun 0
else
ch=0
while (eof(e)=0) and (ch<>13) ; пока не конец файла и не встречен символ перевода каретки
ch=readbyte(e) ; читаем символ
end while
endif
end function
Ето на каком языке, бесик чтоли?
(Offline)
 
Ответить с цитированием
Старый 19.04.2007, 15:44   #13
johnk
Легенда
 
Регистрация: 01.10.2006
Сообщений: 3,705
Написано 296 полезных сообщений
(для 568 пользователей)
Re: Считывание из файла

Более того, Блиц Бейсик.
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Расширение файла impersonalis Полезные функции 19 28.02.2015 15:21
Скачка файла impersonalis Полезные функции 10 26.09.2010 21:15
ХЭЛП! Считывание размеров JPG L.D.M.T. Blitz3D 2 30.07.2009 00:09
Структура Dll файла AndruXa Болтовня 3 09.12.2007 17:06
Тайл из файла Horror 3D-программирование 10 05.05.2007 01:10


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


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