[plt-scheme] Graphycs with Scheme
I don't completely understand your request. But here are two
answers:
1. Make sure to separate the state of the world (where is Mario) from
the rendering of the world on a canvas or whatever.
2. Here is how a freshman at NEU would do it after about five weeks:
(require 2htdp/universe) ;; actually set the teachpack in drscheme
instead
;; Nat -> Scene
;; place the appropriate ufo into an empty scene at height h
;; tests: omitted
(define (render h)
(place-image (cond
[(<= 0 h THIRD) ufo1]
[(<= THIRD h 2THIRD) ufo2]
[(<= 2THIRD h FULL) ufo3])
50 h mt))
;; physical constants
(define FULL 300)
(define THIRD (* 1/3 FULL))
(define 2THIRD (* 2/3 FULL))
;; visual constants
(define mt (nw:rectangle 100 FULL 'solid 'white))
(define ufo1 (overlay (rectangle 40 4 'solid 'green) (circle 10
'solid 'green)))
(define ufo2 (overlay (rectangle 40 4 'solid 'green) (circle 10
'solid 'red)))
(define ufo3 (overlay (rectangle 40 4 'solid 'red) (circle 10 'solid
'red)))
;; run program run (tell the computer to make the clock tick (with
height = # clock ticks)
;; and to use render as the function that turns the state (clock
ticks) into a scene
(run-simulation render)
On Mar 14, 2009, at 12:43 PM, CHAMLY wrote:
>
> Hi all.
>
> I'm programming a game with some friends for a project we have to do
> on Scheme.
> So all our work is on a canvas... With a map that moves , and the
> object that stays put. (Like mario).
>
> Right now i am working on my object, that should move with the mouse
> click,( You click the object goes up, otherwise it falls down) . That
> is not supposed to be to hard to do.
>
> But the object in question, has to change shape when going up, and
> when going down. (Same example with mario, when he jumps, he puts his
> hand up).
>
> What's the best way to do it. I had an idea but didn't know if it was
> possible. It was, to Put Two pictures on the same location moving both
> of them at the same time, and when you click, the old picture becomes
> invisible (Is that possible) and the new one Visible, And visa versa
> when you unclick. If the visible/invisible command exists, if someone
> could please tell me how to use it :D or where i could read about it,
> I'd appreciate it. If it doesn't If anyone has a better Idea, I'm open
> to all suggestions.
>
> Thank you
>
> Marc
> _________________________________________________
> For list-related administrative tasks:
> http://list.cs.brown.edu/mailman/listinfo/plt-scheme