最初程序员的思维“修炼”之三属性的思考

最近我在做一个小游戏——《益路有你》,

  游戏设定:扶老奶奶过马路
  游戏场景:就是有一条左右走向很宽的马路,上面有快速持续运动的车,起始画面就是老奶奶站在一端,需要把她护送到另一端。
  游戏方式:就是像打地鼠一样点骑车,然后汽车可以凭空消失掉,在下一个车开来之前老奶奶可以向前移动一个位置;如果撞到老奶奶,老奶奶就跳回原点
  游戏时长:一分钟,一分钟结束后屏幕上出现你在1分钟内成功解救X位老奶奶,击败X%的 好心人之类字样,最后再弹出“欢迎关注北京大学第一节“益路有你”公益文化节”字样

大家看到这个游戏的要求,那么你应该从何下手呢?看到游戏的需求,是不是会浮现出很多种老奶奶过马路的情况,你需要最后确定一种最佳的方案。

下面是我的思路,希望对大家有帮助:

  首先,我不急着打代码,而是先给游戏布局,确定位置。我觉得这是前提,如果UI界面确定之后,那么功能也就确定了。

最初程序员的思维“修炼”之三属性的思考最初程序员的思维“修炼”之三属性的思考

这是一个窗口,右边是一个Fill Form 的Panel。

  接着是代码。

  如何编写游戏代码,从何下手?我是按照玩游戏的顺序书写代码的。

  打开游戏——开始游戏——小车和老奶奶移动——点击小车,小车消失——老奶奶被车撞了,回到原点——老奶奶平安过了马路——记录已经过了马路的老奶奶——倒计时60秒——暂停和结束游戏——右边画面呈现,游戏结束。

  小车和老奶奶的移动得用到Timer控件,所以点击“开始游戏”的按钮,小车和老奶奶开始移动,如何三个小车同时移动和移动相同位置时,那么游戏就没有意思了,那么如何让小车交错开过来呢?

  1.设置小车的速度

  2.设置小车的起始位置

接下来是小车的点击事件,如何让小车消失呢?

  我使用了visible属性,让它不显示,也就消失了,并且这是我设置他的Location为起始位置,这样小车消失并且又有一辆小车开过来.

接下来是老奶奶被车撞了,回到原点,主要问题在于 老奶奶被车撞的条件是什么?

  1.老奶奶的位置的X坐标必须小于等于小车的位置的X坐标。

  2.老奶奶的位置的Y坐标必须大于等于小车的位置的Y坐标。

接下来是记录已过了马路的老奶奶,倒计时60秒,暂停和结束游戏,右边画面呈现,游戏结束,这就不说了,太简单了。

希望对大家所帮助。