X-Git-Url: http://uxul.de/gitweb/?a=blobdiff_plain;f=draw.lisp;h=a9988a6c5c9b7591af0b487d8927dec1e590b982;hb=refs%2Fremotes%2Forigin%2FHEAD;hp=1b058e6dba20970021dfe64d909f859825bbc468;hpb=b97da26f7129191eff0f3c90e831fd9e94e52a56;p=uxul-world.git diff --git a/draw.lisp b/draw.lisp index 1b058e6..a9988a6 100755 --- a/draw.lisp +++ b/draw.lisp @@ -1,54 +1,41 @@ -;;; Copyright 2009 Christoph Senjak +;;; Copyright 2009-2011 Christoph Senjak ;; various draw-methods (in-package :uxul-world) (defun draw-background (x-trans y-trans) - (let ((ani3 (car (images (make-animation 0 |background_test_layer_3|)))) - (ani2 (car (images (make-animation 0 |background_test_layer_2|))))) - - (loop for i from -1 to 16 - do (loop for j from -1 to 12 - do (progn - (sdl:draw-surface-at-* ani2 - (+ (* i 64) (round - (mod (/ x-trans 4) 64))) - (+ (* j 64) (round - (mod (/ y-trans 4) 64))))))) - (loop for i from -1 to 16 - do (loop for j from -1 to 12 - do - (sdl:draw-surface-at-* ani3 - (+ (* 64 i) (round - (mod (/ x-trans 2) 64))) - (+ (* 64 j) (round - (mod (/ y-trans 2) 64)))))))) + ;; (let ((ani3 (car (images (make-animation 0 |background_test_layer_3|)))) +;; (ani2 (car (images (make-animation 0 |background_test_layer_2|))))) + +;; (loop for i from -1 to 16 +;; do (loop for j from -1 to 12 +;; do (progn +;; (sdl:draw-surface-at-* ani2 +;; (+ (* i 64) (round +;; (mod (/ x-trans 4) 64))) +;; (+ (* j 64) (round +;; (mod (/ y-trans 4) 64))))))) +;; (loop for i from -1 to 16 +;; do (loop for j from -1 to 12 +;; do +;; (sdl:draw-surface-at-* ani3 +;; (+ (* 64 i) (round +;; (mod (/ x-trans 2) 64))) +;; (+ (* 64 j) (round +;; (mod (/ y-trans 2) 64))))))) + ) (defmethod draw ((obj room)) (let ((*current-translation-x* - #|(cond - ((< (- (x (graphic-centralizer obj)) 400) 0) 0) - ((> (+ (x (graphic-centralizer obj)) 400) (width obj)) - (- 800 (width obj))) - (T - (- 400 (x (graphic-centralizer obj)))))|# - (- 400 (x (graphic-centralizer obj))) - ) + (* (- +screen-width+ (x (graphic-centralizer obj))))) (*current-translation-y* - #|(cond - ((< (- (y (graphic-centralizer obj)) 300) 0) 0) - ((> (+ (y (graphic-centralizer obj)) 300) (height obj)) - (- 600 (height obj))) - (T - (- 300 (y (graphic-centralizer obj)))))|# - (- 300 (y (graphic-centralizer obj))) - )) + (* (- +screen-height+ (y (graphic-centralizer obj)))))) (draw-background *current-translation-x* *current-translation-y*) + (gl:scale *zoomx* (- *zoomy*) 1) + (gl:translate *current-translation-x* *current-translation-y* 0) (dolist (image (get-objects obj 'uxul-world::game-object)) - (if (and (redraw image) - (visible image) - (rectangle-in-screen image)) (draw image))))) + (and (redraw image) (visible image) (draw image))))) ;; FIXME @@ -60,20 +47,14 @@ (old-draw-rectangle obj :r 255 :g 255 :b 255)) ;;; FIXME ************ - (sdl:draw-box-* - 10 10 (floor (* (power obj) (/ (- +screen-width+ 20) 10))) 10 - :color (sdl:color :r (abs *player-bar-color*) :g (abs *player-bar-color*) :b (abs *player-bar-color*))) + ;; (sdl:draw-box-* + ;; 10 10 (floor (* (power obj) (/ (- +screen-width+ 20) 10))) 10 + ;; :color (sdl:color :r (abs *player-bar-color*) :g (abs *player-bar-color*) :b (abs *player-bar-color*))) (incf *player-bar-color* 5) (if (= *player-bar-color* 255) (setf *player-bar-color* -255)) (call-next-method)) -(defmethod draw ((obj stone)) - (call-next-method) - #+nil(if (rectangle-in-screen obj) - (old-draw-rectangle obj :r 255 :g 255 :b 255))) +(defmethod draw ((obj stone)) (call-next-method)) -(defmethod draw ((obj simple-enemy)) - (call-next-method) - #+nil(if (rectangle-in-screen obj) - (old-draw-rectangle obj :r 255 :g 255 :b 255))) +(defmethod draw ((obj simple-enemy)) (call-next-method))