Changeset 20943 for lang/haskell/nario/AppUtil.hs
- Timestamp:
- 10/08/08 07:34:08 (3 months ago)
- Files:
-
- 1 modified
-
lang/haskell/nario/AppUtil.hs (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
lang/haskell/nario/AppUtil.hs
r20925 r20943 1 module AppUtil where 1 module AppUtil ( 2 KeyState(..), 3 isPressing, 4 KeyProc, 5 keyProc, 6 7 PadBtn(..), 8 padPressing, 9 padPressed, 10 11 ImageResource, 12 loadImageResource, 13 releaseImageResource, 14 getImageSurface, 15 putimg, 16 17 cellCrd, 18 Rect(..), 19 ishit 20 ) where 2 21 3 22 import Multimedia.SDL (Surface, SDLKey(..), loadBMP, freeSurface, surfacePixelFormat, displayFormat, pfPalette, setColorKey, SurfaceFlag(..), blitSurface, pt) … … 9 28 -- キーボード処理 10 29 11 data PadBtn =12 PadU | PadD | PadL | PadR | PadA | PadB13 deriving (Eq, Show, Enum)14 15 30 data KeyState = 16 31 Pushed | Pushing | Released | Releasing 17 deriving (Eq , Show)32 deriving (Eq) 18 33 19 isPress edPushed = True20 isPress edPushing = True21 isPress ed_ = False34 isPressing Pushed = True 35 isPressing Pushing = True 36 isPressing _ = False 22 37 23 type KeyProc = PadBtn-> KeyState38 type KeyProc = SDLKey -> KeyState 24 39 25 keyProc bef cur gk 40 keyProc :: [SDLKey] -> [SDLKey] -> KeyProc 41 keyProc bef cur k 26 42 | not bp && not cp = Releasing 27 43 | not bp && cp = Pushed … … 29 45 | bp && cp = Pushing 30 46 where 31 bp = any (flip elem bef) phykeys 32 cp = any (flip elem cur) phykeys 33 phykeys = mapPhyKey gk 47 bp = k `elem` bef 48 cp = k `elem` cur 34 49 35 mapPhyKey PadU = [SDLK_UP, SDLK_i] 36 mapPhyKey PadD = [SDLK_DOWN, SDLK_k] 37 mapPhyKey PadL = [SDLK_LEFT, SDLK_j] 38 mapPhyKey PadR = [SDLK_RIGHT, SDLK_l] 39 mapPhyKey PadA = [SDLK_SPACE, SDLK_z] 40 mapPhyKey PadB = [SDLK_LSHIFT, SDLK_RSHIFT] 50 51 -- パッド 52 53 data PadBtn = 54 PadU | PadD | PadL | PadR | PadA | PadB 55 deriving (Eq) 56 57 padPressing kp btn = any (isPressing . kp) $ mapSDLKey btn 58 padPressed kp btn = any ((== Pushed) . kp) $ mapSDLKey btn 59 60 mapSDLKey PadU = [SDLK_UP, SDLK_i] 61 mapSDLKey PadD = [SDLK_DOWN, SDLK_k] 62 mapSDLKey PadL = [SDLK_LEFT, SDLK_j] 63 mapSDLKey PadR = [SDLK_RIGHT, SDLK_l] 64 mapSDLKey PadA = [SDLK_SPACE, SDLK_z] 65 mapSDLKey PadB = [SDLK_LSHIFT, SDLK_RSHIFT] 41 66 42 67
![(please configure the [header_logo] section in trac.ini)](/share/chrome/site/your_project_logo.png)