singe/testScripts/scene16.singe

54 lines
1.5 KiB
Text

-- Dragon and logo together: the solid tangram dragon perched on top of the Singe logotype, the pair
-- turning as one under a sun with shadows, over the disc.
local font = fontLoad("Singe/FreeSansBold.ttf", 28)
local frames = 0
fontSelect(font)
discPlay()
sceneEnable(true)
sceneSetBackground(0, 0, 0, 0)
sceneSetAmbient(70, 70, 80)
-- Both models rest on Y = 0 and are centred on X; the logo is 5 units tall at the top of the S.
local group = nodeNew()
nodeSetPosition(group, 0, -6, 0)
nodeSetRotation(group, 0, -25, 0)
local logo = modelInstance(modelLoad("testScripts/Models/SingeText.glb"))
nodeSetParent(logo, group)
local dragon = modelInstance(modelLoad("testScripts/Models/DragonModel.glb"))
nodeSetParent(dragon, group)
nodeSetPosition(dragon, 0, 4.85, 0)
nodeSetScale(dragon, 0.9)
local stone = materialNew()
materialSetColor(stone, 120, 120, 130)
materialSetRoughness(stone, 0.9)
local floor = nodeNew()
nodeSetMesh(floor, meshBox(18, 0.2, 12), stone)
nodeSetPosition(floor, 0, -6.1, 0)
local sun = lightNew(LIGHT_DIRECTIONAL)
nodeSetPosition(sun, -5, 10, 7)
nodeLookAt(sun, 0, 0, 0)
lightSetIntensity(sun, 1.6)
lightSetShadow(sun, true)
local camera = nodeNew()
nodeSetPosition(camera, 0, 3, 15.5)
nodeLookAt(camera, 0, 0, 0)
cameraSet(camera)
function onOverlayUpdate()
frames = frames + 1
nodeRotate(group, 0, 0.4, 0)
overlayClear()
fontPrint(20, 20, "Dragon on logo, frame " .. frames)
if frames == 30 or frames == 100 or frames == 170 then
singeScreenshot()
end
if frames == 180 then
singeQuit()
end
end