]> git.jsancho.org Git - guile-irrlicht.git/blobdiff - examples/01.HelloWorld.scm
Bindings refactor
[guile-irrlicht.git] / examples / 01.HelloWorld.scm
index 8ad550d4d2cf74659b3069d10922056cb2f7a246..3f128cb7770d3839213a0f825148165942f81adf 100644 (file)
 (use-modules (irrlicht))
 
 ;; start up the engine
-(define device (create-device 'software '(640 480) 16 #f #f #f))
+(define device
+  (create-device
+   #:device-type 'software
+   #:window-size '(640 480)))
 (when (not device)
   (exit #f))
 
 (define gui-env (get-gui-environment device))
 
 ;; static text
-(add-static-text! gui-env
-                  "Hello World! This is the Irrlicht Software renderer!"
-                  '(10 10 260 22)
-                  #t)
+(add-static-text!
+ gui-env
+ "Hello World! This is the Irrlicht Software renderer!"
+ '(10 10 260 22)
+ #:border #t)
+
+;; load a Quake2 model
+(define mesh (get-mesh scene-manager "media/sydney.md2"))
+(when (not mesh)
+  (device-drop! device)
+  (exit #f))
+
+(define node (add-animated-mesh-scene-node scene-manager mesh))
+(when node
+  (set-material-flag! node 'lighting #f)
+  (set-md2-animation! node 'stand)
+  (set-material-texture! node 0 (get-texture driver "media/sydney.bmp")))
+
+;; place camera
+(add-camera-scene-node! scene-manager #:position '(0 30 -40) #:lookat '(0 5 0))
 
 ;; draw everything
 (while (device-run? device)
-  (begin-scene driver #t #t '(255 100 101 140))
+  (begin-scene driver #:color '(255 100 101 140))
+  (scene-draw-all scene-manager)
   (gui-draw-all gui-env)
   (end-scene driver))