From 903054e3f91457d57c87ffcc196b2d8615ff62bb Mon Sep 17 00:00:00 2001 From: David Thompson Date: Mon, 9 Nov 2015 20:06:09 -0500 Subject: examples: Add shape example. * examples/shapes.scm: New file. * examples/images/country-sky.png: New file. * examples/images/country-trees.png: New file. * examples/Makefile.am (nobase_dist_examples_DATA): Add them. * examples/images/AUTHORS: Credit ansimuz. --- examples/shapes.scm | 79 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 examples/shapes.scm (limited to 'examples/shapes.scm') diff --git a/examples/shapes.scm b/examples/shapes.scm new file mode 100644 index 0000000..abaf371 --- /dev/null +++ b/examples/shapes.scm @@ -0,0 +1,79 @@ +;;; Sly +;;; Copyright (C) 2015 David Thompson +;;; +;;; This program is free software: you can redistribute it and/or +;;; modify it under the terms of the GNU General Public License as +;;; published by the Free Software Foundation, either version 3 of the +;;; License, or (at your option) any later version. +;;; +;;; This program is distributed in the hope that it will be useful, +;;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +;;; General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with this program. If not, see +;;; . + +(use-modules (sly game) + (sly window) + (sly utils) + (sly signal) + (sly math rect) + (sly math vector) + (sly render) + (sly render camera) + (sly render color) + (sly render shader) + (sly render shape) + (sly render sprite) + (sly render texture)) + +(load "common.scm") + +(define crate-texture + (load-texture "images/crate.png")) + +(define sky-background + (load-sprite "images/country-sky.png")) + +(define forest-background + (load-sprite "images/country-trees.png")) + +(define background + (scale 1/10 + (move (vector3 0 0 -10) + (render-begin + (render-sprite sky-background) + (render-sprite forest-background))))) + +(define unit-cube + (make-cube 1 #:texture crate-texture)) + +(define cubes + (move (vector3 0 0 -3) + (render-begin + (move (vector3 2 0 0) unit-cube) + unit-cube + (move (vector3 -2 0 0) unit-cube)))) + +(define camera + (3d-camera #:area (make-rect 0 0 640 480))) + +(define-signal scene + (signal-let ((rotation (signal-map (lambda (x) (/ x 48)) + (signal-timer)))) + (with-camera camera + (render-begin + background + ;; Spinnin' cubes! + (with-depth-test #t + (rotate-x (* rotation 2) + (rotate-y rotation cubes))))))) + +(with-window (make-window #:title "Shapes!") + (run-game-loop scene)) + +;;; Local Variables: +;;; compile-command: "../pre-inst-env guile shapes.scm" +;;; End: -- cgit v1.2.3