QuickHit小型游戏开发笔记 No.1 首先编写类,游戏类,玩家类,级别类 玩家类的属性:levelNo玩家编号类,currScore玩家当前积分,stratTime当前级别开始时间,elapsedTime 当前级别已用时间 级别类的属性:levelNo各级别编号,strLengh一次输入的字符串长度,strTime各级别输出字符串的次数,timeLimit各级闯关的时间限制 perScore各级别输入一次正确的得分! 游戏类:player玩家属性(玩家来玩游戏) 因为级别类不包括各个级别的具体参数信息,所以增加一个levelParam类,创建一个长度为6的数组,存放各个级别的参数信息 ===========================以上信息由课本提供================================================ 类中的属性有了,下面我们来看一下类中的方法。 --首先game类(先有游戏才能玩): 方法有二:printStr() printResult() 1:printStr()方法:生成随机的字符串,使用switch选择结构以生成的随机数进行判断生成的字符串。字符串的长度不得大于各级别输出字符串的长度。 int strLength=LevelParam.levels[player.getLevelNo()-1].getStrLength();由于数组下标是从0开始的,获取该级别输入 的字符串的长度定位到数组中的一项要使用(级别号-1 )定位数组下标。创建一个0到5的随机数,创建StringBuffer对象来拼接字符串。该方法返回 一个拼接好了的字符串。 2:long time=System.currentTimeMillis();获取系统当前时间的毫秒数(严谨到毫秒) (time-player.getStartTime())/1000>LevelParam.levels[player.getLevelNo()-1].getTimeLimit()如果游戏所用时间大于 游戏规定的时间,判断出局! player.setCurScore(player.getCurScore()+LevelParam.levels[player.getLevelNo()-1].getPerScore());加上当前获得的分数 player.setElapsedTime((int)(time-player.getStartTime())/1000);计算玩游戏所需的时间 输出当前这一关的信息,当进行到第六个级别(最高级别)时,将级别清空,还原为1. --Player类:创建游戏类(game对象),记录循环的次数,将级别初始为1. game.getPlayer().setStartTime(System.currentTimeMillis())记录下游戏开始时间! 循环条件,小于输入次数,接收随机生成的字符串,如果用户输入的字符串与该字符串相等,继续游戏,否则,gameOver! --Text类:直接调用player类的paly()方法!
效果完成图