]> git.jsancho.org Git - guile-irrlicht.git/blobdiff - examples/01.HelloWorld.scm
Some fixes (beware with pointers casting)
[guile-irrlicht.git] / examples / 01.HelloWorld.scm
index 8ad550d4d2cf74659b3069d10922056cb2f7a246..b480c8934ccbac60ffc0361d3b2253e08649a58d 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)
+  (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))
-  (gui-draw-all gui-env)
+(while (run device)
+  (begin-scene driver #:color '(255 100 101 140))
+  (draw-all scene-manager)
+  (draw-all gui-env)
   (end-scene driver))
 
 ;; delete device
-(device-drop! device)
+(drop! device)
 (exit #t)