有图有真相,废话不多说上图

看到园友的支持很受鼓舞,更觉得应该做下去,虽然自己是个菜鸟,但也应该共享自己的心得,只要有人获益那就是值得的。

我的下载需要csdn论坛的1个积分,之所以不完全免费出去是因为我觉得一件东西如果得到的太容易往往不会珍惜,哪怕只是象征性的一点点代价,我也希望能付出一点再得到。

如果你实在没有csdn积分,给文章评论或推荐、或者联系我,都可以得到代码,只要付出1点点的努力,感谢你的支持。

ok,接入正题

期待已久的向日葵终于要登场了,掌声有请。

向日葵其实很简单,他的作用就是产生阳光,只要设定一个timer ,以指定的时间生成阳光就ok了。

     function XiangRiKui(config) {
this.body = config.body.clone();
this.id = 1;
this.x = config.x;
this.y = config.y;
var _self = this; //制造阳光
setInterval(function () {
//给阳光注册几个事件
var myYangGuang = $yangGuang.clone();
myYangGuang.mouseover(function () {
$(this).find("img").attr("src", "/img/game/yangGuang2.png");
})
myYangGuang.mouseout(function () {
$(this).find("img").attr("src", "/img/game/yangGuang.png");
}) myYangGuang.click(function () {
$i.Ui.tip("阳光+1");
myYangGuang.remove();
}) myYangGuang.appendTo($zhanChang).css({ "left": _self.x * 100, "top": _self.y * 100 }).animate({ top: "+=20", "left": "+=80" }, 500);
},10000) }

这里给阳光注册了一个点击事件,点击的时候回收阳光增加积分,是不是很简单啊。

以前只有一个植物,现在多了一个,看来得写个工厂生产植物喽,在javascript中工厂模式是非常的简单。

 //植物工厂
function MakeZhiWu(id, config) {
switch (id) {
case 0:
//豌豆射手
config.body = $wanDou;
return new WanDou(config);
break;
case 1:
//向日葵
config.body = $xiangRiKui;
return new XiangRiKui(config);
break;
default:
break;
}
}

界面左边的部分我把它叫做图标,每一个图标对应一个id,图标点击的时候把图标的id交给工厂,这样就有植物了。

子弹也是一个类,子弹的功能是攻击、碰撞检测、展示击中动画、通知僵尸你被击中了。代码如下。

 function ZiDan(config) {
this.body = $ziDan.clone();
this.speed = 10;
this.y = config.gameY;
this.timer = 0;
var _self = this;
var nowLine = _self.y + 1;
//var p = $i.Game.IntPointToWebPoint(config.x, config.y, $stemp, $body); this.body.css({ "left": config.x, "top": config.y }); this.Run = function () {
this.timer = setInterval(function () {
var left = $i.Game.MoveRight(_self.body, 4);
var line = [];
switch (nowLine) {
case 1:
line = $listJiangShi1;
break;
case 2:
line = $listJiangShi2;
break;
case 3:
line = $listJiangShi3;
break;
case 4:
line = $listJiangShi4;
break;
case 5:
line = $listJiangShi5;
break;
case 6:
line = $listJiangShi6;
break;
} //碰撞检测
for (var i = 0; i < line.length; i++) {
if (left >= line[i].body.position().left) {
//var nowLine = i + 1; //击中处理
clearInterval(_self.timer);
//子弹击中的动画
$i.Game.Play(_self.body.find("img"), ["/img/game/zidan2.png", "/img/game/zidan3.png"], 60, function () {
_self.body.remove();
delete _self;
}); //僵尸血量减少
line[i].OnFire(function () {
line.splice(i, 1);
}); if (line.length == 0) {
$i.Event.FireEvent("Line" + nowLine + "Clear");
} break;
}
}
//边界检测
if (left > 800) {
clearInterval(_self.timer);
_self.body.remove();
delete _self;
} }, this.speed);
}
}

对于子弹我还没有写工厂,下次增加其他植物的时候可能就要写工厂了,因为有些植物的子弹属性是不一样的。看了这些不知道你有什么感觉,是否想评头论足一番,来吧欢迎点评。

总结

如果觉得本文对您有帮助,请支持一下。如果你有好的想法,诚请指教。

如果对Js 的三层结构有兴趣,请关注本分类下其他文章。

下载地址

本下载需要1点csdn积分,不付出1点代价换来的东西是不会珍惜的,so 点击下载吧

IceMx.Mvc 我的js MVC 框架六、完善植物大战僵尸(向日葵登场)的更多相关文章

  1. IceMx.Mvc 我的js MVC 框架 三、动手来写一个评论模块儿

    介绍 本人菜鸟,一些自己的浅薄见解,望各位大神指正. 本框架有以下优点 1.简单(调用简单.实现简单.不过度设计) 2.视图.控制器.模型分离(分离对于维护十分有必要) 3.组件化(每一个mvc模块儿 ...

  2. IceMx.Mvc 我的js MVC 框架 开篇

    开篇 这篇文章是后补的,前端时间想写一些对于js开发的一些理解,就直接写了,后来发现很唐突,所以今天在这里补一个开篇. 我的js Mvc 框架 基于实用设计,过分设计等于没设计.本着简单的原则,它只实 ...

  3. IceMx.Mvc 我的js MVC 框架五、完善植物大战僵尸(雏形版增加动画)

    有图有真相 说明 实在找不到僵尸的素材,从网上扒了一个山寨的僵尸,只有4张的一个连续图片,所以动作有点僵硬,植物的图片是自己处理的,非专业所以……咳咳!. 背景是自己抠下来2块儿拼接的,看在这么辛苦的 ...

  4. IceMx.Mvc 我的js MVC 框架 一、html代码的分离(视图)

    介绍 本人菜鸟,一些自己的浅薄见解,望各位大神指正. 本框架有以下优点 1.简单(调用简单.实现简单.不过度设计) 2.视图.控制器.模型分离(分离对于维护十分有必要) 3.组件化(每一个mvc模块儿 ...

  5. IceMx.Mvc 我的js MVC 框架 二、视图的数据绑定

    介绍 本人菜鸟,一些自己的浅薄见解,望各位大神指正. 本框架有以下优点 1.简单(调用简单.实现简单.不过度设计) 2.视图.控制器.模型分离(分离对于维护十分有必要) 3.组件化(每一个mvc模块儿 ...

  6. IceMx.Mvc 我的js MVC 框架四、试水植物大战僵尸(雏形版)

    有图有真相 开始 最近老婆在家迷上了植物大战僵尸,每天回去躺床上就玩,有一天居然跟我说冰箱后边爬着好几只僵尸,当时我就惊呆了,后来才知道她是在说蟑螂,我去. 闲言少叙,书归正传,这是一个雏形,没有在界 ...

  7. IceMx.Mvc 我的js MVC 框架七、完善植物大战僵尸(增加阳光的消费和获得)

    话不多说,先上图 这次增加了阳光的消费和获得,增加了阳光的点击动画 重新排布了布局 有兴趣的话就研究下吧. 上一篇有朋友说让我把项目放到github上面维护,本人没用过这个,肯请朋友们帮小弟科普一下放 ...

  8. 全端开发必备!10个最好的 Node.js MVC 框架

      Node.js 是最流行的 JavaScript 服务端平台,它允许建立可扩展的 Web 应用程序.Node.js 包含不同类型的框架,如 MVC 框架.全栈框架.REST API  以及大量的服 ...

  9. Mithril – 构建杰出 Web 应用的 JS MVC 框架

    Mithril 是一个客户端的 Javascript MVC 框架.它是一个工具,使应用程序代码分为数据层,UI 层和粘合层.提供了一个模板引擎与一个虚拟的 DOM diff 实现,用于高性能渲染,支 ...

随机推荐

  1. Java高效编程(2) -- Creating and Destroying Objects

    Item 1: Consider static factory methods instead of constructors Advantage: One advantage of static f ...

  2. MVC使用百度开源文本编辑器UEditor实现图文并茂,字数限制,上传图片或涂鸦

    原文:MVC使用百度开源文本编辑器UEditor实现图文并茂,字数限制,上传图片或涂鸦 文本编辑器有很多,比如ticymce和CKEditor就比较好用,但涉及到图片.文件上传,需要结合CKFinde ...

  3. Vs2012 构建配置 Lua5.2.3

    随着手机游戏client程序员,当然,遇到这样的问题,该游戏已经提交出版.但第二天一早,发现有一个逻辑游戏BUG.怎么办,不严重,在一般情况下,非强制性的更新.假设一个严重BUG,他们将不得不强制更新 ...

  4. maven和libgdx

    这一篇是关于maven和libgdx的.本来我准备用gradle(现已有gradle模板了),不过暂时有点小问题,而同时libgdx官方提供了maven支持,为了快速上手还是选用maven了. 博客已 ...

  5. JDBC连接池的简单实现

    首先解释一下,我在做自己android发育.java web这是我的弱点,就在最近,京东云免费,因此,要折腾几.有一点经验,特别是作为共享. 假设内容的文章是错,还请高手指正. 我在这里web结束,需 ...

  6. MVC创建XML,并实现增删改

    原文:MVC创建XML,并实现增删改 如果创建如下的XML: <?xml version="1.0" encoding="utf-8" standalon ...

  7. WCF消息交换模式之双工通讯(Duplex)

    WCF消息交换模式之双工通讯(Duplex) 双工通讯Duplex具有以下特点: 1它可以在处理完请求之后,通过请求客户端中的回调进行响应操作 2.消息交换过程中,服务端和客户端角色会发生调换 3.服 ...

  8. s2sh三大框架整合过程(仅供参考)

    三大框架顾名思义就是非常有名的Struts2 ,Hibernate,Spring, 框架整合的方法很多,现在我写一个非常简单的整合过程,相信大家一看就会! 这里使用的struts-2.2.1.1.hi ...

  9. Windows在结构objective C开发环境

    对于近期打算iPhone.iPod touch和iPad开发一些应用程序,所以.需要开始学习Objective C(苹果推出的类似C语言的开发语言).因为苹果的自我封闭的产业链发展模式(从芯片.机器. ...

  10. js 实现复制粘贴文本过滤(保留文字和图片)

    实现复制粘贴文本过滤(保留文字和图片) demo如下: <head> <meta http-equiv="Content-Type" content=" ...