Changeset 20026 for lang/haskell

Show
Ignore:
Timestamp:
09/27/08 13:27:54 (8 weeks ago)
Author:
mokehehe
Message:

マップ情報をファイルから読み込むよう変更

Location:
lang/haskell/nario
Files:
2 added
4 modified

Legend:

Unmodified
Added
Removed
  • lang/haskell/nario/Field.hs

    r20025 r20026  
    22module Field ( 
    33        Field, 
    4         getField, 
     4        loadField, 
    55        fieldRef, 
    66        isBlock, 
     
    1919-- マップ 
    2020 
    21 fieldMap :: Field 
    22 fieldMap = [ 
    23 --       111111111111111122222222222222223333333333333333 
    24         "                                                ", 
    25         "                  123               1223        ", 
    26         "        123       456      12223    4556        ", 
    27         "        456                45556                ", 
    28         "                                                ", 
    29         "                      ?                         ", 
    30         "                                                ", 
    31         "                                                ", 
    32         "                                                ", 
    33         "   _            ?   O?O?O                     []", 
    34         "  /,`                                 []      l|", 
    35         " /,.,`           _          []        l|      l|", 
    36         "/.....`    78889/,`    789  l|        l| 7889 l|", 
    37         "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@", 
    38         "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@" 
    39         ] 
     21-- マップ読み込み 
     22loadField :: Int -> IO Field 
     23loadField stage = readFile fn >>= return . lines 
     24        where 
     25                fn = "data/stage" ++ (show stage) ++ ".map" 
    4026 
    41  
    42 getField :: Int -> Field 
    43 getField stage = fieldMap 
    4427 
    4528chr2img '@' = ImgBlock1 
     
    4932chr2img '/' = ImgMt11 
    5033chr2img ',' = ImgMt12 
    51 chr2img '`' = ImgMt13 
     34chr2img '\\' = ImgMt13 
    5235chr2img '.' = ImgMt22 
    5336chr2img '1' = ImgCloud00 
     
    7861 
    7962 
    80 renderField sur imgres scrx = sequence_ $ concatMap lineProc $ zip [0..] fieldMap 
     63renderField sur imgres scrx fld = sequence_ $ concatMap lineProc $ zip [0..] fld 
    8164        where 
    8265                lineProc (y, ln) = map (cellProc y) $ zip [0..] ln 
  • lang/haskell/nario/Main.hs

    r20025 r20026  
    3333main :: IO () 
    3434main = sdlStart [VIDEO] wndTitle wndSize $ \sur -> do 
    35         gs <- newIORef initState 
     35        gs <- newIORef =<< initState 
    3636        imgres <- loadImageResource 
    3737 
     
    7676 
    7777-- 開始状態 
    78 initState :: GameState 
    79 initState = 
    80         GameState { 
     78initState = do 
     79        fldmap <- loadField stage 
     80        return GameState { 
    8181                pl = newPlayer, 
    82                 fld = getField stage 
     82                fld = fldmap 
    8383                } 
    8484        where 
     
    9999        let scrx = getScrollPos (pl gs) 
    100100 
    101         renderField sur imgres scrx 
     101        renderField sur imgres scrx (fld gs) 
    102102        renderPlayer sur imgres scrx (pl gs) 
    103103 
  • lang/haskell/nario/README.txt

    r20025 r20026  
    88HSDL 
    99http://fxp.hp.infoseek.co.jp/haskell/HSDL/ 
    10  
    1110 
    1211 
     
    2322                �I�� 
    2423 
     24 
     25 
     26���t�@�C���\�� 
     27        data 
     28                �f�[�^ 
     29        data/img 
     30                �摜�f�[�^ 
     31 
  • lang/haskell/nario/Util.hs

    r20025 r20026  
    9898        where 
    9999                load imgtype = do 
    100                         sur <- loadBMP $ ("img/" ++) $ imageFn imgtype 
     100                        sur <- loadBMP $ ("data/img/" ++) $ imageFn imgtype 
    101101--                      colorKey <- mapRGB (surfacePixelFormat sur) $ Color r g b a 
    102102                        let colorKey = 0xff00ff