- Premiere AI implemented
This commit is contained in:
2
game.ini
2
game.ini
@@ -2,4 +2,4 @@ title=Cacaus
|
||||
width=128
|
||||
height=96
|
||||
zoom=4
|
||||
files=score.lua,switches.lua,map.lua,mapa.lua,cacau.lua,caco.lua,zombie.lua,abad.lua,main.lua
|
||||
files=score.lua,switches.lua,map.lua,mapa.lua,cacau.lua,premiere.lua,caco.lua,zombie.lua,abad.lua,main.lua
|
||||
|
||||
4
main.lua
4
main.lua
@@ -16,6 +16,8 @@ function _init()
|
||||
--mapa_new()
|
||||
abad_init()
|
||||
table.insert(actors,abad)
|
||||
premiere.init()
|
||||
table.insert(actors,premiere)
|
||||
z = zombie.new()
|
||||
table.insert(actors,z)
|
||||
c=caco.new(10,24,16)
|
||||
@@ -127,7 +129,7 @@ function update_game()
|
||||
else
|
||||
draw_hab(abad.hab,0,0)
|
||||
text(abad.hab,1,1,2)
|
||||
draw_hab(10,0,48)
|
||||
draw_hab(premiere.hab,0,48)
|
||||
|
||||
score.draw()
|
||||
setsource(tiles)
|
||||
|
||||
12
map.lua
12
map.lua
@@ -406,7 +406,7 @@ mapa={
|
||||
24,255,8,9,255,255,255,255,255,255,255,255,
|
||||
24,255,8,9,255,255,255,255,255,255,255,255,
|
||||
24,255,8,9,255,255,255,255,255,255,255,255,
|
||||
28,29,28,29,28,29,29,255,255,25,28,29,
|
||||
28,29,28,29,28,29,25,255,255,28,29,29,
|
||||
|
||||
},
|
||||
-- 42
|
||||
@@ -501,11 +501,11 @@ mapa={
|
||||
},
|
||||
-- 51
|
||||
{
|
||||
42,43,44,45,44,45,45,255,255,255,44,45,
|
||||
40,72,255,255,255,255,255,255,255,41,255,255,
|
||||
40,88,255,255,255,255,255,255,3,255,255,255,
|
||||
40,255,255,255,255,255,255,3,255,255,255,255,
|
||||
40,255,255,255,255,255,3,255,255,255,255,255,
|
||||
42,43,44,45,44,45,255,255,255,44,45,45,
|
||||
40,72,255,255,255,255,41,255,255,255,255,255,
|
||||
40,88,255,255,255,255,255,3,255,255,255,255,
|
||||
40,255,255,255,255,255,255,255,3,255,255,255,
|
||||
40,255,255,255,255,255,255,255,255,3,255,255,
|
||||
44,45,44,45,44,45,44,45,44,45,44,45,
|
||||
|
||||
},
|
||||
|
||||
141
premiere.lua
Normal file
141
premiere.lua
Normal file
@@ -0,0 +1,141 @@
|
||||
premiere={hab=44,x=24,y=24,flip=true,frame=0,wait=0,step=0,anim={11,12,11,13},bb={x=4,y=0,w=8,h=16}}
|
||||
|
||||
function premiere.init()
|
||||
premiere.hit=premiere.hit
|
||||
premiere.update=premiere.update_normal
|
||||
premiere.draw=premiere.draw
|
||||
end
|
||||
|
||||
function premiere.draw()
|
||||
sspr((premiere.frame&7)*16,(premiere.frame>>3)*16,16,16,premiere.x,premiere.y,16,16,premiere.flip)
|
||||
end
|
||||
|
||||
function premiere.hit()
|
||||
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)<tiletype.half then
|
||||
if premiere.flip then
|
||||
premiere.x=premiere.x-2
|
||||
else
|
||||
premiere.x=premiere.x+2
|
||||
end
|
||||
if premiere.x<-4 then
|
||||
premiere.hab=premiere.hab-1
|
||||
premiere.x=84
|
||||
end
|
||||
elseif check_tile(premiere.hab,premiere.x+inc,premiere.y+6)<tiletype.half then
|
||||
premiere.update=premiere.update_jumping
|
||||
premiere.step=0
|
||||
else
|
||||
--if check_tile(premiere.hab,premiere.x+4,premiere.y+16)==tiletype.void and ((premiere.x+4)&7==0 or check_tile(premiere.hab,premiere.x+12,premiere.y+16)==tiletype.void) then
|
||||
--premiere.update=premiere.update_falling
|
||||
--else
|
||||
premiere.flip=not premiere.flip
|
||||
--end
|
||||
end
|
||||
if check_tile(premiere.hab,premiere.x+4,premiere.y+16)==tiletype.void and ((premiere.x+4)&7==0 or check_tile(premiere.hab,premiere.x+12,premiere.y+16)==tiletype.void) then
|
||||
premiere.update=premiere.update_falling
|
||||
end
|
||||
|
||||
-- if premiere.hab==abad.hab then
|
||||
-- if aabb(abad,premiere) then
|
||||
-- if abad.energia>0 then abad.energia=abad.energia-1 end
|
||||
-- cls(3)
|
||||
-- end
|
||||
-- end
|
||||
|
||||
end
|
||||
end
|
||||
|
||||
function premiere.update_jumping()
|
||||
premiere.frame=12
|
||||
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 and check_tile(premiere.hab,premiere.x+inc,premiere.y+16)~=tiletype.void then
|
||||
if premiere.flip then
|
||||
premiere.x=premiere.x-2
|
||||
else
|
||||
premiere.x=premiere.x+2
|
||||
end
|
||||
if premiere.x<-4 then
|
||||
premiere.hab=premiere.hab-1
|
||||
premiere.x=84
|
||||
end
|
||||
end
|
||||
|
||||
if premiere.step<6 then
|
||||
if premiere.y>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=12
|
||||
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 and check_tile(premiere.hab,premiere.x+inc,premiere.y+16)~=tiletype.void then
|
||||
if premiere.flip then
|
||||
premiere.x=premiere.x-2
|
||||
else
|
||||
premiere.x=premiere.x+2
|
||||
end
|
||||
if premiere.x<-4 then
|
||||
premiere.hab=premiere.hab-1
|
||||
premiere.x=84
|
||||
end
|
||||
end
|
||||
|
||||
local xx=flr((premiere.x+4)/8)
|
||||
local yy=flr((premiere.y+16)/8)
|
||||
|
||||
if premiere.y<32 then
|
||||
if (premiere.y+16)&7==0 and (check_tile(premiere.hab,premiere.x+4,premiere.y+16)>=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
|
||||
Reference in New Issue
Block a user