Changeset 20233 for lang/haskell
- Timestamp:
- 09/29/08 23:54:04 (5 years ago)
- Location:
- lang/haskell/nario
- Files:
-
- 5 modified
Legend:
- Unmodified
- Added
- Removed
-
lang/haskell/nario/Const.hs
r20223 r20233 10 10 -- 重力 11 11 gravity = one `div` 2 12 gravity2 = one `div` 4 12 13 13 14 -- 画像 14 15 data ImageType = 15 ImgNarioLStand | ImgNarioLWalk1 | ImgNarioLWalk2 | ImgNarioLWalk3 | ImgNarioLJump 16 | ImgNarioRStand | ImgNarioRWalk1 | ImgNarioRWalk2 | ImgNarioRWalk3 | ImgNarioRJump 16 ImgNarioLStand | ImgNarioLWalk1 | ImgNarioLWalk2 | ImgNarioLWalk3 | ImgNarioLJump | ImgNarioLSlip 17 | ImgNarioRStand | ImgNarioRWalk1 | ImgNarioRWalk2 | ImgNarioRWalk3 | ImgNarioRJump | ImgNarioRSlip 17 18 | ImgBlock1 | ImgBlock2 | ImgBlock3 | ImgBlock4 | ImgBlock5 18 19 | ImgMt02 | ImgMt11 | ImgMt12 | ImgMt13 | ImgMt22 … … 20 21 | ImgDk00 | ImgDk01 | ImgDk10 | ImgDk11 21 22 | ImgGrass00 | ImgGrass01 | ImgGrass02 23 | ImgPole0 | ImgPole1 22 24 | ImgFont 23 25 | ImgTitle … … 30 32 imageFn ImgNarioLWalk3 = "narioLWalk3.bmp" 31 33 imageFn ImgNarioLJump = "narioLJump.bmp" 34 imageFn ImgNarioLSlip = "narioLSlip.bmp" 32 35 imageFn ImgNarioRStand = "narioRStand.bmp" 33 36 imageFn ImgNarioRWalk1 = "narioRWalk1.bmp" … … 35 38 imageFn ImgNarioRWalk3 = "narioRWalk3.bmp" 36 39 imageFn ImgNarioRJump = "narioRJump.bmp" 40 imageFn ImgNarioRSlip = "narioRSlip.bmp" 37 41 imageFn ImgBlock1 = "block1.bmp" 38 42 imageFn ImgBlock2 = "block2.bmp" … … 58 62 imageFn ImgGrass01 = "grass01.bmp" 59 63 imageFn ImgGrass02 = "grass02.bmp" 64 imageFn ImgPole0 = "pole0.bmp" 65 imageFn ImgPole1 = "pole1.bmp" 60 66 imageFn ImgFont = "font.bmp" 61 67 imageFn ImgTitle = "title.bmp" 62 68 63 69 images = [ 64 ImgNarioLStand, ImgNarioLWalk1, ImgNarioLWalk2, ImgNarioLWalk3, ImgNarioLJump, 65 ImgNarioRStand, ImgNarioRWalk1, ImgNarioRWalk2, ImgNarioRWalk3, ImgNarioRJump, 70 ImgNarioLStand, ImgNarioLWalk1, ImgNarioLWalk2, ImgNarioLWalk3, ImgNarioLJump, ImgNarioLSlip, 71 ImgNarioRStand, ImgNarioRWalk1, ImgNarioRWalk2, ImgNarioRWalk3, ImgNarioRJump, ImgNarioRSlip, 66 72 ImgBlock1, ImgBlock2, ImgBlock3, ImgBlock4, ImgBlock5, 67 73 ImgMt02, ImgMt11, ImgMt12, ImgMt13, ImgMt22, … … 69 75 ImgDk00, ImgDk01, ImgDk10, ImgDk11, 70 76 ImgGrass00, ImgGrass01, ImgGrass02, 77 ImgPole0, ImgPole1, 71 78 ImgFont, 72 79 ImgTitle -
lang/haskell/nario/Field.hs
r20223 r20233 48 48 chr2img 'l' = ImgDk10 49 49 chr2img '|' = ImgDk11 50 51 chr2img '!' = ImgDk11 52 chr2img 'o' = ImgDk11 50 chr2img 'o' = ImgPole0 51 chr2img '!' = ImgPole1 53 52 54 53 -
lang/haskell/nario/Main.hs
r20223 r20233 23 23 24 24 -- 背景色 25 backColor = 0x 2891ff25 backColor = 0x5080FF 26 26 27 27 -- 描画コマンド -
lang/haskell/nario/Player.hs
r20223 r20233 18 18 19 19 20 maxVx = one * 3 21 maxVy = one * 8 20 walkVx = one * 3 `div` 2 21 runVx = one * 3 22 maxVy = one * 6 22 23 acc = one `div` 6 23 jumpVy = -17 * gravity 24 24 jumpVy = -13 * gravity 25 scrollMinX = 5 * chrSize 26 scrollMaxX = 8 * chrSize 25 27 26 28 data Player = Player { … … 55 57 walkPatNum = 3 56 58 patJump = patWalk + walkPatNum 59 patSlip = patJump + 1 57 60 58 61 imgTable = [ 59 [ImgNarioLStand, ImgNarioLWalk1, ImgNarioLWalk2, ImgNarioLWalk3, ImgNarioLJump ],60 [ImgNarioRStand, ImgNarioRWalk1, ImgNarioRWalk2, ImgNarioRWalk3, ImgNarioRJump ]62 [ImgNarioLStand, ImgNarioLWalk1, ImgNarioLWalk2, ImgNarioLWalk3, ImgNarioLJump, ImgNarioLSlip], 63 [ImgNarioRStand, ImgNarioRWalk1, ImgNarioRWalk2, ImgNarioRWalk3, ImgNarioRJump, ImgNarioRSlip] 61 64 ] 62 65 … … 80 83 x' = max xmin $ (x player) + vx' 81 84 scrx' 82 | vx' > 0 && (x' - (scrx player)) `div` one > 160 = (scrx player) + vx' 83 | otherwise = (scrx player) 85 | vx' > 0 && (x' - (scrx player)) `div` one > scrollPos = (scrx player) + vx' 86 | otherwise = (scrx player) 87 88 scrollPos = (max vx' 0) * (scrollMaxX - scrollMinX) `div` runVx + scrollMinX 84 89 85 90 padl = if isPressed (kp PadL) then 1 else 0 86 91 padr = if isPressed (kp PadR) then 1 else 0 87 92 maxspd 88 | not $ stand player = maxVx `div` 289 | isPressed (kp PadB) = maxVx * 290 | otherwise = maxVx93 | not $ stand player = walkVx `div` 2 94 | isPressed (kp PadB) = walkVx * 2 95 | otherwise = walkVx 91 96 xmin = (scrx player) + chrSize `div` 2 * one 92 97 … … 99 104 1 -> 1 100 105 pat' 101 | vx' == 0 = patStop 102 | otherwise = (anm' `div` anmCnt) + patWalk 106 | vx' == 0 = patStop 107 | vx' > 0 && lr' == 0 = patSlip 108 | vx' < 0 && lr' == 1 = patSlip 109 | otherwise = (anm' `div` anmCnt) + patWalk 103 110 anm' 104 111 | vx' == 0 = 0 105 112 | otherwise = ((anm player) + (abs vx')) `mod` (walkPatNum * anmCnt) 106 anmCnt = maxVx * 3113 anmCnt = walkVx * 3 107 114 108 115 … … 123 130 124 131 -- 重力による落下 125 fall :: Player -> Player126 fall player132 fall :: KeyProc -> Player -> Player 133 fall kp player 127 134 | stand player = player 128 135 | otherwise = player { y = y', vy = vy' } 129 136 where 130 vy' = min maxVy $ vy player + gravity 137 ay 138 | vy player < 0 && isPressed (kp PadA) = gravity2 139 | otherwise = gravity 140 vy' = min maxVy $ vy player + ay 131 141 y' = y player + vy' 132 142 … … 168 178 moveY $ checkX fld $ moveX kp player 169 179 where 170 moveY = doJump kp . checkFloor fld . checkCeil fld . fall 180 moveY = doJump kp . checkFloor fld . checkCeil fld . fall kp 171 181 172 182 -- スクロール位置取得 … … 178 188 blitSurface (getImageSurface imgres imgtype) Nothing sur pos 179 189 where 180 pos = pt ((x player) `div` one - chrSize `div` 2 - scrx) ((y player) `div` one - chrSize - 8)190 pos = pt ((x player) `div` one - chrSize `div` 2 - scrx) ((y player) `div` one - chrSize+1 - 8) 181 191 imgtype = imgTable !! (lr player) !! (pat player) -
lang/haskell/nario/data/stage0.map
r20223 r20233 1 1 2 o3 123 1223 123 1223 123 1223 123 1223 |1232 3 123 1223 123 1223 123 1223 123 1223 o 123 4 4 123 456 12223 4556 123 456 12223 4556 123 456 12223 4556 123 456 12223 4556 ! 456 5 5 456 45556 456 45556 456 45556 456 45556 !
![(please configure the [header_logo] section in trac.ini)](/share/chrome/site/your_project_logo.png)