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

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

Вернуться   www.boolean.name > Программирование игр для компьютеров > Blitz3D > Полезные функции

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

Ответ
 
Опции темы
Старый 08.01.2012, 10:00   #1
tirarex
Бывалый
 
Аватар для tirarex
 
Регистрация: 23.11.2011
Сообщений: 863
Написано 334 полезных сообщений
(для 866 пользователей)
загрузка обьектов из файла

Многие хотят сделать чтоб игра загружала несколько обьектов из файла DAt INI ил хоть какой но надо писать какую то функцию а вот какую я сейчас и покажу

начнём
создадим файл с названием map.dat
и сделаем такое содержание

1
data\test_model1.3ds
разберём
1 это количество строк каторое мы будем читать
data\test_model1.3ds это сама модель

а теперь впишем код
filemapx = ReadFile("map.dat") 
kolx = ReadLine(filemapx) 
For i=1 To kolx
tyrp1$=ReadLine(filemapx)
Createpxmap(tyrp1$)
Next
CloseFile filemapx

объясняю функцию

filemapx = ReadFile("map.dat") ;Открываем файл нашей карты
kolx = ReadLine(filemapx) ;Считываем количество строк с моделями
For i=1 To kolx начинаем цикл
tyrp1$=ReadLine(filemapx) ;считываем адрес модели из строки
Createpxmap(tyrp1$) ; запускаем функцию и задаём адрес модели
Next ; далее
CloseFile filemapx ;Закрываем файл

сама функция

Type map  ; начинаем тип
	Field mesh ; добавляем тип
End Type ; заканчиваем тип 



Function Createpxmap(tyrp1$)  ; создаём функцию
mp.map = New map ; создаём тип
mp\mesh=loadmesh(tyrp1$) ; загружаем меш в тип
End Function ; заканчиваем функцию

также код для
примера

Graphics3D 800, 600,32,2


AmbientLight 255,255,255

	SetBuffer BackBuffer()	
	

piv = CreatePivot()
Global camera = CreateCamera(piv)
pl=LoadMesh("0.3ds")

ps=LoadMesh("1.3ds")



filemapx = ReadFile("map.dat") ;Открываем файл нашей карты
kolx = ReadLine(filemapx) ;Считываем количество строк с моделями
For i=1 To kolx 
tyrp1$=ReadLine(filemapx) ;считываем адрес модели из строки
Createpxmap(tyrp1$) ; запускаем функцию и задаём адрес модели
Next ; далее
CloseFile filemapx ;Закрываем файл




PositionEntity camera,40,0,0
TurnEntity camera,0,90,0
CameraRange camera,1,9000
lh = CreateLight(1, cam)

While Not KeyDown( 1 )


PositionEntity piv ,EntityX(ps),EntityY(ps),EntityZ(ps)
   mxspd#=MouseXSpeed()*0.2
   myspd#=MouseYSpeed()*0.2

 MoveMouse GraphicsWidth()/2,GraphicsHeight()/2 

   campitch=campitch+myspd
   If campitch<-89 Then campitch=-89
   If campitch>89 Then campitch=89
   RotateEntity piv,0,EntityYaw(piv)-mxspd,campitch



UpdateWorld ()

RenderWorld

		
Flip 
Wend 

End



Type map  ; начинаем тип
	Field mesh ; добавляем тип
End Type ; заканчиваем тип 


Function Createpxmap(tyrp1$)  ; создаём функцию
mp.map = New map ; создаём тип
mp\mesh=LoadMesh(tyrp1$) ; загружаем меш в тип
End Function ; заканчиваем функцию
вот и всё думаю статья пригодится многим
также в тип можно ставить адреса текстур изображений звуков и видео
Tirarex@2012
(Offline)
 
Ответить с цитированием
Эти 3 пользователя(ей) сказали Спасибо tirarex за это полезное сообщение:
4yBa4Ok (09.01.2012), Crayzi (08.01.2012), LLI.T.A.L.K.E.R. (08.01.2012)
Старый 08.01.2012, 17:41   #2
reumep
Знающий
 
Аватар для reumep
 
Регистрация: 04.11.2011
Сообщений: 285
Написано 66 полезных сообщений
(для 159 пользователей)
Ответ: загрузка обьектов из файла

я так разумею, что это новый™ способ шифрования? или это такой своеобразный черезпопный способ хранения списка файлов?
(Offline)
 
Ответить с цитированием
Старый 08.01.2012, 20:18   #3
tirarex
Бывалый
 
Аватар для tirarex
 
Регистрация: 23.11.2011
Сообщений: 863
Написано 334 полезных сообщений
(для 866 пользователей)
Ответ: загрузка обьектов из файла

список моделей для загрузки в файле и чем он плох ????
обоснуй !
(Offline)
 
Ответить с цитированием
Старый 08.01.2012, 21:42   #4
dsd
Мастер
 
Аватар для dsd
 
Регистрация: 12.06.2011
Сообщений: 1,103
Написано 481 полезных сообщений
(для 1,835 пользователей)
Ответ: загрузка обьектов из файла

Добавлю от себя полезностей.
1. Никогда не надо сокращать название переменной. Тем более что нормальное иде поймет с 3-4 буквы нужную переменную и предложит автозавершение.
2. Не надо использовать в названиях переменной русский. В любой момент можно открыть гугл и узнать нужное слово на английском. Польза и прогеру и читателю.
(Offline)
 
Ответить с цитированием
Старый 09.01.2012, 15:57   #5
Данил
Модератор
 
Аватар для Данил
 
Регистрация: 11.07.2007
Сообщений: 2,910
Написано 686 полезных сообщений
(для 1,693 пользователей)
Ответ: загрузка обьектов из файла

Еще лучше вариант -
http://blitzetc.blitzmax.ru/index.ph...%D1%8 2%D1%8C

Наверное, даже я бы сказал, самый лучший.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
L-ee-X (06.03.2012)
Ответ


Опции темы

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

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


Часовой пояс GMT +1, время: 08:40.


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