找回密码
 注册帐号

扫一扫,访问微社区

Unity 植物大战僵尸源码素材及JS脚本带注释

1464
回复
69608
查看
  [ 复制链接 ]
排名
1
昨日变化

1591

主题

3670

帖子

1万

积分

Rank: 16

UID
2
好友
123
蛮牛币
3137
威望
121
注册时间
2013-5-19
在线时间
2320 小时
最后登录
2019-8-22

原创先锋

2014-5-27 09:28:00 显示全部楼层 阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?注册帐号

x
  1. //僵尸

  2. function MoveZombies(){
  3.         //僵尸移动
  4.         if(Win==-1){return(false);}
  5.         var aZom=getElementsByName('img','Zombies');
  6.         var ob,C,OZombie;
  7.         for(var n=0;n<aZom.length;n++){
  8.                 ob=aZom[n];
  9.                 eval('OZombie='+ob.EName);
  10.                 if(ob.FreeSlowTime!=''){ //判断是否取消减速
  11.                         if(new Date()>ob.FreeSlowTime&&ob.HP>OZombie.BreakPoint){
  12.                                 ob.FreeSlowTime='';
  13.                                 ob.style.filter='';
  14.                                 ob.Speed=OZombie.Speed;
  15.                         }
  16.                 }
  17.                 if(ob.isAttacking==0&&ob.HP>OZombie.BreakPoint){
  18.                         ZombieAttack(ob.id);
  19.                 }
  20.                 var LX,RX;
  21.                 LX=ob.AttackedLX; //实时改变的左受攻击点的X
  22.                 RX=ob.AttackedRX; //实时改变的右受攻击点的X
  23.                 if(ob.isAttacking==0){
  24.                         if(ob.WalkDirection==0){ //往左走
  25.                                 ob.X-=ob.Speed;
  26.                                 ob.style.pixelLeft=Math.floor(ob.X);
  27.                                 LX-=ob.Speed;RX-=ob.Speed;
  28.                                 C=GetC(LX);
  29.                                 switch(true){
  30.                                         case C==0: //走到剪草机
  31.                                                 var jcj=document.getElementById('LawnMower'+ob.R);
  32.                                                 if(jcj=='[object]'){ //剪草机还在
  33.                                                         LawnMowerKill(ob.R); //剪草机
  34.                                                 }
  35.                                                 break;
  36.                                         case C<0: //进入房间
  37.                                                 Win=-1;
  38.                                                 GameOver();
  39.                                                 return(false);
  40.                                                 break;
  41.                                 }
  42.                         }else{ //往右走
  43.                                 ob.X+=ob.Speed;
  44.                                 ob.style.pixelLeft=Math.ceil(ob.X);
  45.                                 LX+=ob.Speed;
  46.                                 RX+=ob.Speed;
  47.                                 ob.style.pixelLeft+=ob.Speed;
  48.                                 if(ob.style.pixelLeft>=oGP.MaxWidth){ //向右走出了屏幕
  49.                                         OZombie.Die(ob);
  50.                                         continue;
  51.                                 }
  52.                                 C=GetC(RX);
  53.                         }
  54.                         ob.AttackedLX=LX; //实时改变的左受攻击点的X
  55.                         ob.AttackedRX=RX; //实时改变的右受攻击点的X
  56.                         if(C!=ob.C&&C>0){
  57.                                 oGP.aZombie[ob.C][ob.R]=oGP.aZombie[ob.C][ob.R].replace(ob.id+',','');
  58.                                 oGP.aZombie[C][ob.R]+=ob.id+',';
  59.                                 ob.C=C;
  60.                         }
  61.                 }
  62.         }
  63.         setTimeout('MoveZombies()',100);
  64. }

  65. /*-------------------普通僵尸---------------------------*/
  66. function CZombie(){
  67.         this.EName='oZombie';
  68.         this.CName='普通僵尸';
  69.         this.width=87;
  70.         this.height=144;
  71.         this.HP=270;
  72.         this.BreakPoint=90;
  73.         this.Ornaments=0; //饰品种类,123三种
  74.         this.OrnHP=0; //饰品HP
  75.         this.Speed=1.8; //ÐнøËÙ¶È,125ºÁÃëΪµ¥Î»,pixel
  76.         this.WalkDirection=0; //Ðнø·½Ïò£¬0±íʾ×ó1±íʾÓÒ
  77.         this.Attack=100; //¹¥»÷Á¦£¬ÃëΪµ¥Î»
  78.         this.canAppear='[草地][屋顶]'; //Äܹ»³öÏֵij¡µØ
  79.         this.Location='地上'; //º£°Î¶¨Î»£¬Ë®Ï£¬µØÏ£¬µØÉÏ£¬Ìì¿Õ
  80.         this.againstFreeze=0; //免疫冰冻
  81.         this.againstSlow=0; //免疫减速
  82.         this.againstSputtering=0; //免疫溅射
  83.         this.againstRaven=0; //是否免疫食人花的吞噬
  84.         this.againstSetbody=0; //是否免疫定身
  85.         this.beAttackedPointL=10; //×ó±ß±»¹¥»÷µãÀëpixelLeftÆ«ÒƾàÀë
  86.         this.beAttackedPointR=77; //Óұ߱»¹¥»÷µãÀëpixelLeftÆ«ÒƾàÀë
  87.         var tmpImg1=new Image();
  88.         tmpImg1.src='images/Zombies/Zombie/Zombie.gif';
  89.         dicZombiesGif.add('oZombie',tmpImg1);
  90.         var tmpImg2=new Image();
  91.         tmpImg2.src='images/Zombies/Zombie/ZombieAttack.gif';
  92.         dicZombiesGif.add('oZombieAttack',tmpImg2);
  93.         this.NormalGif=dicZombiesGif('oZombie').src;
  94.         this.AttackGif=dicZombiesGif('oZombieAttack').src;
  95. }
  96. CZombie.prototype.Birth=function(ob){
  97.         //½©Ê¬µ®Éú
  98.         oGP.aZombie[ob.C][ob.R]+=(ob.id)+',';
  99. }

  100. CZombie.prototype.Die=function(ob){
  101.         //½©Ê¬ËÀÍö
  102.         NumZombies-=1;
  103.         oGP.aR[ob.R]-=1;
  104.         oGP.aZombie[ob.C][ob.R]=oGP.aZombie[ob.C][ob.R].replace(ob.id+',','');
  105.         document.getElementById('dAll').removeChild(ob);
  106. }
  107. /*
  108. CZombie.prototype.Die=function(ob){
  109.         ob.style.pixelTop+=50;
  110.         ob.style.pixelLeft-=70;
  111.         ob.style.filter='progid:DXImageTransform.Microsoft.BasicImage(rotation=3)';
  112.         ob.name='';
  113.         window.setTimeout('oZombie.Die2('+ob.id+')',200);
  114. }
  115. */
  116. CZombie.prototype.GoingDie=function(ob){
  117.         ob.beAttacked=0; //ÁÙËÀ,²»Äܱ»¹¥»÷
  118.         ob.HP=ob.HP-60;
  119.         ob.style.filter='gray';
  120.         if(ob.HP<=0){
  121.                 this.Die(ob);
  122.         }else{
  123.                 setTimeout('oZombie.GoingDie('+ob.id+')',1000);
  124.         }
  125. }

  126. /*-------------------旗帜僵尸---------------------------*/
  127. function CFlagZombie(){
  128.         this.EName='oFlagZombie';
  129.         this.CName='旗帜僵尸';
  130.         this.width=111;
  131.         this.height=143;
  132.         this.HP=270;
  133.         this.BreakPoint=90;
  134.         this.Ornaments=0; //饰品种类,123三种
  135.         this.OrnHP=0; //饰品HP
  136.         this.Speed=2.2; //ÐнøËÙ¶È,125ºÁÃëΪµ¥Î»,pixel
  137.         this.WalkDirection=0; //Ðнø·½Ïò£¬0±íʾ×ó1±íʾÓÒ
  138.         this.Attack=100; //¹¥»÷Á¦£¬ÃëΪµ¥Î»
  139.         this.canAppear='[草地][屋顶]'; //Äܹ»³öÏֵij¡µØ
  140.         this.Location='地上'; //º£°Î¶¨Î»£¬Ë®Ï£¬µØÏ£¬µØÉÏ£¬Ìì¿Õ
  141.         this.againstFreeze=0; //免疫冰冻
  142.         this.againstSlow=0; //免疫减速
  143.         this.againstSputtering=0; //免疫溅射
  144.         this.againstRaven=0; //是否免疫食人花的吞噬
  145.         this.beAttackedPointL=10; //×ó±ß±»¹¥»÷µãÀëpixelLeftÆ«ÒƾàÀë
  146.         this.beAttackedPointR=101; //Óұ߱»¹¥»÷µãÀëpixelLeftÆ«ÒƾàÀë
  147.         var tmpImg1=new Image();
  148.         tmpImg1.src='images/Zombies/FlagZombie/FlagZombie.gif';
  149.         dicZombiesGif.add('oFlagZombie',tmpImg1);
  150.         var tmpImg2=new Image();
  151.         tmpImg2.src='images/Zombies/FlagZombie/FlagZombieAttack.gif';
  152.         dicZombiesGif.add('oFlagZombieAttack',tmpImg2);
  153.         this.NormalGif=dicZombiesGif('oFlagZombie').src;
  154.         this.AttackGif=dicZombiesGif('oFlagZombieAttack').src;
  155. }
  156. CFlagZombie.prototype.Birth=function(ob){
  157.         //½©Ê¬µ®Éú
  158.         oGP.aZombie[ob.C][ob.R]+=(ob.id)+',';
  159. }
  160. CFlagZombie.prototype.Die=function(ob){
  161.         //½©Ê¬ËÀÍö
  162.         NumZombies-=1;
  163.         oGP.aR[ob.R]-=1;
  164.         oGP.aZombie[ob.C][ob.R]=oGP.aZombie[ob.C][ob.R].replace(ob.id+',','');
  165.         document.getElementById('dAll').removeChild(ob);
  166. }
  167. CFlagZombie.prototype.GoingDie=function(ob){
  168.         ob.beAttacked=0; //ÁÙËÀ,²»Äܱ»¹¥»÷
  169.         ob.HP=ob.HP-60;
  170.         ob.style.filter='gray';
  171.         if(ob.HP<=0){
  172.                 this.Die(ob);
  173.         }else{
  174.                 setTimeout('oFlagZombie.GoingDie('+ob.id+')',1000);
  175.         }
  176. }

  177. /*-------------------路障僵尸---------------------------*/
  178. function CConeheadZombie(){
  179.         this.EName='oConeheadZombie';
  180.         this.CName='路障僵尸';
  181.         this.width=87;
  182.         this.height=144;
  183.         this.HP=270;
  184.         this.BreakPoint=90;
  185.         this.Ornaments=1; //饰品种类,123三种
  186.         this.OrnHP=370; //饰品HP
  187.         this.Speed=1.6; //ÐнøËÙ¶È,125ºÁÃëΪµ¥Î»,pixel
  188.         this.WalkDirection=0; //Ðнø·½Ïò£¬0±íʾ×ó1±íʾÓÒ
  189.         this.Attack=100; //¹¥»÷Á¦£¬ÃëΪµ¥Î»
  190.         this.canAppear='[草地][屋顶]'; //Äܹ»³öÏֵij¡µØ
  191.         this.Location='地上'; //º£°Î¶¨Î»£¬Ë®Ï£¬µØÏ£¬µØÉÏ£¬Ìì¿Õ
  192.         this.againstFreeze=0; //免疫冰冻
  193.         this.againstSlow=0; //免疫减速
  194.         this.againstSputtering=0; //免疫溅射
  195.         this.againstRaven=0; //是否免疫食人花的吞噬
  196.         this.beAttackedPointL=10; //×ó±ß±»¹¥»÷µãÀëpixelLeftÆ«ÒƾàÀë
  197.         this.beAttackedPointR=77; //Óұ߱»¹¥»÷µãÀëpixelLeftÆ«ÒƾàÀë
  198.         var tmpImg1=new Image();
  199.         tmpImg1.src='images/Zombies/ConeheadZombie/ConeheadZombie.gif';
  200.         dicZombiesGif.add('oConeheadZombie',tmpImg1);
  201.         var tmpImg2=new Image();
  202.         tmpImg2.src='images/Zombies/ConeheadZombie/ConeheadZombieAttack.gif';
  203.         dicZombiesGif.add('oConeheadZombieAttack',tmpImg2);
  204.         //使用普通僵尸的行动和攻击动画作为饰品消失后的动画
  205.         if(!dicZombiesGif.Exists('oZombie')){
  206.                 var tmpImg3=new Image();
  207.                 tmpImg3.src='images/Zombies/Zombie/Zombie.gif';
  208.                 dicZombiesGif.add('oZombie',tmpImg3);
  209.                 var tmpImg4=new Image();
  210.                 tmpImg4.src='images/Zombies/Zombie/ZombieAttack.gif';
  211.                 dicZombiesGif.add('oZombieAttack',tmpImg4);
  212.         }
  213.         this.NormalGif=dicZombiesGif('oConeheadZombie').src;
  214.         this.AttackGif=dicZombiesGif('oConeheadZombieAttack').src;
  215.         this.OrnLostNormalGif=dicZombiesGif('oZombie').src; //失去饰品以后的行动动画
  216.         this.OrnLostAttackGif=dicZombiesGif('oZombieAttack').src; //失去饰品以后的攻击动画
  217. }
  218. CConeheadZombie.prototype.Birth=function(ob){
  219.         //½©Ê¬µ®Éú
  220.         oGP.aZombie[ob.C][ob.R]+=(ob.id)+',';
  221. }
  222. CConeheadZombie.prototype.Die=function(ob){
  223.         //½©Ê¬ËÀÍö
  224.         NumZombies-=1;
  225.         oGP.aR[ob.R]-=1;
  226.         oGP.aZombie[ob.C][ob.R]=oGP.aZombie[ob.C][ob.R].replace(ob.id+',','');
  227.         document.getElementById('dAll').removeChild(ob);
  228. }
  229. /*
  230. CZombie.prototype.Die=function(ob){
  231.         ob.style.pixelTop+=50;
  232.         ob.style.pixelLeft-=70;
  233.         ob.style.filter='progid:DXImageTransform.Microsoft.BasicImage(rotation=3)';
  234.         ob.name='';
  235.         window.setTimeout('oZombie.Die2('+ob.id+')',200);
  236. }
  237. */
  238. CConeheadZombie.prototype.GoingDie=function(ob){
  239.         ob.beAttacked=0; //ÁÙËÀ,²»Äܱ»¹¥»÷
  240.         ob.HP=ob.HP-60;
  241.         ob.style.filter='gray';
  242.         if(ob.HP<=0){
  243.                 this.Die(ob);
  244.         }else{
  245.                 setTimeout('oConeheadZombie.GoingDie('+ob.id+')',1000);
  246.         }
  247. }

  248. /*-------------------铁桶僵尸---------------------------*/
  249. function CBucketheadZombie(){
  250.         this.EName='oBucketheadZombie';
  251.         this.CName='铁桶僵尸';
  252.         this.width=97;
  253.         this.height=142;
  254.         this.HP=270;
  255.         this.BreakPoint=90;
  256.         this.Ornaments=1; //饰品种类,123三种
  257.         this.OrnHP=1100; //饰品HP
  258.         this.Speed=1.6; //ÐнøËÙ¶È,125ºÁÃëΪµ¥Î»,pixel
  259.         this.WalkDirection=0; //Ðнø·½Ïò£¬0±íʾ×ó1±íʾÓÒ
  260.         this.Attack=100; //¹¥»÷Á¦£¬ÃëΪµ¥Î»
  261.         this.canAppear='[草地][屋顶]'; //Äܹ»³öÏֵij¡µØ
  262.         this.Location='地上'; //º£°Î¶¨Î»£¬Ë®Ï£¬µØÏ£¬µØÉÏ£¬Ìì¿Õ
  263.         this.againstFreeze=0; //免疫冰冻
  264.         this.againstSlow=0; //免疫减速
  265.         this.againstSputtering=0; //免疫溅射
  266.         this.againstRaven=0; //是否免疫食人花的吞噬
  267.         this.beAttackedPointL=10; //×ó±ß±»¹¥»÷µãÀëpixelLeftÆ«ÒƾàÀë
  268.         this.beAttackedPointR=87; //Óұ߱»¹¥»÷µãÀëpixelLeftÆ«ÒƾàÀë
  269.         var tmpImg1=new Image();
  270.         tmpImg1.src='images/Zombies/BucketheadZombie/BucketheadZombie.gif';
  271.         dicZombiesGif.add('oBucketheadZombie',tmpImg1);
  272.         var tmpImg2=new Image();
  273.         tmpImg2.src='images/Zombies/BucketheadZombie/BucketheadZombieAttack.gif';
  274.         dicZombiesGif.add('oBucketheadZombieAttack',tmpImg2);
  275.         //使用普通僵尸的行动和攻击动画作为饰品消失后的动画
  276.         if(!dicZombiesGif.Exists('oZombie')){
  277.                 var tmpImg3=new Image();
  278.                 tmpImg3.src='images/Zombies/Zombie/Zombie.gif';
  279.                 dicZombiesGif.add('oZombie',tmpImg3);
  280.                 var tmpImg4=new Image();
  281.                 tmpImg4.src='images/Zombies/Zombie/ZombieAttack.gif';
  282.                 dicZombiesGif.add('oZombieAttack',tmpImg4);
  283.         }
  284.         this.NormalGif=dicZombiesGif('oBucketheadZombie').src;
  285.         this.AttackGif=dicZombiesGif('oBucketheadZombieAttack').src;
  286.         this.OrnLostNormalGif=dicZombiesGif('oZombie').src; //失去饰品以后的行动动画
  287.         this.OrnLostAttackGif=dicZombiesGif('oZombieAttack').src; //失去饰品以后的攻击动画
  288. }
  289. CBucketheadZombie.prototype.Birth=function(ob){
  290.         //½©Ê¬µ®Éú
  291.         oGP.aZombie[ob.C][ob.R]+=(ob.id)+',';
  292. }
  293. CBucketheadZombie.prototype.Die=function(ob){
  294.         //½©Ê¬ËÀÍö
  295.         NumZombies-=1;
  296.         oGP.aR[ob.R]-=1;
  297.         oGP.aZombie[ob.C][ob.R]=oGP.aZombie[ob.C][ob.R].replace(ob.id+',','');
  298.         document.getElementById('dAll').removeChild(ob);
  299. }
  300. CBucketheadZombie.prototype.GoingDie=function(ob){
  301.         ob.beAttacked=0; //ÁÙËÀ,²»Äܱ»¹¥»÷
  302.         ob.HP=ob.HP-60;
  303.         ob.style.filter='gray';
  304.         if(ob.HP<=0){
  305.                 this.Die(ob);
  306.         }else{
  307.                 setTimeout('oBucketheadZombie.GoingDie('+ob.id+')',1000);
  308.         }
  309. }

  310. /*-------------------橄榄球僵尸---------------------------*/
  311. function CFootballZombie(){
  312.         this.EName='oFootballZombie';
  313.         this.CName='橄榄球僵尸';
  314.         this.width=154;
  315.         this.height=160;
  316.         this.HP=270;
  317.         this.BreakPoint=90;
  318.         this.Ornaments=1; //饰品种类,123三种
  319.         this.OrnHP=1400; //饰品HP
  320.         this.Speed=3.2; //ÐнøËÙ¶È,125ºÁÃëΪµ¥Î»,pixel
  321.         this.WalkDirection=0; //Ðнø·½Ïò£¬0±íʾ×ó1±íʾÓÒ
  322.         this.Attack=100; //¹¥»÷Á¦£¬ÃëΪµ¥Î»
  323.         this.canAppear='[草地][屋顶]'; //Äܹ»³öÏֵij¡µØ
  324.         this.Location='地上'; //º£°Î¶¨Î»£¬Ë®Ï£¬µØÏ£¬µØÉÏ£¬Ìì¿Õ
  325.         this.againstFreeze=0; //免疫冰冻
  326.         this.againstSlow=0; //免疫减速
  327.         this.againstSputtering=0; //免疫溅射
  328.         this.againstRaven=0; //是否免疫食人花的吞噬
  329.         this.beAttackedPointL=20; //×ó±ß±»¹¥»÷µãÀëpixelLeftÆ«ÒƾàÀë
  330.         this.beAttackedPointR=134; //Óұ߱»¹¥»÷µãÀëpixelLeftÆ«ÒƾàÀë
  331.         var tmpImg1=new Image();
  332.         tmpImg1.src='images/Zombies/FootballZombie/FootballZombie.gif';
  333.         dicZombiesGif.add('oFootballZombie',tmpImg1);
  334.         var tmpImg2=new Image();
  335.         tmpImg2.src='images/Zombies/FootballZombie/FootballZombieAttack.gif';
  336.         dicZombiesGif.add('oFootballZombieAttack',tmpImg2);
  337.         var tmpImg3=new Image();
  338.         tmpImg3.src='images/Zombies/FootballZombie/FootballZombieOrnLost.gif';
  339.         dicZombiesGif.add('oFootballZombieOrnLost',tmpImg3);
  340.         var tmpImg4=new Image();
  341.         tmpImg4.src='images/Zombies/FootballZombie/FootballZombieOrnLostAttack.gif';
  342.         dicZombiesGif.add('oFootballZombieOrnLostAttack',tmpImg4);
  343.         this.NormalGif=dicZombiesGif('oFootballZombie').src;
  344.         this.AttackGif=dicZombiesGif('oFootballZombieAttack').src;
  345.         this.OrnLostNormalGif=dicZombiesGif('oFootballZombieOrnLost').src; //失去饰品以后的行动动画
  346.         this.OrnLostAttackGif=dicZombiesGif('oFootballZombieOrnLostAttack').src; //失去饰品以后的攻击动画
  347. }
  348. CFootballZombie.prototype.Birth=function(ob){
  349.         //½©Ê¬µ®Éú
  350.         oGP.aZombie[ob.C][ob.R]+=(ob.id)+',';
  351. }
  352. CFootballZombie.prototype.Die=function(ob){
  353.         //½©Ê¬ËÀÍö
  354.         NumZombies-=1;
  355.         oGP.aR[ob.R]-=1;
  356.         oGP.aZombie[ob.C][ob.R]=oGP.aZombie[ob.C][ob.R].replace(ob.id+',','');
  357.         document.getElementById('dAll').removeChild(ob);
  358. }
  359. CFootballZombie.prototype.GoingDie=function(ob){
  360.         ob.beAttacked=0; //ÁÙËÀ,²»Äܱ»¹¥»÷
  361.         ob.HP=ob.HP-60;
  362.         ob.style.filter='gray';
  363.         if(ob.HP<=0){
  364.                 this.Die(ob);
  365.         }else{
  366.                 setTimeout('oFootballZombie.GoingDie('+ob.id+')',1000);
  367.         }
  368. }

  369. function ZombieAttack(id){
  370.         //¹¥»÷º¯Êý
  371.         var ob=document.getElementById(id);
  372.         if(ob!='[object]'){return(false);}
  373.         var OZombie;
  374.         eval('OZombie='+ob.EName);
  375.         if(ob.HP<=OZombie.BreakPoint){return(false);}
  376.         var n,obPlant,OPlant;
  377.         if(ob.WalkDirection==0){ //向左走的僵尸
  378.                 for(n=ob.C;n>=(ob.C-1);n--){ //´Óµ±Ç°¸ñ×Ó¿ªÊ¼ÍùÇ°µ½µÚ¶þ¸ñ
  379.                         if(n>oGP.MaxC||n<1){continue;}
  380.                         if(oGP.aPlant[n][ob.R][1]!=''){ //Óб£»¤ÐÔÖ²ÎïÄϹϣ¬Ïȹ¥»÷ÄϹÏ
  381.                                 obPlant=document.getElementById(oGP.aPlant[n][ob.R][1]); //»ñµÃÖ²Îï
  382.                                 break;
  383.                         }else{
  384.                                 if(oGP.aPlant[n][ob.R][0]!=''){ //ûÓб£»¤ÐÔÖ²Î»ñµÃÆÕֲͨÎï
  385.                                         obPlant=document.getElementById(oGP.aPlant[n][ob.R][0]);
  386.                                         break;
  387.                                 }else{ //ûÓзÇÈÝÆ÷Ö²Î»ñÈ¡ÈÝÆ÷Ö²Îï
  388.                                         if(oGP.aGroundPlant[n][ob.R][0]!=''){
  389.                                                 obPlant=document.getElementById(oGP.aGroundPlant[n][ob.R][0]);
  390.                                                 break;
  391.                                         }else{
  392.                                                 continue; //µ±Ç°¸ñ×ÓûÓлñÈ¡µ½ÈκÎÖ²Î¼ÌÐø»ñÈ¡ÏÂÒ»¸ö¸ñ×ÓµÄÖ²Îï
  393.                                         }
  394.                                 }
  395.                         }
  396.                 }
  397.                 if(obPlant!='[object]'){ //没有植物
  398.                         if(ob.isAttacking==1){
  399.                                 ob.src=ob.NormalGif;
  400.                                 ob.isAttacking=0;
  401.                         }
  402.                         return(false);
  403.                 }
  404.                 eval('OPlant='+obPlant.EName);
  405.                 if(OPlant.canEat==0){ //植物不能被吃,比如地刺
  406.                         if(ob.isAttacking==1){
  407.                                 ob.src=ob.NormalGif;
  408.                                 ob.isAttacking=0;
  409.                         }
  410.                         return(false);
  411.                 }
  412.                 if((ob.AttackedLX<=obPlant.AttackedRX)&&(ob.AttackedRX>=obPlant.AttackedLX)){ //僵尸的左攻击点小于植物的右攻击点,并且僵尸右攻击点大于植物左攻击点
  413.                         if(ob.isAttacking==0){ob.src=ob.AttackGif;}
  414.                         if(obPlant.EName=='oGralic'){ //´óËâ
  415.                                 obPlant.HP-=20;
  416.                                 if(obPlant.HP<OPlant.BreakPoint){
  417.                                         OPlant.Die(obPlant);
  418.                                         ob.src=ob.NormalGif;
  419.                                         ob.isAttacking=0;
  420.                                         return(false);
  421.                                 }else{
  422.                                         PlantStatus(obPlant.id); //ÅжÏÖ²ÎïµÄ״̬À´¸ü¸Äfilter»òÕßsrcµÈ
  423.                                         ob.isAttacking=1;
  424.                                         setTimeout('ZombieEatGralic("'+ob.id+'")',1000);
  425.                                         return(false);
  426.                                 }
  427.                         }else{
  428.                                 ob.isAttacking=1;
  429.                                 setTimeout('ZombieEatPlant("'+ob.id+'","'+obPlant.id+'")',1000);
  430.                         }
  431.                 }else{
  432.                         if(ob.isAttacking==1){
  433.                                 ob.src=ob.NormalGif;
  434.                                 ob.isAttacking=0;
  435.                         }
  436.                         return(false);
  437.                 }
  438.         }else{ //ÍùÓÒ×ß

  439.         }
  440. }

  441. function ZombieEatPlant(zombieid,plantid){
  442.         //吃植物
  443.         var ob=document.getElementById(zombieid);
  444.         var obPlant=document.getElementById(plantid);
  445.         if(ob!='[object]'){return(false);} //zombie die
  446.         if(obPlant!='[object]'){ //没有植物
  447.                 ob.src=ob.NormalGif;
  448.                 ob.isAttacking=0;
  449.                 return(false);
  450.         }
  451.         var OZombie,OPlant;
  452.         eval('OZombie='+ob.EName);
  453.         eval('OPlant='+obPlant.EName);
  454.         if(obPlant.unrivaled==0){
  455.                 if(ob.FreeSlowTime==''){
  456.                         obPlant.HP-=OZombie.Attack;
  457.                 }else{
  458.                         obPlant.HP-=OZombie.Attack*0.25;
  459.                 }
  460.                 PlantStatus(obPlant.id);
  461.         }
  462.         if(obPlant.HP<=OPlant.BreakPoint){
  463.                 OPlant.Die(obPlant);
  464.                 ob.src=ob.NormalGif;
  465.                 ob.isAttacking=0;
  466.                 return(false);
  467.         }
  468.         setTimeout('ZombieEatPlant("'+zombieid+'","'+plantid+'")',1000);
  469. }

  470. function ZombieEatGralic(id){
  471.         //³Ô´óËâ»»ÐÐ
  472.         var ob=document.getElementById(id);
  473.         if(ob!='[object]'){return(false);}
  474.         ob.isAttacking=0;
  475.         ob.src=dicZombiesGif(ob.EName).src;
  476.         var tmpR,tmpC,tmpA=new Array();
  477.         if(ob.R>1){
  478.                 tmpR=ob.R-1;
  479.                 if(oGP.aP[1][tmpR]==oGP.aP[1][ob.R]){tmpA.push(tmpR);}
  480.         }
  481.         if(ob.R<oGP.MaxR){
  482.                 tmpR=ob.R+1;
  483.                 if(oGP.aP[1][tmpR]==oGP.aP[1][ob.R]){tmpA.push(tmpR);}
  484.         }
  485.         if(tmpA.length>0){
  486.                 ob.src=dicZombiesGif(ob.EName).src;
  487.                 tmpR=tmpA[Math.floor(Math.random()*tmpA.length)];
  488.                 ob.style.pixelTop=GetY(tmpR)-parseInt(ob.height);
  489.                 ob.style.zIndex=3*tmpR+1;
  490.                 var LX,RX;
  491.                 LX=ob.AttackedLX;
  492.                 RX=ob.AttackedRX;
  493.                 if(ob.WalkDirection==0){ //向左走
  494.                         ob.style.pixelLeft-=10;
  495.                         ob.X-=10;
  496.                         LX-=10;
  497.                         RX-=10;
  498.                         tmpC=GetC(LX);
  499.                 }else{ //向右走
  500.                         ob.style.pixelLeft+=10;
  501.                         ob.X+=10;
  502.                         LX+=10;
  503.                         RX+=10;
  504.                         tmpC=GetC(RX);
  505.                 }
  506.                 ob.AttackedLX=LX; //实时改变的左受攻击点的X
  507.                 ob.AttackedRX=RX; //实时改变的右受攻击点的X
  508.                 oGP.aZombie[ob.C][ob.R]=oGP.aZombie[ob.C][ob.R].replace(ob.id+',','');
  509.                 oGP.aZombie[tmpC][tmpR]+=ob.id+',';
  510.                 oGP.aR[ob.R]-=1;
  511.                 ob.C=tmpC;
  512.                 ob.R=tmpR;
  513.                 oGP.aR[tmpR]+=1;
  514.                
  515.         }
  516. }
复制代码
下载地址:
游客,如果您要查看本帖隐藏内容请回复

u3d 刷植物;unity3d植物大战僵尸素材;
参与人数 11鲜花 -25 收起 理由
西瓜投手的一天 -2 山寨
李志成 -2 山寨
l445879742z -2 骗子
乐哈哈 -2 下载不了,里边给的下载地址已经失效了.
bsdzhu -2 下载后是一个地址,文件审核中无法下载 请.
457107949 -2 山寨
lyykj -2 山寨
242948 -2 淡定
liujian2008 -2 骗子
chris76218 -2 &quot;文件正在审核中,请耐心等待审核&quot; 还我30.
beeker -5 微盘提示 文件正在审核中,请耐心等待审核-.

查看全部评分总评分 : 鲜花 -25

回复

使用道具 举报

2初来乍到
108/150
排名
16955
昨日变化

1

主题

40

帖子

108

积分

Rank: 2Rank: 2

UID
15
好友
1
蛮牛币
191
威望
30
注册时间
2013-5-28
在线时间
27 小时
最后登录
2019-5-28
2014-5-29 11:41:58 显示全部楼层
学习学习!!!
回复 支持 反对

使用道具 举报

7日久生情
1703/5000
排名
857
昨日变化

0

主题

135

帖子

1703

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
52
好友
0
蛮牛币
3368
威望
0
注册时间
2013-5-29
在线时间
406 小时
最后登录
2019-8-22
2014-5-29 13:39:02 显示全部楼层
来学习了
回复 支持 反对

使用道具 举报

3偶尔光临
215/300
排名
8245
昨日变化

3

主题

31

帖子

215

积分

Rank: 3Rank: 3Rank: 3

UID
50
好友
0
蛮牛币
577
威望
0
注册时间
2013-5-29
在线时间
35 小时
最后登录
2014-5-24
2014-5-29 15:02:20 显示全部楼层
地板,抢占
回复 支持 反对

使用道具 举报

0

主题

5

帖子

28

积分

Rank: 1

UID
34
好友
0
蛮牛币
34
威望
0
注册时间
2013-5-29
在线时间
23 小时
最后登录
2017-9-18
2014-5-29 16:52:49 显示全部楼层
还是有点给力也...下下来看哈呢
回复 支持 反对

使用道具 举报

0

主题

2

帖子

3

积分

Rank: 1

UID
60
好友
0
蛮牛币
15
威望
0
注册时间
2013-5-29
在线时间
1 小时
最后登录
2015-7-30
2014-5-29 17:22:59 显示全部楼层
学习学习!!!
回复 支持 反对

使用道具 举报

0

主题

5

帖子

24

积分

Rank: 1

UID
93
好友
0
蛮牛币
18
威望
0
注册时间
2013-5-29
在线时间
1 小时
最后登录
2013-6-3
2014-5-29 22:46:48 显示全部楼层
新论坛,大家一起努力
回复 支持 反对

使用道具 举报

排名
140
昨日变化

23

主题

402

帖子

3861

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
91
好友
28
蛮牛币
18724
威望
0
注册时间
2013-5-29
在线时间
974 小时
最后登录
2019-4-25

活力之星认证开发者

2014-5-29 22:59:14 显示全部楼层
感谢分享 好东西
回复 支持 反对

使用道具 举报

7日久生情
1709/5000
排名
922
昨日变化

13

主题

310

帖子

1709

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
97
好友
4
蛮牛币
3958
威望
30
注册时间
2013-5-30
在线时间
265 小时
最后登录
2019-6-12
2014-5-30 08:23:21 显示全部楼层
谢谢分享。。金币好那获得啊
回复 支持 反对

使用道具 举报

排名
34887
昨日变化

0

主题

48

帖子

77

积分

Rank: 2Rank: 2

UID
114
好友
0
蛮牛币
37
威望
0
注册时间
2013-5-30
在线时间
5 小时
最后登录
2016-3-8
2014-5-30 14:21:06 显示全部楼层
谢谢楼主分享。。:lol
回复 支持 反对

使用道具 举报

排名
34887
昨日变化

0

主题

48

帖子

77

积分

Rank: 2Rank: 2

UID
114
好友
0
蛮牛币
37
威望
0
注册时间
2013-5-30
在线时间
5 小时
最后登录
2016-3-8
2014-5-30 14:21:38 显示全部楼层
来学习了
回复 支持 反对

使用道具 举报

5熟悉之中
504/1000
排名
3766
昨日变化

0

主题

42

帖子

504

积分

Rank: 5Rank: 5

UID
124
好友
0
蛮牛币
1195
威望
0
注册时间
2013-5-30
在线时间
61 小时
最后登录
2015-7-28
2014-5-30 19:34:30 显示全部楼层
很好!!!!!!!!!!!!!!
回复

使用道具 举报

0

主题

1

帖子

13

积分

Rank: 1

UID
131
好友
0
蛮牛币
12
威望
0
注册时间
2013-5-30
在线时间
0 小时
最后登录
2013-6-9
2014-5-30 23:30:45 显示全部楼层
顶死楼主
回复 支持 反对

使用道具 举报

0

主题

3

帖子

13

积分

Rank: 1

UID
144
好友
0
蛮牛币
10
威望
0
注册时间
2013-5-31
在线时间
0 小时
最后登录
2013-5-31
2014-5-31 17:00:29 显示全部楼层
一定要学习下!
回复 支持 反对

使用道具 举报

0

主题

2

帖子

11

积分

Rank: 1

UID
162
好友
0
蛮牛币
9
威望
0
注册时间
2013-6-1
在线时间
0 小时
最后登录
2013-6-1
2014-6-1 16:20:28 显示全部楼层
看看隐藏
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册帐号

本版积分规则