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

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

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

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

Ответ
 
Опции темы
Старый 27.09.2010, 01:42   #1
Kudesnic
Нуждающийся
 
Аватар для Kudesnic
 
Регистрация: 27.08.2010
Адрес: Лен. область
Сообщений: 58
Написано 21 полезных сообщений
(для 50 пользователей)
Скайбокс в космосе

Создает скайбокс космоса
Принцип действия:
Создается 3D мир по которому на определенном расстоянии расбрасываются спрайты звезд.
Камера, находящаяся в центре, "фоткает" сцену в шести направлениях и сохраняет картинки в папку sky\
По желанию в функции createworld() можно добавить еще декорации, например модели планет.
AppTitle "spacebox"

;sq - размер скайбокса
;r - радиус расброса звезд
;ns - количество звезд
;ni - Количество видов звезд
Const sq=512,name$="space"
Const r=300,ns=2000,ni=7
Const wi=sq,he=sq

Dim sp(ni,ns)
Dim s(ni)

Global cam,k,t$,im

SeedRnd MilliSecs()

Graphics3D wi,he,32,2
SetFont LoadFont("Arial",18)
SetBuffer BackBuffer()

createworld()

;MAIN_____________________________________________________
For k=1 To 6
;If KeyHit(57) Then updatecam()
;WaitKey()
updatecam()
UpdateWorld
RenderWorld
;Text wi/2,he/2,t+"*",1,1
Flip
image()
Cls
Next
End
;__________________________________________________________


;FUNCTIONS

Function image()
im=CreateImage(sq,sq)
GrabImage im,0,0
SaveImage (im,"sky\"+name+t+".bmp")
End Function

Function updatecam()
Select k
Case 1
	RotateEntity cam,0,0,0
	t="fr"
Case 2
	RotateEntity cam,0,90,0
	t="lf"
Case 3
	RotateEntity cam,0,180,0
	t="bk"
Case 4
	RotateEntity cam,0,-90,0
	t="rt"
Case 5
	RotateEntity cam,90,0,0
	t="dn"
Case 6
	RotateEntity cam,-90,0,0
	t="up"
End Select
End Function

Function createworld()
cam=CreateCamera()
CameraRange cam,40,500

For i=1 To ni
;Загрузка спрайтов звезд
;ni-количество спрайтов
	s(i)=LoadSprite("stars\"+i+".png",1)
;способ загрузки спрайтов (в данном примере загружаются несколько
; файлов с именами "1.png","2.png","2.png"... из папки "stars\"
	ScaleSprite s(i),1,1
	For u=1 To ns
		sp(i,u)=CopyEntity(s(i))
		PositionEntity sp(i,u),Rand(-r,r),Rand(-r,r),Rand(-r,r)
	Next
Next
End Function
(Offline)
 
Ответить с цитированием
Эти 3 пользователя(ей) сказали Спасибо Kudesnic за это полезное сообщение:
Andvrok (21.01.2013), kdm (27.09.2010), Petrofan (11.01.2015)
Ответ


Опции темы

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

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


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


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