-
Notifications
You must be signed in to change notification settings - Fork 1
/
90-Use Scene Debug.sb
87 lines (71 loc) · 2.37 KB
/
90-Use Scene Debug.sb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
EnableExplicit
IncludeFile "babylon/babylon.sbi"
Global Assets.s = "data/textures/"
Global Scene, Camera, Light0, Light1
Global Ground, GroundTex, GroundBump, GroundMat
Global Box0, Box1, BoxTex, BoxMat
Global ShadowGenerator
Declare LoadGame()
Declare RenderGame()
UseModule BJS
InitEngine(@LoadGame())
Procedure LoadGame()
Scene = CreateScene()
If Scene
ClearScene(RGB(0,0,0))
;Camera physic (Player)
Camera = CreateCamera("camera", 0, 16, 40, #BJS_Free)
CameraBodySize(Camera, 2, 8, 2)
;Light
Light0 = CreateLight("General", 0, 200, 0, 0.7, #BJS_Point)
SetLightColor(Light0, #BJS_Diffuse, RGB(12, 12, 12))
Light1 = CreateLight("spot", 0, 15, 0, 1, #BJS_Spot)
SpotLightRange(Light1, 120, 40)
SetLightColor(Light1, #BJS_Diffuse, RGB(255, 255, 255))
;Ground
Ground = CreatePlane("ground", 200, 200)
GroundTex = LoadTexture(Assets + "floor.png")
GroundBump = LoadTexture(Assets + "floor_bump.PNG")
GroundMat = CreateMaterial("ground")
SetMaterialTexture(GroundMat, #BJS_Diffuse, GroundTex)
ScaleMaterial(GroundMat, 16, 16)
SetMaterialTexture(GroundMat, #BJS_Bump, GroundBump)
SetMeshMaterial(Ground, GroundMat)
RotateMesh(Ground, 90, 0, 0)
;Box
Box0 = CreateBox("box0", 5, 5, 5)
MoveMesh(Box0, 0, 2.5, 0)
BoxTex = LoadTexture(Assets + "crate.png")
BoxMat = CreateMaterial("crate")
SetMaterialTexture(BoxMat, #BJS_Diffuse, BoxTex)
SetMaterialColor(BoxMat, #BJS_Emissive, RGB(50, 50, 50))
SetMeshMaterial(Box0, BoxMat)
;Copy Box0 -> Box1
Box1 = CloneMesh(Box0, "box1")
MoveMesh(Box1, 1, 7.5, 0)
RotateMesh(Box1, 0, 45, 0)
;Shadows
ShadowGenerator = InitShadow(Light0)
ShadowEmitter(ShadowGenerator, Box0)
ShadowEmitter(ShadowGenerator, Box1)
RenderShadows(ShadowGenerator, Ground)
;Debug
SceneDebug()
RenderLoop(@RenderGame())
EndIf
EndProcedure
Procedure RenderGame()
RenderWorld()
EndProcedure
; IDE Options = SpiderBasic 2.20 (Windows - x86)
; CursorPosition = 31
; FirstLine = 12
; Folding = -
; WebAppName = Debug Scene
; HtmlFilename = scenedebug.html
; JavaScriptFilename = scenedebug.js
; JavaScriptPath = sb
; iOSAppOrientation = 0
; AndroidAppOrientation = 0
; EnableXP
; CompileSourceDirectory