jamshred: adding roll on sideways scroll
parent
46c76b8b1b
commit
b9c4e65347
|
|
@ -1,6 +1,6 @@
|
||||||
! Copyright (C) 2007 Alex Chapman
|
! Copyright (C) 2007 Alex Chapman
|
||||||
! See http://factorcode.org/license.txt for BSD license.
|
! See http://factorcode.org/license.txt for BSD license.
|
||||||
USING: accessors kernel opengl arrays sequences jamshred.log jamshred.player jamshred.sound jamshred.tunnel math.vectors ;
|
USING: accessors kernel opengl arrays sequences jamshred.log jamshred.player jamshred.sound jamshred.tunnel math math.constants math.vectors ;
|
||||||
IN: jamshred.game
|
IN: jamshred.game
|
||||||
|
|
||||||
TUPLE: jamshred sounds tunnel players running quit ;
|
TUPLE: jamshred sounds tunnel players running quit ;
|
||||||
|
|
@ -29,3 +29,10 @@ TUPLE: jamshred sounds tunnel players running quit ;
|
||||||
: mouse-moved ( x-radians y-radians jamshred -- )
|
: mouse-moved ( x-radians y-radians jamshred -- )
|
||||||
jamshred-player -rot turn-player ;
|
jamshred-player -rot turn-player ;
|
||||||
|
|
||||||
|
: mouse-units-per-full-roll ( -- n ) 50 ;
|
||||||
|
|
||||||
|
: mouse-scroll-x ( jamshred x -- )
|
||||||
|
[ jamshred-player ] dip 2 pi * * mouse-units-per-full-roll / roll-player ;
|
||||||
|
|
||||||
|
: mouse-scroll-y ( jamshred y -- )
|
||||||
|
neg swap jamshred-player change-player-speed ;
|
||||||
|
|
|
||||||
|
|
@ -68,8 +68,9 @@ M: jamshred-gadget ungraft* ( gadget -- )
|
||||||
] 2keep >>last-hand-loc drop ;
|
] 2keep >>last-hand-loc drop ;
|
||||||
|
|
||||||
: handle-mouse-scroll ( jamshred-gadget -- )
|
: handle-mouse-scroll ( jamshred-gadget -- )
|
||||||
jamshred>> jamshred-player scroll-direction get
|
jamshred>> scroll-direction get
|
||||||
second neg swap change-player-speed ;
|
[ first mouse-scroll-x ]
|
||||||
|
[ second mouse-scroll-y ] 2bi ;
|
||||||
|
|
||||||
: quit ( gadget -- )
|
: quit ( gadget -- )
|
||||||
[ no-fullscreen ] [ close-window ] bi ;
|
[ no-fullscreen ] [ close-window ] bi ;
|
||||||
|
|
|
||||||
|
|
@ -29,6 +29,9 @@ C: <oint> oint
|
||||||
: up-pivot ( oint theta -- )
|
: up-pivot ( oint theta -- )
|
||||||
over up>> rotate-oint ;
|
over up>> rotate-oint ;
|
||||||
|
|
||||||
|
: forward-pivot ( oint theta -- )
|
||||||
|
over forward>> rotate-oint ;
|
||||||
|
|
||||||
: random-float+- ( n -- m )
|
: random-float+- ( n -- m )
|
||||||
#! find a random float between -n/2 and n/2
|
#! find a random float between -n/2 and n/2
|
||||||
dup 10000 * >fixnum random 10000 / swap 2 / - ;
|
dup 10000 * >fixnum random 10000 / swap 2 / - ;
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,9 @@ TUPLE: player < oint name sounds tunnel nearest-segment last-move speed ;
|
||||||
: turn-player ( player x-radians y-radians -- )
|
: turn-player ( player x-radians y-radians -- )
|
||||||
>r over r> left-pivot up-pivot ;
|
>r over r> left-pivot up-pivot ;
|
||||||
|
|
||||||
|
: roll-player ( player z-radians -- )
|
||||||
|
forward-pivot ;
|
||||||
|
|
||||||
: to-tunnel-start ( player -- )
|
: to-tunnel-start ( player -- )
|
||||||
[ tunnel>> first dup location>> ]
|
[ tunnel>> first dup location>> ]
|
||||||
[ tuck (>>location) (>>nearest-segment) ] bi ;
|
[ tuck (>>location) (>>nearest-segment) ] bi ;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue