1 ;;; Copyright 2009 Christoph Senjak
3 ;; various draw-methods
5 (in-package :uxul-world)
7 (defun draw-background (x-trans y-trans)
8 ;; (let ((ani3 (car (images (make-animation 0 |background_test_layer_3|))))
9 ;; (ani2 (car (images (make-animation 0 |background_test_layer_2|)))))
11 ;; (loop for i from -1 to 16
12 ;; do (loop for j from -1 to 12
14 ;; (sdl:draw-surface-at-* ani2
16 ;; (mod (/ x-trans 4) 64)))
18 ;; (mod (/ y-trans 4) 64)))))))
19 ;; (loop for i from -1 to 16
20 ;; do (loop for j from -1 to 12
22 ;; (sdl:draw-surface-at-* ani3
24 ;; (mod (/ x-trans 2) 64)))
26 ;; (mod (/ y-trans 2) 64)))))))
29 (defmethod draw ((obj room))
30 (let ((*current-translation-x*
32 ((< (- (x (graphic-centralizer obj)) 400) 0) 0)
33 ((> (+ (x (graphic-centralizer obj)) 400) (width obj))
36 (- 400 (x (graphic-centralizer obj)))))|#
37 (- (ash 400 (- *zoom-ash*)) (x (graphic-centralizer obj)))
39 (*current-translation-y*
41 ((< (- (y (graphic-centralizer obj)) 300) 0) 0)
42 ((> (+ (y (graphic-centralizer obj)) 300) (height obj))
45 (- 300 (y (graphic-centralizer obj)))))|#
46 (- (ash 300 (- *zoom-ash*)) (y (graphic-centralizer obj)))
48 (draw-background *current-translation-x* *current-translation-y*)
49 (dolist (image (get-objects obj 'uxul-world::game-object))
50 (if (and (redraw image)
52 (rectangle-in-screen image)) (draw image)))))
57 (defvar *player-bar-color* -255)
59 (defmethod draw ((obj player))
60 #+nil(if (rectangle-in-screen obj)
61 (old-draw-rectangle obj :r 255 :g 255 :b 255))
63 ;;; FIXME ************
65 10 10 (floor (* (power obj) (/ (- +screen-width+ 20) 10))) 10
66 :color (sdl:color :r (abs *player-bar-color*) :g (abs *player-bar-color*) :b (abs *player-bar-color*)))
67 (incf *player-bar-color* 5)
68 (if (= *player-bar-color* 255) (setf *player-bar-color* -255))
72 (defmethod draw ((obj stone))
74 #+nil(if (rectangle-in-screen obj)
75 (old-draw-rectangle obj :r 255 :g 255 :b 255)))
77 (defmethod draw ((obj simple-enemy))
79 #+nil(if (rectangle-in-screen obj)
80 (old-draw-rectangle obj :r 255 :g 255 :b 255)))