Changeset 20673 for lang/haskell/nario/Main.hs
- Timestamp:
- 10/04/08 14:32:30 (3 months ago)
- Files:
-
- 1 modified
-
lang/haskell/nario/Main.hs (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
lang/haskell/nario/Main.hs
r20670 r20673 76 76 pl :: Player, 77 77 fld :: Field, 78 actors :: [ ObjWrapper],78 actors :: [ActorWrapper], 79 79 time :: Int 80 80 } … … 125 125 | otherwise = Nothing 126 126 127 128 129 -- 当たり判定 130 hitcheck :: Player -> [ActorWrapper] -> (Player, [ActorWrapper]) 131 hitcheck player actors = foldl proc (player, []) actors 132 where 133 proc (pl, ac) (ActorWrapper a) = case getHitRect a of 134 Nothing -> nothingHappened 135 Just rc -> 136 if not $ ishit plrc rc 137 then nothingHappened 138 else (pl', ac') 139 where 140 nothingHappened = (pl, ac ++ [ActorWrapper a]) 141 plrc = getPlayerHitRect player 142 pl' = pl 143 ac' = ac 144 145 127 146 -- ゲーム 128 147 doGame :: Field -> [[SDLKey]] -> [ImageResource -> Scr] … … 152 171 ev' = concatMap snd actors_updates 153 172 154 gstmp = gs { pl = pl', fld = fld', actors = actors', time = time' } 173 (pl'', actors'') = hitcheck pl' actors' 174 175 gstmp = gs { pl = pl'', fld = fld', actors = actors'', time = time' } 155 176 gs' = procEvent gstmp (plev ++ ev' ++ screv') 156 177 157 178 initialState = GameGame { pl = newPlayer, fld = fldmap, actors = [], time = 400 * one } 158 179 180 -- ゲームオーバー 159 181 doGameOver fldmap kss = doTitle fldmap kss 160 182 … … 170 192 c = fieldRef (fld gs) cx cy 171 193 items 172 | c == 'K' = [ ObjWrapper $ newKinoko cx cy]194 | c == 'K' = [ActorWrapper $ newKinoko cx cy] 173 195 | otherwise = [] 174 actors' = actors gs ++ [ ObjWrapper $ newAnimBlock cx cy $ fieldRef (fld gs) cx cy] ++ items196 actors' = actors gs ++ [ActorWrapper $ newAnimBlock cx cy $ fieldRef (fld gs) cx cy] ++ items 175 197 fld' = fieldSet (fld gs) cx cy '*' 176 198 proc gs (EvSetField cx cy c) = gs { fld = fieldSet (fld gs) cx cy c } … … 178 200 where 179 201 ene = case c of 180 'k' -> ObjWrapper $ newKuribo cx cy181 'n' -> ObjWrapper $ newNokonoko cx cy202 'k' -> ActorWrapper $ newKuribo cx cy 203 'n' -> ActorWrapper $ newNokonoko cx cy 182 204 183 205
![(please configure the [header_logo] section in trac.ini)](/share/chrome/site/your_project_logo.png)