o2aX = arcade_config.org2arc_escala cxr = arcade_config.character_per_row-1 cxr2 = arcade_config.character_per_row_base2 cw = arcade_config.character_width ch = arcade_config.character_height premiere={hab=75, x=24, y=24, w=32, h=32, flip=true, frame=12, wait=0, step=0, anim={12,13,12,14}, bb={x=4,y=0,w=8,h=16}, scene_intro=false, scene_object=false} function premiere.init() -- premiere.x=24 premiere.x=3 -- premiere.y=24 premiere.y=3 premiere.w=32 premiere.h=32 premiere.frame=12 premiere.wait=0 premiere.step=0 -- premiere.update=premiere.update_normal premiere.update=premiere.update_stay premiere.scene_intro=false premiere.scene_object=false local habs={75,44,20,0} premiere.hab=habs[1+math.random(0,3)] local world_x, world_y = coords.room_to_world(premiere.hab,premiere.x,premiere.y) premiere.x=world_x premiere.y=world_y print(premiere.hab) end function premiere.draw() -- draw.surf((premiere.frame&7)*16,(premiere.frame>>3)*16,16,16,premiere.x,premiere.y,16,16,premiere.flip) -- draw.surf((premiere.frame&7)*cw,(premiere.frame>>cxr2)*ch,cw,ch,premiere.x*o2aX,premiere.y*o2aX,cw,ch,premiere.flip) draw.surf((premiere.frame&7)*cw,(premiere.frame>>cxr2)*ch,cw,ch,premiere.x*o2aX,premiere.y*o2aX,cw,ch,premiere.flip) if viewp:inside(premiere.x, premiere.y, premiere.w, premiere.h) then local scr_x, scr_y = viewp:screen_coords( premiere.x, premiere.y ) -- draw.surf(premiere.x,premiere.y,premiere.w,premiere.h,scr_x,scr_y,premiere.w,premiere.h) local x = (premiere.frame&7)*cw local y = (premiere.frame>>cxr2)*ch draw.surf(x,y,cw,ch,scr_x,scr_y,premiere.w,premiere.h,premiere.flip) end end function premiere.hit() end function premiere.update_stay() premiere.wait=premiere.wait+1 if premiere.wait==6 then premiere.wait=0 premiere.step=(premiere.step+1)%4 premiere.frame=premiere.anim[premiere.step+1] end end function premiere.update_normal() premiere.wait=premiere.wait+1 if premiere.wait==6 then premiere.wait=0 premiere.step=(premiere.step+1)%4 premiere.frame=premiere.anim[premiere.step+1] local inc=12 if premiere.flip then inc=2 end if not premiere.flip and premiere.x==84 then premiere.hab=premiere.hab+1 premiere.x=-4 elseif check_tile(premiere.hab,premiere.x+inc,premiere.y+14)0 then if check_tile(premiere.hab,premiere.x+4,premiere.y-2)~=tiletype.block then if (premiere.x+4)&7==0 or check_tile(premiere.hab,premiere.x+12,premiere.y-2)~=tiletype.block then premiere.y=premiere.y-2 end end else premiere.hab=premiere.hab-10 premiere.y=32 end elseif premiere.step>6 then premiere.update=premiere.update_falling end premiere.step=premiere.step+1 end end function premiere.update_falling() premiere.frame=13 premiere.wait=premiere.wait+1 if premiere.wait==6 then premiere.wait=0 local inc=12 if premiere.flip then inc=2 end if not premiere.flip and premiere.x==84 then premiere.hab=premiere.hab+1 premiere.x=-4 elseif check_tile(premiere.hab,premiere.x+inc,premiere.y+14)=tiletype.half or ((premiere.x+4)&7~=0 and check_tile(premiere.hab,premiere.x+12,premiere.y+16)>=tiletype.half)) then premiere.update=premiere.update_normal return end premiere.y=premiere.y+2 else premiere.hab=premiere.hab+10 premiere.y=0 end end end