diff --git a/data/caco.lua b/data/caco.lua index 48ca356..c7a8b4b 100644 --- a/data/caco.lua +++ b/data/caco.lua @@ -22,7 +22,7 @@ function caco.new(_hab,_x,_y,_flip) draw=caco.draw, jumpfwd=false, anim={19,19,20,21}, - bb={x=2,y=4,w=12,h=8} } + bb={x=4,y=4,w=24,h=16} } end function caco:draw() @@ -36,25 +36,43 @@ function caco:draw() end function caco:update_normal() - self.wait=0 - self.step=self.step+1 - if self.step<50 then - self.frame=19 - elseif self.step==70 then - self.frame=20 - elseif self.step==80 then - self.frame=21 - elseif self.step==90 then - self.step=0 + self.wait=self.wait+1 + + if self.wait==6 then + self.wait=0 + self.step=self.step+1 + if self.step<8 then + self.frame=19 + elseif self.step==12 then + self.frame=20 + elseif self.step==13 then + self.frame=21 + elseif self.step==15 then + self.step=0 + end end + local step = 1 if self.flip then step = -step end - if arc_check_tile(self.x+step,self.y+self.h)0 then draw.surf((self.frame&7)*16,(self.frame>>3)*16,16,16,self.x,self.y,16,16,self.flip) end + -- if self.frame>0 then draw.surf((self.frame&7)*cw,(self.frame>>cxr2)*ch,cw,ch,self.x*o2aX,self.y*o2aX,cw,ch,self.flip) end + if self.frame>0 and viewp:inside(self.x, self.y, self.w, self.h) then + local scr_x, scr_y = viewp:screen_coords( self.x, self.y ) + draw.surf((self.frame&7)*cw, (self.frame>>cxr2)*ch, cw, ch, scr_x, scr_y, cw, ch, self.flip) + end +end + +function zombie:update_normal() + self.wait=self.wait+1 + + if self.wait==18 then + self.wait=0 + self.step=(self.step+1)%4 + self.frame=self.anim[self.step+1] + end + + local step = 1 + if self.flip then step = -step end + local inc = 0 + if self.flip then inc = self.bb.w end + + local check_x = self.x+self.bb.x+step + local check_ywall = self.y+self.h-2 + local check_yhole = self.y+self.h+1 + if not self.flip then + check_x = self.x+self.bb.w+self.bb.x+step + end + + local check_no_wall= arc_check_tile(check_x,check_ywall)=40 then + self.step=0 + self.wait=0 + self.update=zombie.update_normal + end + end +end + +function zombie:hit() + self.update=zombie.update_hit +end