Update of /project/pal/cvsroot/pal/examples In directory clnet:/tmp/cvs-serv8836/examples
Added Files: images.lisp utils.lisp Log Message: Added image-from-array and image-from-fn
--- /project/pal/cvsroot/pal/examples/images.lisp 2007/07/16 14:44:12 NONE +++ /project/pal/cvsroot/pal/examples/images.lisp 2007/07/16 14:44:12 1.1 (defpackage :image-tests (:use :cl :pal)) (in-package :image-tests)
(define-tags image-1 (image-from-fn 255 255 t (lambda (x y) (values x 0 x y))) image-2 (image-from-array nil #2A(((255 255 255 128) (0 0 0) (255 255 255)) ((255 255 255) (255 255 0) (255 255 255)) ((255 255 255) (0 0 0) (255 255 255 128)))))
(with-pal () (set-cursor (tag 'image-1)) (event-loop () (clear-screen 50 100 255) (with-transformation (:scale 100f0) (draw-image (tag 'image-2) (v 0 0)))))--- /project/pal/cvsroot/pal/examples/utils.lisp 2007/07/16 14:44:12 NONE +++ /project/pal/cvsroot/pal/examples/utils.lisp 2007/07/16 14:44:12 1.1
;; Some examples of the misc macros and utility functions in PAL
;; Get path to applications user specific data directory. Application name is taken from the :title argument ;; to OPEN/WITH-PAL so be careful to set it to something sensible. ;; If the directory doesn't exists it is created, the exact location of the files is OS dependant.
(pal:get-application-folder) (pal:get-application-file "saved_game.data")
;; DO-N is like DO-TIMES but it iterates over the cartesian product of its arguments. Handy when working with tilemaps etc.
(pal:do-n (i 3 j 3 k 3) (format t "~a ~a ~a~%" i j k))
;; RANDOMLY evaluates its body, umm, randomly.
(pal:randomly 10 (print "I'm a lucky s-expression!")) ;; has a 1/10 chance to get evaluated
;; CURRY, your average currying macro
(mapcar (pal:curry '* 2 2) '(1 2 3 4 5))
;; RELT returns a random element in a sequence
(pal:relt (mapcar (pal:curry '* 2 2) '(1 2 3 4 5)))
;; CLAMPs a value between min and max
(pal:clamp 10 (random 30) 20)
;; DATA-PATH searches for a file from the PATHS given to PAL and returns the first match
(pal:data-path "foo.png")