]> gitweb.factorcode.org Git - factor.git/commitdiff
jamshred: attempts at deployment, bangs on hitting the wall
authorAlex Chapman <chapman.alex@gmail.com>
Thu, 8 May 2008 07:41:49 +0000 (17:41 +1000)
committerAlex Chapman <chapman.alex@gmail.com>
Thu, 8 May 2008 07:41:49 +0000 (17:41 +1000)
extra/jamshred/deploy.factor [new file with mode: 0644]
extra/jamshred/game/game.factor
extra/jamshred/jamshred.factor
extra/jamshred/player/player.factor
extra/jamshred/sound/bang.wav [new file with mode: 0644]
extra/jamshred/sound/sound.factor [new file with mode: 0644]

diff --git a/extra/jamshred/deploy.factor b/extra/jamshred/deploy.factor
new file mode 100644 (file)
index 0000000..9a18cf1
--- /dev/null
@@ -0,0 +1,12 @@
+USING: tools.deploy.config ;
+V{
+    { deploy-ui? t }
+    { deploy-io 1 }
+    { deploy-reflection 1 }
+    { deploy-compiler? t }
+    { deploy-math? t }
+    { deploy-word-props? f }
+    { deploy-c-types? f }
+    { "stop-after-last-window?" t }
+    { deploy-name "Jamshred" }
+}
index e187d26a177678619e548513dab6f7d814dc047c..dcb82d1de0a71848572242cfc2485387264856bb 100644 (file)
@@ -1,13 +1,13 @@
 ! Copyright (C) 2007 Alex Chapman
 ! See http://factorcode.org/license.txt for BSD license.
-USING: accessors kernel opengl arrays sequences jamshred.log jamshred.player jamshred.tunnel math.vectors ;
+USING: accessors kernel opengl arrays sequences jamshred.log jamshred.player jamshred.sound jamshred.tunnel math.vectors ;
 IN: jamshred.game
 
-TUPLE: jamshred tunnel players running quit ;
+TUPLE: jamshred sounds tunnel players running quit ;
 
 : <jamshred> ( -- jamshred )
-    <random-tunnel> "Player 1" <player> 2dup swap play-in-tunnel 1array f f
-    jamshred boa ;
+    <sounds> <random-tunnel> "Player 1" pick <player>
+    2dup swap play-in-tunnel 1array f f jamshred boa ;
 
 : jamshred-player ( jamshred -- player )
     ! TODO: support more than one player
index 44dcdc86591da6d82903c3ea2cdea421cc627c8e..6b305696e5c33d99ecadce3abd24d1df0a19206b 100755 (executable)
@@ -1,6 +1,6 @@
 ! Copyright (C) 2007, 2008 Alex Chapman
 ! See http://factorcode.org/license.txt for BSD license.
-USING: accessors alarms arrays calendar jamshred.game jamshred.gl jamshred.player jamshred.log kernel math math.constants namespaces sequences threads ui ui.gadgets ui.gestures ui.render math.vectors ;
+USING: accessors alarms arrays calendar jamshred.game jamshred.gl jamshred.player jamshred.log kernel math math.constants namespaces sequences threads ui ui.backend ui.gadgets ui.gadgets.worlds ui.gestures ui.render math.vectors ;
 IN: jamshred
 
 TUPLE: jamshred-gadget jamshred last-hand-loc alarm ;
@@ -26,10 +26,20 @@ M: jamshred-gadget draw-gadget* ( gadget -- )
         10 sleep jamshred-loop
     ] if ;
 
+: fullscreen ( gadget -- )
+    find-world t swap set-fullscreen* ;
+
+: no-fullscreen ( gadget -- )
+    find-world f swap set-fullscreen* ;
+
+: toggle-fullscreen ( world -- )
+    [ fullscreen? not ] keep set-fullscreen* ;
+
 M: jamshred-gadget graft* ( gadget -- )
     [ jamshred-loop ] in-thread drop ;
+
 M: jamshred-gadget ungraft* ( gadget -- )
-    jamshred>> t >>quit drop ;
+    jamshred>> t swap (>>quit) ;
 
 : jamshred-restart ( jamshred-gadget -- )
     <jamshred> >>jamshred drop ;
@@ -61,9 +71,14 @@ M: jamshred-gadget ungraft* ( gadget -- )
     jamshred>> jamshred-player scroll-direction get
     second neg swap change-player-speed ;
 
+: quit ( gadget -- )
+    [ no-fullscreen ] [ close-window ] bi ;
+
 jamshred-gadget H{
     { T{ key-down f f "r" } [ jamshred-restart ] }
     { T{ key-down f f " " } [ jamshred>> toggle-running ] }
+    { T{ key-down f f "f" } [ find-world toggle-fullscreen ] }
+    { T{ key-down f f "q" } [ quit ] }
     { T{ motion } [ handle-mouse-motion ] }
     { T{ mouse-scroll } [ handle-mouse-scroll ] }
 } set-gestures
index 1ff73d51e474433206e2d6f1a02fb2448772c455..bea4ab4836483c096e7510e310f87cda99727814 100644 (file)
@@ -1,16 +1,16 @@
 ! Copyright (C) 2007 Alex Chapman
 ! See http://factorcode.org/license.txt for BSD license.
-USING: accessors colors jamshred.log jamshred.oint jamshred.tunnel kernel math math.constants math.order math.ranges sequences system ;
+USING: accessors colors jamshred.log jamshred.oint jamshred.sound jamshred.tunnel kernel math math.constants math.order math.ranges shuffle sequences system ;
 IN: jamshred.player
 
-TUPLE: player < oint name tunnel nearest-segment last-move speed ;
+TUPLE: player < oint name sounds tunnel nearest-segment last-move speed ;
 
 ! speeds are in GL units / second
 : default-speed ( -- speed ) 1.0 ;
-: max-speed ( -- speed ) 10.0 ;
+: max-speed ( -- speed ) 30.0 ;
 
-: <player> ( name -- player )
-    [ F{ 0 0 5 } F{ 0 0 -1 } F{ 0 1 0 } F{ -1 0 0 } ] dip
+: <player> ( name sounds -- player )
+    [ F{ 0 0 5 } F{ 0 0 -1 } F{ 0 1 0 } F{ -1 0 0 } ] 2dip
     f f f default-speed player boa ;
 
 : turn-player ( player x-radians y-radians -- )
@@ -43,7 +43,8 @@ DEFER: (move-player)
 
 : ?bounce ( distance-remaining player -- )
     over 0 > [
-        [ dup nearest-segment>> bounce ] [ (move-player) ] bi
+        [ dup nearest-segment>> bounce ] [ sounds>> bang ]
+        [ (move-player) ] tri
     ] [
         2drop
     ] if ;
diff --git a/extra/jamshred/sound/bang.wav b/extra/jamshred/sound/bang.wav
new file mode 100644 (file)
index 0000000..b15af14
Binary files /dev/null and b/extra/jamshred/sound/bang.wav differ
diff --git a/extra/jamshred/sound/sound.factor b/extra/jamshred/sound/sound.factor
new file mode 100644 (file)
index 0000000..fd1b112
--- /dev/null
@@ -0,0 +1,13 @@
+USING: accessors io.files kernel openal sequences ;
+IN: jamshred.sound
+
+TUPLE: sounds bang ;
+
+: assign-sound ( source wav-path -- )
+    resource-path create-buffer-from-wav AL_BUFFER swap set-source-param ;
+
+: <sounds> ( -- sounds )
+    init-openal 1 gen-sources first sounds boa
+    dup bang>> "extra/jamshred/sound/bang.wav" assign-sound ;
+
+: bang ( sounds -- ) bang>> source-play check-error ;