You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
bridgeL ac6228fb52
complete head file
6 years ago
..
Debug complete head file 6 years ago
ProjectFinal1.vcxproj complete head file 6 years ago
ProjectFinal1.vcxproj.filters complete head file 6 years ago
ProjectFinal1.vcxproj.user new frame 6 years ago
app.cpp new frame 6 years ago
define.h complete head file 6 years ago
game.cpp complete head file 6 years ago
game.h complete head file 6 years ago
map.cpp complete head file 6 years ago
map.h new frame 6 years ago
monster.cpp complete head file 6 years ago
monster.h new frame 6 years ago
mover.cpp complete head file 6 years ago
mover.h complete head file 6 years ago
player.cpp complete head file 6 years ago
player.h complete head file 6 years ago
readme.md new frame with readme 6 years ago

readme.md

game

  • game.Load
    • game.Start
    • game.Loop
      • 初始化 wall,bean,goldBean,player,monster
      • 初始化 dir = dir_none
      • while(1)
        • key = GetKey() // 获取按键输入
        • switch(key)
          • p pause
          • q quit
          • w dir_up
          • s dir_down
          • a dir_left
          • d dir_right
          • other dir = last_dir
        • player.PlayerMove(wall,dir) // 玩家根据按键输入移动
          • player.NextMove(dir,nx,ny) //预测下一时刻玩家的坐标
          • 根据nxny判断下一时刻玩家是否撞墙
            • be careful! you must have to ensure nx or ny is at last one is an integer, if not, you can't move according to the input direction
            • ofcourse, you can be a little tolerent, as an example, when the input direction wants to change ny, but nxis not an integer, but , maybe nx is so close to an integer, you can force it converting to an integer, and then change the ny
            • if you obey these rules, you can move the player,
            • player.Move(dir) //调用函数移动玩家
              • clear its image at the old (x,y),
              • then set the new (x,y) according( nx, ny), and draw its image at the new (x,y)
        • if(player.PlayerMove is successful) //如果上一时刻玩家成功移动(没撞墙)
          • player.TryEatBean(bean) // 玩家尝试吃豆子
            • include 2 parts ,first , judge player is or not meet a bean,
            • then, eat the bean and add player's score, and return true
          • if( successful) // 玩家尝试吃豆子成功
            • bean.IsEmpty? && goldBean.IsEmpty?
              • if(true)
                • game over, player win
          • player.TryEatGoldBean(goldBean)// 玩家尝试吃金豆子
            • include 2 parts, just same as above
          • if(successful) // 玩家尝试吃金豆子成功
            • bean.IsEmpty? && goldBean.IsEmpty?
              • if(true)
                • game over, player win
            • change all of monster's status
            • change all of monster's speed
        • monster.TryEatPlayer(player) //怪物尝试吃玩家
          • include 2 part, first, judge monster is or not meet the player,
          • then judge who is win according to monster's status , and (player win)change the player's score or (monster win) game over, player lose
        • monster.MonsterMove(wall,player)
          • according to monster.status, make different choice: chase or escape or waitingBorn
            • dir = chase(wall, player)
              • according to player.GetX & .GetY & wall, choose the move dir
            • dir = escape(wall, player)
              • get contrary dir by chase(wall,player)
            • dir = waitingBorn(wall)
            • monster.Move(dir)
              • clear its image at the old xy, then set the new xy according pre_x, pre_y, and draw its image at the new xy
              • just like what player.Move(dir) has done
            • 恢复地形
    • game.End