Нуждающийся
Регистрация: 02.11.2007
Сообщений: 93
Написано 0 полезных сообщений (для 0 пользователей)
|
Re: Alpha в Блитце
;Ãëàâíîå
Graphics3D 800,600,32,0;èíèöèàëèçàöèÿ ãðàôèêè
;Graphics3D 1024,768,32,1;èíèöèàëèçàöèÿ ãðàôèêè
SetBuffer BackBuffer();óñòàíîâêà áóôåðà
;Êîíåö-Ãëàâíîå
;Ïåðåìåííûå
Global PL
Global PL_speed#
Global PL_x_pos#
Global PL_y_pos#
Global PL_z_pos#
Global CAM
Global G#=-0.98
Global MaP,SS,SP,SM1,SM1Tr,EK,EKt,EKTr,WAT
Global ambR=200,ambG=200,ambB=200
Global clsR=74,clsG=56,clsB=29
Global Tim$,Tim10
Global LighT
;Êîíñòàíòû
Const COLL_PL=1
Const COLL_MAP=2
Const UPS=75;îáíîâëåíèÿ â ñåêóíäó (äëÿ FPS)
Function InitPL(x#,y#,z#)
PL=CreateSphere (6);ñîçäàåèì ñôåðó-èãðîêà ñ 6-þ ñåãìåíòàìè, ðàçìåð 1-1-1
PositionEntity PL,x#,y#,z#;ñòàâèì íà ìåñòî
ScaleEntity PL,0.5,0.5,0.5
EntityRadius PL,1;ðàäèóñ ñòîëêíîâåíèÿ
EntityType PL,COLL_PL;òèï êîëëèçèè äëÿ èãðîêà
CAM=CreateCamera(PL);ñîçäàåì êàìåðó, äî÷åðíþþ ê èãðîêó
;CameraRange CAM,1,900
PositionEntity CAM,0,0.0,0
End Function
Function InitWorld()
MaP=LoadMesh ("Arena1.b3d")
EntityType MaP,COLL_MAP
LighT=CreateLight ()
PositionEntity LighT,-15,150,0
AmbientLight ambR,ambG,ambB;îêðóæàþùèé ñâåò
CameraClsColor CAM,clsR,clsG,clsB;öâåò ôîíà
SS=LoadMesh("SS.b3d");çàãðóçêà ñôåðû ñ íåáîì
PositionEntity SS,0,0,0;óñòàíàâëèâàåì íà íîëè
RotateEntity SS,0,0,90;ïîâîðà÷èâàåì íàáîê
SP=LoadMesh ("SP.b3d");çàãðóçêà îáëàêîâ
RotateEntity SP,180,0,0;ïîâîðîò
PositionEntity SP,0,30,0;óñòàíàâëèâàåì âûñîòó îáëàêîâ
SM1=LoadSprite ("Moln1.bmp");çàãðóçêà ìîëíèè
ScaleSprite SM1,5,5;ìàñøòàáèðóåì
PositionEntity SM1,0,-200,0;ñêðûâàåì ñ ãëàç äîëîé
EntityFX SM1,1+8
EK=LoadMesh ("EK.b3d");çàãðóçêà ýêðàíà
PositionEntity EK,0.725,9.802,32.31;ñòàâèì ýêðàí íà ìåñòî
EKt=CreateTexture (512,256,256);ñîçäàåì òåêñòóðó
WAT=LoadMesh("WT.b3d");ãðóçèì âîäó
PositionEntity WAT,0,-1,0;ñòàâèì âîäó íà ìåñòî
End Function
Function UpdatePL()
TranslateEntity PL,0,G#,0;ãðàâèòàöèÿ
u#=80;ïðåäåëüíûé óãîë
TurnEntity CAM,MouseYSpeed(),0,0
TurnEntity PL,0,-MouseXSpeed(),0
If KeyDown(17) Then MoveEntity Pl,0,0,0.2
If KeyDown(31) Then MoveEntity Pl,0,0,-0.2
If KeyDown(30) Then MoveEntity Pl,-0.2,0,0
If KeyDown(32) Then MoveEntity Pl,0.2,0,0
MoveMouse 1024/2,768/2
mx=MouseXSpeed ()*0.5
my=MouseYSpeed ()*0.5
MoveMouse GraphicsWidth()*0.5,GraphicsHeight()*0.5
If Abs(EntityPitch#(CAM))>u# RotateEntity CAM,u#*Sgn(EntityPitch#(CAM)),0,0
End Function
Function Debug()
Text 0,0,"ÊîóíòÊîëë: "+CountCollisions(PL)+"---"+TrisRendered()+"----"+Tim10
End Function
Function UpdateWRD()
TurnEntity SS,0.15,0,0;êðóòèì íåáî-ñôåðó
TurnEntity SP,0,-0.1,0;êðóòèì îáëà÷êà-ïëåéí
TurnEntity WAT,0,0.05,0;âðàùàåì âîäó
;ìîëíèÿ - âûñêàêèâàåò êàæäóþ 5-þ ñåêóíäó ïî Tim10, íà 6-é - ñêðûâàåòñÿ
If Tim10<>5 Then SM1Tr=0
If Tim10=5 And SM1Tr=0
PositionEntity SM1,Rnd(EntityX#(CAM)-1,EntityX#(CAM)+1),7,Rnd(EntityZ#(CAM)+10,EntityZ# (CAM)+25):SM1Tr=1
AmbientLight ambR+10,ambG+50,ambB+10;ìåíÿåì îñâåùåíèå
CameraClsColor CAM,clsR,clsG+55,clsB;öâåò ôîíà
End If
If Tim10=6 Then PositionEntity SM1,0,-200,0: AmbientLight ambR,ambG,ambB:CameraClsColor CAM,clsR,clsG,clsB;óáèðàåì ìîëíèþ
;ñêðèíøîò êàæäóþ 3-þ ñåêóíäó ïî Tim10
If Tim10<>3 Then EKTr=0
If Tim10=3 And EKTr=0
;EKt=CreateTexture (512,256,256);ñîçäàåì òåêñòóðó
MoveEntity cam,0,5,0;ïåðåìåùàåì êàìåðó, ÷òîáû âñå áûëî âèäíî
CameraViewport cam,0,0,512,256;óñòàíàâëèâàåì ðàçìåð êàìåðû
RenderWorld;ðåíäåðèì ìèð
CopyRect 0,0,512,256,0,0,BackBuffer(),TextureBuffer(EKt);êî ïèðóåì â òåêñó ñêðèí
EntityFX EK,1
EntityTexture EK,EKt;ëåïèì íà ýêðàí
MoveEntity cam,0,-5,0;âîçâðàùàåì êàìåðó íà ìåñòî
CameraViewport CAM,0,0,800,600;íîðìàëüíûé ðàçìåð êàìåðû
EKTr=1
EndIf
End Function
InitPL(0,30,0)
InitWorld()
;êîëëèçèè
Collisions COLL_PL,COLL_MAP,2,3
;ñ÷åò÷èê FPS
period=1000/UPS;äëÿ îãðàíè÷èòåëÿ
time=MilliSecs()-period; FPS
;Öèêë
Repeat
Repeat
elapsed=MilliSecs()-time
Until elapsed
ticks=elapsed/period
tween#=Float(elapsed Mod period)/Float(period)
For k=1 To ticks
time=time+period
If KeyHit(1) End
;ô-èè öèêëà
;âðåìÿ
If Tim$<>CurrentTime$() Then Tim$=CurrentTime$():Tim10=Tim10+1;åñëè, òî +1 ñåêóíäà
If Tim10=10 Then Tim10=0;Tim10 - îáíóëÿåòñÿ ïðè 9 ñåêóíäàõ.
UpdatePL()
UpdateWRD()
UpdateWorld
Next
RenderWorld tween
;âûâîä 2D
Debug()
Flip;îáíîâëåíèå ýêðàíà
Forever
;Êîíåö Ïðîãðàììû
End
|