弹弓与贪吃蛇游戏的实现
弹弓游戏实现
规划
弹弓游戏包含弹弓、石头、鸡和羽毛这四个元素,它们分别通过三个不同的类实现为对象,这三个类都是 Thing
类的子类。在游戏开始时, mySlingshot
、 chickenPicture
和 myRock
对象被添加到 scene
数组中,之后 feathersPicture
会替换 chickenPicture
。 draw
函数使用 show
方法显示相应的元素,每个子类都重写了该方法。
弹弓的定义比较特殊,通过五个位置来确定,即一个绝对位置和四个相对偏移位置。石头、鸡和羽毛图片的类实现相对简单。
游戏有四个阶段:
1. 开场阶段:直到玩家鼠标在石头上按下鼠标按钮(通过 myRock.isOver
方法判断)。
2. 弹弓和石头移动阶段:部分弹弓和石头处于运动状态,弹弓外观变量在 movePocket
方法中改变,石头通过 move
方法移动。
3. 石头飞行阶段:鼠标释放时触发,计算 delta
因子,石头开始飞行,直到击中鸡或地面,调用 noLoop()
停止所有交互。
4. 结束阶段:游戏结束。
弹弓游戏的函数调用关系如下表所示: