面向对象的编程思想(贪吃蛇梳理)

模拟贪吃蛇游戏,做的项目

地图:

宽,高,背景颜色,因为小蛇和食物都是相对于地图显示的, 这里小蛇和食物都是地图的子元素, 随机位置显示, 脱离文档流的, 地图也需要脱离文档流--css需要设置:宽, 高, 背景颜色, 脱标

食物---div元素

elements--->存储div的数组(将来删除的食物div时候, 先从map中删除div, 再从数组中移除div)
食物: 宽, 高, 背景颜色, 横坐标, 纵坐标
一个食物就是一个对象, 这个对象有相应的属性, 这个对象需要在地图上显示
 
最终要创建食物的对象, 先有构造函数, 并且把相应的值作为参数传入到构造函数中
食物要想显示在地图上, 食物的初始化就是一个行为
 
1.食物的构造函数--->创建食物对象
2.食物的显示的方法-->通过对象调用方法,显示食物,设置相应的样式
2.1.1 因为食物要被小蛇吃掉,吃掉后应该再次出现食物,原来的食物就删除了
2.1.2 每一次初始化食物的时候先删除原来的食物,然后重新的初始化食物
2.1.3 通过一个私有的函数(外面不能调用的函数)删除地图上的食物,同时最开始的时候食物也相应的保存到一个数组中,再从这个数组中把食物删除
 
最后的时候,把食物的构造函数给window下的属性,这样做,外部就可以直接使用这个食物的构造函数了
 

小蛇

小蛇就是一个对象
属性: 每个身体都有宽,高,方向
属性: 身体分三个部分, 每个部分都是一个对象, 每个部分都有横纵坐标, 背景颜色
小蛇要想显示在地图上,先删除之前的小蛇,然后再初始化小蛇(小蛇要移动)--方法
 
小蛇要移动---方法
思路: 把小蛇的头的坐标给小蛇第一部分的身体,第一部分的身体的坐标给下一个部分身体
小蛇的头, 需要单独的设置: 方向
 
 

最新文章

  1. 项目中CKEditor修改宽度为自适应
  2. Mifare系列6-射频卡与读写器的通信(转)
  3. 忘记Mysql登录密码
  4. django 1.7 新特性 --- data migration
  5. 《ASP.NET1200例》ListView控件之修改,删除与添加
  6. OGRE 2.1 Windows 编译
  7. maven下载的jar文件出现invalid LOC header (bad signature)
  8. 【LeetCode】14. Longest Common Prefix 最长前缀子串
  9. 【关于php】Appserv的安装注意事项
  10. Websphere内存溢出的日志
  11. Entity FramWork - 在VS里面直接创建表,并同步到数据库
  12. Leetcode题解(34)
  13. 五一之起一台服务器玩玩-centosl系统搭建lamp
  14. [转]单据套打WINFORM实现,带预览功能
  15. C#中Main函数为什么要static
  16. MAC 上的 Live Writer : ecto
  17. Oracle 错误代码小结
  18. vue view 表单验证正常逻辑
  19. Spring系列之——Spring事务以及两大核心IOC和AOP
  20. python---CRM用户关系管理

热门文章

  1. Jmeter-第三方插件安装
  2. 你不知道的JavaScript下卷
  3. Sql注入之注入点类型和是否存在注入判断
  4. [AtCoder Code Festival 2017 QualB C/At3574] 3 Steps - 二分图染色,结论
  5. C++记录(二)
  6. 从客户端中检测到有潜在危险的request.QueryString
  7. python 处理protobuf协议
  8. php设计模式之桥接模式实例代码
  9. c语言修炼之一
  10. 【网站】 简单通用微信QQ跳转浏览器打开代码